Sei sulla pagina 1di 56

SEMANA 02

DIAGRAMAS DE FLUJO

1
Algoritmo
2
Un algoritmo es una lista de actividades que se preparan para la realización
de una tarea.

Esta idea no sólo está relacionada con las computadoras, sino que pertenece
al campo de casi todas las actividades humanas.

Ejemplos:
Receta de Cocina
Mapa del Tesoro
Partitura Musical
Qué es un algoritmo?
3
 Es una secuencia ordenada de pasos, sin ambigüedades,
que conducen a la solución de un problema dado.

 Es la definición de los procesos definidos en el análisis.

 Se representa en un lenguaje natural.

 La exactitud es determinante.

 Es independiente del lenguaje de programación.

 Solo puede ejecutarse una operación a la vez.

 Algoritmo= Traducción al latín de la palabra árabe


Alkhowarizmi, nombre de un matemático y astrónomo
árabe.
Características de un algoritmo

 Debe tener un punto particular de inicio.


 Preciso: Indica el orden de realización de cada paso.
 Definido: Si se sigue varias veces los mismos pasos con
los mismos datos, se debe obtener siempre los mismos
resultados. No debe permitir dobles interpretaciones.
 Finito: Debe terminar en algún momento, debe tener
un número finito de pasos.
 Eficiente: Debe realizar los pasos con un mínimo de
utilización de recursos.
 Independiente del lenguaje de Programación: Su
implementación debe ser posible en cualquier lenguaje
de programación
Diagrama de Flujo
Un Diagrama de Flujo representa
la esquematización gráfica de un
algoritmo.

Se diseña para permitir observar


las estructuras y la forma como
ellas se conectan entre sí al
configurar un programa.

Diagrama Nassi-Schneiderman (N-S)


También conocido como diagrama
de Chapin.
Similar al Diagrama de Flujo, en el
que se omiten los conectores y las
cajas son contiguas.
Algoritmos y diagramas de flujo
“ Formalmente definimos un algoritmo como un conjunto de pasos,
procedimientos o acciones que nos permiten alcanzar un resultado o
resolver un problema”
Diagramas de flujo
• Un diagrama de flujo representa la esquematización gráfica de un
algoritmo.
• En realidad muestra gráficamente los pasos o procesos a seguir para
alcanzar la solución de un problema.
• Su correcta construcción es sumamente importante porque, a partir
del mismo se escribe un programa en algún lenguaje de programación.
• Si el diagrama de flujo está completo y correcto, el paso del mismo a
un lenguaje de programación es relativamente simple y directo.
• A continuación, presentamos los símbolos que utilizaremos y una
explicación de los mismos. Estos satisfacen las recomendaciones de la
ISO y la ANSI.
Algoritmos y diagramas de flujo
Reglas
1. Todo diagrama de flujo debe tener un inicio y un fin.
2. Las líneas utilizadas para indicar la dirección del flujo del diagrama
deben ser rectas verticales y horizontales.
3. Todas las líneas utilizadas para indicar la dirección del flujo del
diagrama deben estar conectadas.
4. El diagrama de flujo debe ser construido de arriba hacia abajo
(top-down) y de izquierda a derecha (right to left).
5. La notación utilizada en el diagrama de flujo debe ser
independiente del lenguaje de programación.
6. Si el diagrama de flujo requiere más de una hoja para su
construcción, debemos utilizar los conectores adecuados y
enumerar las páginas convenientemente.
7. No puede llegar más de una línea a un símbolo.
Algoritmos y diagramas de flujo
Símbolo utilizado para marcar el inicio y el fin del diagrama flujo.

Símbolo utilizado para introducir los datos de entrada/salida.

Símbolo utilizado para representar un proceso.

Símbolo utilizado para representar una decisión.

Símbolo utilizado para expresar conexión dentro de una misma página.

Símbolos utilizados para expresar la dirección del flujo del diagrama

Símbolo utilizado para expresar conexión entre páginas diferentes.


Algoritmos y diagramas de flujo

Símbolo utilizado para representar una decisión múltiple. En su interior


se almacena un selector y dependiendo del valor de dicho selector se
sigue por una de las ramas o caminos alternativos.
Programa
Cuando un programa contiene precisamente el conjunto
de instrucciones que resuelven un problema específico y
completan correctamente una tarea propuesta, decimos
que el programa es una materialización de un Algoritmo.

Un algoritmo es el planteamiento
general de la solución, mientras el
programa es la solución misma y
contiene todos sus detalles en forma
ejecutable.
11

