You are on page 1of 47

SEMANA 02

DIAGRAMAS DE FLUJO

1
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
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 de Aplicación

Programa que permite resolver la ecuación de primer grado

Algoritmo EC 1er Grado


Programa Variables
que permite a,b,x de tipo entero
resolver la Inicio
ecuación de Escribir(“Ingrese valores de EC”)
primer grado Leer (a,b)
Si a = 0 entonces
escribir (“Error”) Dim a,b,x as integer
sino
x=-b/a MessageBox.Show(“Ingrese valores
Escribir (“La solución es:”,x) de EC”);
Fin a= Textbox1.Text
ax+b=0 Escribir(“Fin programa”) b= Textbox2.Text
Fin if a = 0 Then
MessageBox.Show (“error”)
else
a x=-b/a
? x = -b / a MessageBox.Show(“La
b solución es : ”,x)
End If
MessageBox.Show(“Fin programa”);
5
Diagrama de Flujo y Pseudo-Código
DIAGRAMA DE FLUJO NOMENCLATURA PSEUDO-CÓDIGO

Inicio Inicio de Algoritmo Inicio


Inicio

Variables
Entero var1, x , y Definición de variables Entero var1, x, y
Real a, b Real a, b

Escribir
Impresión de mensajes
“Mensaje 1” Escribir (“Mensaje 1”)

Leer
var1,x, y Lectura de mensajes Leer (var1, x, y)

Transformación de datos
a=3*x+ y Operaciones sobre los datos a=3*x+ y
b = a / var1 b = a / var1

Si a > b Entonces
Instrucciones
F V Bifurcación en la ejecución de
Sino
Si a > b instrucciones
Instrucciones
Fin si

Conector

Fin Fin de algoritmo Fin


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.
Pseudocódigo

Es un lenguaje artificial e informal útil para el


desarrollo de algoritmos. No es un lenguaje
de programación verdadero y, por lo tanto,
no puede ser compilado y ejecutado.

8
Pseudocodigo
• Ejemplo 1: Sumar dos números.
• Desarrollo

Inicio
Escribir, “Ingrese los 2 números a sumar”
Leer num1,num2
resultado = num1 + num2
Escribir, “La suma es:”, resultado
Fin

9
Pseudocodigo
• Ejemplo 2: Determinar el mayor de dos
números.
• Desarrollo
Inicio
Escribir, “Ingrese los 2 números”
Leer num1,num2
Si (num1 > num2) entonces
Escribir,“El mayor es:”, num1
Si no
Escribir,“El mayor es:”, num2
Fin

10
Pseudocodigo
• Ejemplo 3: Sumar del 1 al 1000.
• Desarrollo
Inicio
x = 1
resultado = 0
Mientras (x =< 1000) hacer
resultado = resultado + x
x = x + 1
Fin Mientras
Escribir, “La suma es:”, resultado
Fin

11
Pseudocodigo
• Ejemplo 4: Determinar el mayor de TRES
números.
Inicio
Escribir, “Ingrese los 3 números”
Leer X1,X2,X3
mayor = X1 El valor de X1 se
Si (mayor < X2) entonces almacena en mayor
mayor = X2
Fin si
Si (mayor < X3) entonces
mayor = X3
Fin si
Escribir, “El mayor es:” mayor
Fin
12
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

13
Diagramas de Flujo Secuenciales

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

14
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)
Para resolver

Se requiere un programa que calcule la


suma y el producto de dos números.
Cuales de los siguientes segmentos
producen el resultado correcto:
Para resolver

a,b,s,p: real
I II III
leer (a) leer(b) leer(b)
leer (b) leer(a) p =a*b
S =a+b p =a*b leer(a)
P =a*b escribir(p) escribir(p)
escribir(s) s =a+b s =a+b
escribir(p) escribir(s) escribir(s)
Diagrama de flujo Selectivos

Simples: Las estructuras condicionales simples se


les conoce como “Tomas de decisión”.
Diagrama de flujo de Selección - Simple

Diagrama de Flujo
En Visual Basic

If (condición)Then

Condición Sentencia
End if
no
Sentencia
Pseudocodigo

Si <condición> entonces
Sentencia
fin_si
20
Diagramas de Flujo - Selectivo Doble

Dobles: Las estructuras condicionales dobles


permiten elegir entre dos opciones o alternativas
posibles en función del cumplimiento o no de una
determinada condición.

21
Diagramas de Flujo - Selectivo Doble

Pseudocodigo Diagrama de Flujo


Si (condición) entonces
acción 1
Si no si no
acción 2 condición

Fin si
acción 1 acción 2

22
SELECCIÓN
Tengo un buen trabajo ?????

No Si
EJEMPLO 1. Determinar el mayor de dos números

24
EJEMPLO 2

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)
Diagrama de Flujo - Selección Múltiple
En Visual Basic
if (condición 1)Then
accion1
Elseif (condición 2)Then
accion2
Elseif (condición 3)Then
accion3
...............
..............
Elseif (condicion N) Then
accion N-1
Else
accion N
End if
29
Pseudocodigo
• si <condición1> entonces
• <acciónes1>
• si_no si <condición2> entonces
• <acciones2>
• si_no si <condición3> entonces
• <acciones3>
• ………………
• ……………..
• si_no
• <accionesX>
• fin_si
EJEMPLO 3

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
9
escribir (mayor)
(mayor)
mayor
XXX
9
EJEMPLO 4

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.

35
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

36
EJEMPLO 5
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?

37
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

38
EJEMPLO 6
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.

39
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

40
Diagrama de flujo Repetitivas
(Mientras)
En Visual Basic
Diagrama de Flujo
while (condición)

no sentencia
condición
End While


Sentencia

41
TRADUCCION MIENTRAS
PSEUDOCODIGO
mientras <condición> hacer
<bloque instrucciones>
fin_mientras
Diagramas de Flujo Repetitivos
Ejemplo: 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
43
EJEMPLO. 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.

44
Ejercicios
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.- Solución de ecuación de la forma Ax2 + Bx + C = 0

7.- Lea un numero entero N y calcule el resultado de la siguiente


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

8.- Lea un numero entero N y calcule el resultado de la siguiente


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

9.- Dado como dato N números enteros, determine cuantos de ellos


son pares y cuanto impares.

You might also like