Codificación del
ANÁLISIS
algoritmo

Compilación y
ejecución del
Desarrollo de programa
Algoritmos
Prueba y
Depuración
Verificación del
Algoritmo
Documentación
DISEÑO

Mantenimiento

IMPLEMENTACIÓN
Seudocódigo
Para expresar el contenido
de un programa de
computadora, se requiere
el uso de un lenguaje de
programación.

Cuando expresamos dicho


contenido en nuestra
lengua natural, utilizando
ciertas expresiones simples
que lo abrevian un poco,
se dice que está escrito en
seudocódigo.
CONSTRUCCIÓN DE ALGORITMOS

EJEMPLO #1
Solucionar ecuaciones cuadráticas
de la forma: AX2 + BX + C = 0
Análisis:
• Conocer los coeficientes A, B, C.
•Se aplica la fórmula del Álgebra:
B B 2  4 AC • ESTE ES EL ALGORITMO.
X  • Para este problema.
2A

MODELO DE UN PROBLEMA PRÁCTICO

1 - 13 28/05/2018
EJEMPLO#1: Ecuaciones cuadráticas

DATOS PROCESAMIENTO
DE • Cálculos SALIDA
(resultados)
ENTRADA • Relaciones lógicas

A, B, C A 0, D  0
X 
B B 2  4 AC X1, X2
2A
Este es el esquema (diagrama) genérico

1 - 14 28/05/2018
REPRESENTACIÓN DE ALGORITMOS

• EXPRESA EL PROCESO LÓGICO


inicio • Es decir, EL ALGORITMO que
obtiene las raíces X1, X2 a partir de
Leer a,b,c los datos de entrada A, B, C.
• En general, LEER implica
D = b*b – 4*a*c obtener o conocer ciertos valores
que son base para procesos
posteriores.
D^1/2 > 0
• Los operadores son similares al
ÁLGEBRA y la ARITMÉTICA.
X1= - b*b + (4*a*c)^1/2 “No existen Sqrt() significa “raíz cuadrada”.
X2= - b*b - (4*a*c)^1/2 raíces”

Escribir x1, x2

Fin

1 - 15 28/05/2018
ENTORNO DE
PROGRAMACIÓN/2
• BARRA DE TÍTULO Y
CONTROL
• BARRA DE
HERRAMIENTAS

• BARRA DEL MENÚ


PRINCIPAL
VENTANA DE
UBICACIÓN VENTANA DE
PROPIEDADES
FORMULARIO
BASE DE
DISEÑO
CAJA DE
CONTROLES

EXPLORADOR
DE
PROYECTOS

ESCRITORIO PRINCIPAL EN VISUAL BASIC

1 - 16 28/05/2018
Interfaz gráfica en Visual Basic
Programa genérico:
Dim a,b,c,d,x1,x2 As double
A = Textbox1.text
B = Textbox2.text
C = texrtbox3.text
D = B^2 - 4 * A * C
If sqrt(D) >= 9 then
X1 = (-B + sqr(D)) / (2 * A)
X2 = (-B - sqr(D)) / (2 * A)
Else
Messagebox.Show(“ No
existe raíces reales”
End if
Textbox4.text= X1
Textbox5.text= X2

CONFORMAN UN PROYECTO EN VISUAL BASIC

1 - 17 28/05/2018
Diagramas de Flujo
• Son diagramas que modelan un algoritmo,
se aprecia en ellos el flujo de los datos y
las acciones que los procesan.
• Hay de 3 tipos:
1.- Secuenciales
2.- Selectivos
3.- Repetitivos

18
Estructura Secuencial

Pseudo-Lenguaje Diagrama de Flujo

Inicio acción 1

acción 1
acción 2
acción 2


acción n
Fin acción n

19
Estructuras de Control Selectivas
SIMPLE

Si: Si la Condición es Verdadera, se ejecuta la Acción,


sino el algoritmo continua con su ejecución.

Condició
n No
Verdader
a? Si < Condición >
Si
<Acción>
Fin_Si
Acción

20
Estructuras de Control Selectivas
DOBLE
Si – Sino: Si la Condición es Verdadera, se ejecuta la
Acción 1, sino el algoritmo ejecuta la Acción 2. Luego
el algoritmo continua con su ejecución.

Condició
n No Si < Condición >
Verdader
a?
< Acción 1 >
Sino
Si
< Acción 2 >
Acción 1 Acción 2 Fin_Si

21
Estructuras de Control Selectivas
MULTIPLE
Si – Sino – Si: Si la Condición 1 es Verdadera, se
ejecuta la Acción 1, sino el algoritmo evalúa la
Condición 2. Si es Verdadera, ejecuta la Acción 2 y
sino la Acción 3.
Si < Condición 1 >
< Acción 1 >
Cond. 1
Verdader
No Sino_Si < Condición 2 >
a? < Acción 2 >
Sino
Cond. 2 No
Si < Acción 3 >
Verdader
a?
Acción 1
Fin si
Fin_Si
Si

Acción 2 Acción 3

22
Estructuras de Control Selectivas
Múltiple
Según (alternativa múltiple): Se evalúa una condición o
expresión que puede tomar “n” valores. Según el valor que la
expresión tenga en cada momento se ejecutan las acciones
correspondientes al valor. El valor con el que se compara la
expresión, va a depender de los lenguajes, de lo que sea ese
valor. En general ese valor puede ser un valor constante, un
rango de valores o incluso otra condición.

Expresió Según <expresión>


no
Condició
n
< Valor 1 >: < Acción 1 >
< Valor 2 >: < Acción 2 >
< Otro >: < Acciones >
Acción 1 Acción 2 … Acción “n”
Fin_Según

23
Estructuras de Control Repetitivas.
Mientras: Se evalúa la Condición. Si es Verdadera, se ejecuta la
Acción y se evalúa nuevamente la Condición. En el momento en
el que la Condición sea Falsa se sale del bucle y se continua con
la ejecución del algoritmo. Al evaluarse la Condición, al principio,
antes de entrar en el bucle, si la condición es Falsa, nunca se
entrará en el bucle. Por lo tanto se utiliza obligatoriamente este
tipo de bucle en el caso de que exista la posibilidad de que el
bucle pueda ejecutarse 0 veces.

Condició
n No
Verdader
a? Mientras < Condición >
< Acción >
Si
Fin_Mientras
Acción

24
Estructuras de Control Repetitivas.

Hacer - Mientras: En primera instancia se ejecuta la Acción.


Posteriormente, se evalúa la Condición. Si es Verdadera, se
ejecuta nuevamente la Acción. Si es Falsa, se continúa con la
ejecución del algoritmo. Se repite el bucle mientras la condición
sea Verdadera. La Condición se evalúa siempre al final del bucle,
si es Verdadera se ejecuta nuevamente la Acción, si es Falsa se
sale del bucle. Como la Condición se evalúa al final, incluso
aunque la primera vez ya sea Falsa, el bucle (la Acción) se habrá
ejecutado al menos una vez.

Acción
Hacer
< Acción >
Condició
Mientras < Condición >
n No
Verdader
a?

Si
25
Estructuras de Control Repetitivas.

Desde - Hasta: Se utiliza cuando se sabe el número exacto de


veces que hay que iterar. Para ello el bucle llevará asociado una
variable “índice”, a la que se le asigna un valor inicial y se
determina cual va a ser su valor final y además se va a
incrementar (o decrementar) en cada iteración de bucle en un
valor constante.

Inicio

Variable = Inicio ; Condición? ; Inc.


“n” No
Si Condició
n No
Verdader
Acción a?

Si

Acción

Para variable = Vi, variable < Vf, Inc n


<Acción> Acción 2
26
Fin_Para
Ejemplo No 1 de algoritmos secuenciales
Calcular e imprimir el sueldo de un empleado, se pedirá
la clave del empleado, las horas trabajadas y el pago
por hora trabajada.
Algoritmo Calcular el sueldo de un empleado

1. Inicio
2. Declaración de variables:
cve, ht: entero
pht, sueldo: real (flotante)
3. Leer cve, ht, pht
4. sueldo = ht * pht
5. Imprimir cve, sueldo
6 Fin
Algoritmos y diagramas de flujo
Diagrama de flujo del algoritmo, ejemplo 1:

inicio

cve, ht
pht

sueldo = ht * pht

cve fin
sueldo
Ejemplo No 2.- desarrollar un algoritmo que permita leer un número
en radianes e imprima su equivalencia en grados; así mismo, leer un
número en grados e imprima su equivalencia en radianes.
Algoritmo Convierte radianes a grados y grados a radianes
1. Inicio
2. Declaración de variables:
PI = 3.145926536: real (flotante)
rad, grad, numrad, numgrad: real (flotante)
3. Leer rad, grad
4. numgrad = rad * (180 / PI)
5. numrad = grad * (PI / 180)
6. Imprimir numgrad, numrad
7. Fin
Algoritmos y diagramas de flujo
Diagrama de flujo del algoritmo, ejemplo 2:

inicio

rad
grad

numgrad = rad * (180 / PI)

numgrad
numrad = grad * (PI / 180) fin
numrad
Ejemplo No 3.- desarrollar un algoritmo para calcular el promedio de
un estudiante, se pedirá la matricula del estudiante y cuatro
calificaciones de los exámenes. Se imprimirá la matricula del
estudiante y el promedio.
Algoritmo calcular promedio de un estudiante
1. Inicio
2. Declaración de variables
matest: entero
cal1, cal2, cal3, cal4, calfin: real (flotante)
3. Leer matest, cal1, cal2, cal3, cal4
4. calfin = (cal1 + cal2 + cal3 + cal4) / 4
5. Imprimir matest, calfin
6. Fin
Algoritmos y diagramas de flujo
Diagrama de flujo del algoritmo, ejemplo 3:

inicio

matest, cal1
cal2, cal3
cal4

calfin = (cal1 + cal2 + cal3 + cal4) / 4

matest fin
calfin
EJEMPLO 1.-Hallar el cuadrado de un número previamente leído

SOLUCION (a)

Pseudocódigo
a: entero
leer (a)
a = a*a a = a*a

escribir (a)
Escribir a
Fin
Solución ( b)

Memoria
Pantalla
a, b: entero
1 leer (a) a b
2 B = a*a 10100
XX XX
100
3 escribir (b)
EJEMPLO 2. Determinar el mayor de dos números

35
EJEMPLO 3

Dado un número previamente leído,


si el numero es mayor que cero hallar
la suma , caso contrario hallar el producto
a, b: entero
leer (a) Memoria
si a >0
entonces a b
b := a+a
40 80XXX
XXX 80
sino
b := a*a
fin_si
escribir (b)
a, b: entero
leer (a)
Memoria
si a >0
entonces a b
b := a+a 100
-10 XXX
XXX 100
sino
b := a*a
fin_si
escribir (b)
EJEMPLO 4

Dados tres números


enteros, calcular el mayor
Pseudocódigo
a, b, c : entero
mayor: entero
leer (a)
leer (b)
leer (c)

Memoria
si a>=b AND
& a>=c
a>=c
entonces
entonces
mayor = :=aa
sino
si b>=a AND
& b>=c
b>=c
entonces
entonces
mayor = :=bb
sino
mayor =
fin_si
:=cc a b c
fin_si XXX
5máximo
XXX
2 XXX
10
escribir (“maximo”)
escribir (mayor)
10
mayor
XXX
10
a, b, c : entero
mayor: entero
leer (a)
leer (b)
leer (c)

Memoria
si a>=b AND
& a>=c
a>=c
entonces
entonces
mayor = :=aa
sino
si b>=a AND
& b>=c
b>=c
entonces
entonces
mayor = :=bb
sino
mayor =
fin_si
:=cc a b c
fin_si XXX
2 máximo
XXX
9 XXX
4
escribir (“maximo”)
escribir (mayor)
9
mayor
XXX
9
EJEMPLO 5

Determinar si un alumno aprueba a reprueba un curso, sabiendo que


aprobara si su promedio de las tres calificaciones es mayor o igual a 11;
reprueba en caso contrario.

43
Algoritmo
Inicio
Real Nota1, Nota2, Nota3
Real Promedio
String Mensaje
Leer Nota1, Nota2, Nota3
Promedio = (Nota1 + Nota2 + Nota3) / 3
Si promedio >= 11 entonces
Mensaje = “Alumno Aprobado”
si no
Mensaje = “Alumno Reprobado”
Fin si
Escribir Mensaje
Fin

44
EJEMPLO 6
En un almacén se hace un 20% de descuento a los clientes cuya
compra supere los $1000 ¿ Cual será la cantidad que pagara una
persona por su compra?

45
Algoritmo
Inicio
Entero Compra
Real Descuento, Tot_Pagar
Leer Compra
Si Compra > 1000 entonces
Descuento = Compra * 0.2
si no
Descuento = 0
Fin si
Tot_Pagar = Compra – Descuento
Escribir Tot_pagar
Fin

46
EJEMPLO 7
Un obrero necesita calcular su sueldo, el cual se obtiene de la sig. manera:
Si trabaja 40 horas o menos se le paga s/.6 soles por hora trabajada
Si trabaja mas de 40 horas se le paga s/.10 soles por cada una de las
primeras 40 horas trabajadas y s/. 20 soles por cada hora extra.

47
Algoritmo
Inicio
Entero Hora_trabajada, Hora_extra, Sueldo

Leer Hora_trabajada

Si Hora_trabajada > 40 entonces


Hora_extra = Hora_trabajada - 40
Sueldo = Hora_extra * 20 + 40 * 10
si no
Sueldo = Hora_trabajada * 6
Fin-si

Escribir Sueldo
Fin

48
Diagramas de Flujo Repetitivos
Ejemplo 8: Sumar números del 1 al 1000
Pseudo-Lenguaje Diagrama de Flujo
Inicio x = 0
x = 1 suma = 0
suma = 0
Mientras (x =< 1000)
suma = suma + x no
x = x + 1 x=<1000
Fin Mientras
“La suma es:”, suma
Fin sí
suma=suma+x
X=x+1

Escribir,
suma
49
EJEMPLO 9. Desarrolle un algoritmo que realice la sumatoria de los números
enteros comprendidos entre el 1 y el 10, es decir, 1 + 2 + 3 + …. + 10.

50
Ejercicios Propuestos
1. Desarrolle un programa que permita calcular 1 + 2 + 3 + ..........+ N

2.- Área de un triangulo cualquiera en función de sus tres lados

3.- Calculo de las tres alturas de un triangulo cualquiera en función de


sus tres lados

4.- Dado como dato el sueldo de un trabajador calcule su aumento según


el siguiente criterio.
Sueldo < S/. 1,000  aumento 30%
S/. 1,000 < = Sueldo < = S/. 1,500  aumento 25%
Sueldo > S/. 1,500  aumento 20% Imprime el nuevo sueldo del
trabajador.
5.- Dado como dato Y calcule el resultado de la siguiente funcion:

3*Y+30 Si 0 < Y <= 11


X= Y*Y-10 Si 11< Y <= 33
Y*Y*Y+Y*Y-1 Si 33< Y <= 64
0 Para cualquier otro valor de y

Imprime X, Y.
6) Un alumno desea saber cual será su nota final en el curso de Física I.
Dicha nota se compone de los siguientes porcentajes:

55% del promedio de sus tres notas parciales.


30% de la nota del examen final.
15% de la nota de un trabajo final.

7) Un profesor conoce la cantidad de hombres y mujeres del curso de


Informática aplicada a la Ingeniería, desea saber que porcentaje de
hombres y que porcentaje de mujeres hay en su grupo de estudiantes..

8) Dada un cantidad en soles, obtener la equivalencia en dólares,


asumiendo que la unidad cambiaría es un dato desconocido
9) En un hospital existen tres áreas: Ginecología, Pediatría,
Traumatología. El presupuesto anual del hospital se reparte
conforme a la sig. tabla:

Área Porcentaje del presupuesto


Ginecología 40%
Traumatología 30%
Pediatría 30%

Obtener la cantidad de dinero que recibirá cada área, para cualquier


monto presupuestado.

10) Tres personas deciden invertir su dinero para fundar una empresa. Cada una
de ellas invierte una cantidad distinta. Obtener el porcentaje que cada quien
invierte con respecto a la cantidad total invertida.
11) Un alumno desea saber cual será su promedio general en los tres
cursos más difíciles que cursa y cual será el promedio que obtendrá
en cada una de ellas. Estas materias se evalúan como se muestra a
continuación:

La calificación de Matemáticas se obtiene de la sig. manera:


Examen 90%
Promedio de tareas 10%
En esta materia se pidió un total de tres tareas.

La calificación de Física se obtiene de la sig. manera:


Examen 80%
Promedio de tareas 20%
En esta materia se pidió un total de dos tareas.

La calificación de Programación se obtiene de la sig. manera:


Examen 85%
Promedio de tareas 15%
En esta materia se pidió un promedio de tres tareas.
12 Solución de ecuación de la forma Ax2 + Bx + C = 0

13 Lea un numero entero N y calcule el resultado de la siguiente


serie:
1 + ½ + 1/3 + ¼ + .................+ 1/N

14 Lea un numero entero N y calcule el resultado de la siguiente


serie:
1 – ½ + 1/3 – ¼ + ................ + 1/N

15 Dado como dato N números enteros, determine cuantos de ellos


son pares y cuanto impares.

Potrebbero piacerti anche