Está en la página 1de 60

Diseño de Algoritmos

Tema 3: Diagramas de flujo

Presenta: David Martínez Torres


Universidad Tecnológica de la Mixteca
Instituto de Computación
Oficina No. 37
dtorres@mixteco.utm.mx
Contenido

1. Definiciones
2. Elementos de un diagrama de flujo
3. Estructuras de control
1. Secuenciales Selectivas
2. Repetitivas
3.

2
Introducción
Recordando los componentes del diseño de
un algoritmo, y ubicando los diagramas de
flujo como otra herramienta de diseño.
En este tema se estará estudiando
prácticamente todo lo que se trabajó
en el tema 2 con pseudocódigos, pero Diseño
ahora con diagramas de flujo. de un
algoritmo

Diseño Refinamiento Herramienta de


descendente por pasos programación:
* diagrama de flujo
* pseudocódigo

Secciones de un algoritmo, reeditado de [3]

3
1. Definiciones

Un diagrama de flujo
Si un diagrama de flujo está completo y
representa de manera gráfica
correcto, el paso del mismo a un
un algoritmo, es decir, los
lenguaje de programación es simple y
pasos de la solución de un
directo [2].
problema.

4
2.
Elementos
de un
diagrama
de flujo.

5
2.1 Reglas para la construcción de un diagrama de
flujo [2].

1. Todo diagrama 2. Las líneas que indican la


de flujo debe tener dirección del flujo del
un inicio y un fin. diagrama deben ser rectas,
verticales y horizontales.

6
2.1 Reglas para la construcción de un diagrama de
flujo [2].

3. Toda línea que


indica la dirección
del flujo del
diagrama debe
estar conectada.
4. El diagrama de flujo debe construirse de arriba hacia abajo y
de izquierda a derecha
5. La notación utilizada en el diagrama de flujo debe
ser independiente del lenguaje de programación.
6. Es conveniente poner comentarios para ayudar a entender
lo que hicimos.
7. Se puede utilizar más de una hoja, utilizando los
conectores
adecuados y numerando las páginas. 7
2.1 Reglas para la construcción de un diagrama de
flujo [2].

8. No pueden llegar más de una línea a un símbolo.

8
Conceptos fundamentales de los diagramas de flujo

Para realizar diagramas de flujo que resuelvan


problemas, es importante recordar los siguientes
conceptos que se estudiaron en el tema de
pseudocódigos.

1. Tipos de datos.
2. Identificadores, constantes y variables.
3. Operadores aritméticos y su jerarquía.
4. Operadores relacionales
5. Operadores lógicos
6. Jerarquía de todos los operadores.
7. Bloque de asignación

9
3. Estructuras de control

Nuevamente recuerde que


las estructuras de
control indican el flujo o
camino estándar que debe Se clasifican en: estructuras de
seguir un proceso de control secuencial, selectivas y
solución de un problema. repetitivas.

10
3.1 Estructura de control secuencial

La estructura de control
secuencial, es la más simple
de todas. Se utiliza cuando Representación en algoritmo.
se tiene que ejecutar una acción 1
instrucción tras otra, sin tener acción 2
que evaluar una expresión. …
acción n

Ejemplo1

1. suma  0
2. Imprimir “Teclea un
numero”
3. Leer en variable num
4. suma  suma + num
11
3.1 Estructura de control
secuencial

Ejemplo 3.1.1 A continuación se


presenta el primer diagrama de flujo.
Supongamos que las variables i, acum y j
son de tipo entero, rea y sum de tipo
real, car de tipo caracter y band de
tipo booleano. Considerar que se tienen
que realizar las siguientes asignaciones
donde utilizan símbolos de proceso..

12
Prueba de escritorio del
enteros: i, acum, j
diagrama de flujo.
caracter: car
real: rea, sum
boolean: band

13
3.1 Estructura de control secuencial

A continuación se presentan dos ejemplos


más de diagramas de flujo que usan
estructuras de control secuencial y
posteriormente se solicita realice algunos
ejercicios.

14
3.1 Estructura de control “Inicio
secuencial ”

“Programa que imprime


Ejemplo 3.1.2 Dado por teclado tres
tres caracteres invertidos”
caracteres, imprímalos en orden
inverso. Realice el análisis, diagrama
de flujo y una prueba de escritorio.
“Teclea tres caracteres: ”
Análisis.
Datos de entrada: ejemplo x, y, z
variables a,b,c: caracter a, b, c
Proceso
no aplica.
Salida: “Los caracteres invertidos
imprimir z, y, x. son: ”,c,b,a

“Fin
” 15
“Inicio
” 3.1 Estructura de control
secuencial
“Programa que imprime
tres caracteres invertidos”
Ejemplo 3.1.2 Dado por teclado tres caracteres,
imprímalos en orden inverso. Realice el
análisis, diagrama de flujo y una prueba de
“Teclea tres caracteres: ” escritorio.

a, b, c
Prueba de escritorio

“Los caracteres invertidos


son: ”,c,b,a

“Fin”

16
3.1 Estructura de control
secuencial

Ejemplo 3.1.3 Dado por teclado un número


entero, calcular e imprimir el cuadrado y el
cubo del número.
Realice el análisis, diagrama de flujo y una
prueba de escritorio.

Análisis.
Datos de entrada: ejemplo 3
variables num: entero
Proceso
variables cuadrado, cubo: entero
cuadrado=num*num
cubo=num*num*num.
Salida:
imprimir cuadrado= 9, cubo =
27
17
3.1 Estructura de control secuencial:
Prueba de escritorio

Prueba de escritorio

18
3.1 Estructura de control secuencial

 Para cada uno de los siguientes ejercicios, desarrollar su


análisis del problema, diagrama de flujo y prueba de
escritorio con dos corridas.

1. Dado por teclado la matrícula y 4 calificaciones de su


primera evaluación, calcule e imprima el promedio y la
matrícula.
2. Calcular el área de un trapecio, dado por teclado base
mayor, base menor y altura. A=(B+b)h/2.
3. Dado por teclado el radio y la altura de un cilindro,
calcule, e imprima el volumen correspondiente.
V=(pi*r2)h
19
3.1 Estructura de control secuencial

4. Dado por teclado una cantidad en pesos y el tipo de


cambio de un dólar, calcule la conversión e imprima la
cantidad correspondiente en dolares.
5. Dado por teclado el peso de un producto en
gramos, calcule e imprima el peso en kilogramos.
6. Suponga que le prestan un dinero x a un porcentaje y.
Calcule e imprima los intereses que tiene que pagar
en un año.
7. Le solicitan que vaya a comprar x litros de gasolina,
donde cada litro cuesta y pesos. Calcule e imprima el
total a pagar.

20
3.2 Estructura de control selectiva

Esta toma de decisión se basa en la


Esta estructura de control se evaluación de una o más condiciones que
utiliza en la solución de señalarán como alternativa o consecuencia,
problemas donde se necesite la rama a seguir.
tomar una decisión.

En ocasiones la toma de
decisiones se realiza en
cascada. Es decir, se toma una
decisión, se marca la rama
correspondiente a seguir, se
vuelve a tomar otra decisión y
así sucesivamente.
21
3.2 Estructura de control selectiva

Estas estructuras selectivas se clasifican en :

1. Si Entonces (selectiva simple)


2. Si Entonces / Sino (selectiva doble)
3. Si múltiple (selectiva múltiple)

Cuando a las estructuras


selectivas se aplican en
cascada, se pueden combinar
las estructuras anteriores.

22
3.2.1 Selectiva simple (si entonces)

Esta estructura permite que el flujo del diagrama siga un


camino específico si se cumple una condición o un
conjunto de condiciones.

Si al evaluar la condición (o condiciones) el resultado es


verdadero, entonces se ejecuta(n) cierta(s)
operación(es). Luego se continúa con la
normal del diagrama. secuencia

23
Ejemplo 3.2.1.1 Dada una calificación 3.2.1 Selectiva
por teclado, escriba "aprobado" en caso
que la calificación sea mayor o igual simple (si entonces).
que 6.

Realice el análisis, diagrama de flujo y Diagrama de flujo


prueba de escritorio.

Análisis del problema


Datos entrada: ejemplo 8.5
Variable cal : real
Proceso
Si cal>=6 entonces
alumno aprobó
Salida
Imprimir Aprobado

Después mejorar la condición, donde la


calificación aprobatoria sea mayor o igual a
6 y menor o igual a 10.

24
Diagrama de flujo 3.2.1 Selectiva simple (si
entonces). Prueba de
escritorio
Ejemplo 3.2.1.1 Dada una calificación
por teclado, escriba "aprobado" en caso
que la calificación sea mayor o igual
que 6.

Prueba de escritorio

25
3.2.1 Selectiva simple (si entonces)
Ejemplo 3.2.1.2. Dado un sueldo de un trabajador por teclado, calcule un aumento del 15% si
su sueldo es menor a $1000, e imprima en este caso el nuevo sueldo.

Realice el análisis, diagrama de flujo y prueba de escritorio.

Análisis del problema


Datos entrada: ejemplo 850
Variable sueldo : real Diagrama de flujo
Proceso
Si sueldo<1000 entonces
aumento<-sueldo*0.15
sueldo=sueldo+aumento
Salida
Imprimir sueldo

26
3.2.2 Selectiva doble (si entonces / sino)
Esta estructura de control permite que el
diagrama de flujo se bifurque por dos ramas
diferentes en el punto de la toma de decisión.

Si al evaluar la condición, resulta verdadera,


entonces se sigue un camino específico y se
ejecutan ciertas operaciones. En caso que la
condición sea falsa, se sigue otro camino y se
ejecutan otras operaciones.

27
3.2.2 Selectiva doble (si entonces / sino)
Ejemplo 3.2.2.1 Dada una calificación por teclado, escriba "aprobado" en caso que la
calificación sea mayor o igual que 6, en otro caso imprima "reprobado".

Realice el análisis, diagrama de flujo y prueba de escritorio.

Análisis del problema


Datos entrada: ejemplo 9.2
Variable cal : real
Diagrama de flujo
Proceso
Si cal>=6 y cal<=10 entonces
alumno aprobó
Sino
alumno
reprobó
Salida
Imprimir aprobó

28
3.2.2 Selectiva doble (si entonces / sino)
Ejempl o 3.2.2.2. Dado un sueldo de
un traba jador por teclado, calcule
un aumento del 15% si su sueldo es
menor a $1000 y 12% en caso
contrario. Imprima el nuevo sueldo del
trabajador.

Realice el análisis, diagrama de


flujo y prueba de escritorio.

Análisis del problema


Datos entrada: ejemplo 850
Variable sueldo : real
Proceso
Si sueldo<1000 entonces
aumento<-sueldo*0.15
Sino
aumento<-sueldo*0.12
sueldo=sueldo+aumento
Salida
Imprimir sueldo 29
3.2.2 Selectiva doble (si entonces / sino)

Ejemplo 3.2.2.3. Dados


tres números por
teclado encontrar e
imprimir el mayor de
ellos.

Realice el análisis,
diagrama de flujo y
prueba de escritorio.

30
3.2.3 Selectiva múltiple (si multiple)

Permite que el flujo del diagrama se bifurque


por varias ramas en el punto de la toma de
decisión, esto en función del valor que tome el
selector (entero o carácter). Así, si el
selector toma:
el valor 1, se ejecutará la acción 1,
si toma el valor 2, se ejecutará la acción 2,
si toma el valor N se realizará la acción N.
Se continuará con el flujo normal del
diagrama
realizándose la acción N+1

31
3.2.3 Selectiva múltiple (si multiple)

32
3.2.3 Selectiva múltiple (si multiple)

Ejemplo 3.2.3.1 Dado por teclado los datos


categoría y el sueldo de un trabajador, calcule
el aumento correspondiente teniendo en
cuenta la siguiente tabla. Imprima la categoría
del trabajador y su nuevo sueldo.

Realice el análisis, diagrama de flujo y prueba


de escritorio.
33
3.2.3 Selectiva múltiple (si multiple)

Diagrama de flujo

34
3.2.3 Selectivas en cascada (anidadas) [2]

En muchos casos en la solución de problemas,


después de tomar una decisión y marcar el
camino a seguir, es necesario tomar otra
decisión y así sucesivamente.

35
3.2.3 Selectivas en cascada (anidadas) [2]

36
3.2.3 Selectivas en cascada (anidadas) [2]

37
3.2.3 Selectivas en cascada (anidadas)

Ejemplo 3.2.3.2 Dados por teclado tres


números enteros diferentes, imprimir los
números en orden descendente.

Realice el análisis, diagrama de flujo y prueba


de escritorio.

38
3.2.3 Selectivas en cascada (anidadas)

Ejemplo 3.2.3.2 Dados por teclado tres números enteros diferentes,


imprimir los números en orden descendente.
Realice el análisis, diagrama de flujo y prueba de escritorio.

39
Ejercicios de estructuras selectivas

 Para cada uno de los siguientes ejercicios, realice su


análisis del problema, diagrama de flujo y una prueba
de escritorio con dos corridas.

1. Dado por teclado como datos los valores enteros P y Q,


determine si los mismos satisfacen la siguiente expresión:
P3+Q4-2*P2 < 680

2. Dado por teclado un número entero, determine e


imprima si el número es positivo o negativo.

40
Ejercicios de estructuras selectivas

3. Dado por teclado un número determine e imprima si es


par o impar, para esto apóyese de la operación
modulo que obtiene el residuo de la operación.
4. Dado por teclado la matrícula y 5 calificaciones de un
alumno, calcule e imprima el promedio y la palabra
"aprobado" si el alumno tiene un promedio mayor o
igual que 6, y la palabra "no aprobado" en caso
contrario.
5. Dado por teclado tres números enteros, determine si
están en orden decreciente.

41
Ejercicios de estructuras selectivas

6. Dado por teclado el valor de los coeficientes a, b, c de la


expresión que resuelve una ecuación de segundo grado
, encuentre el valor de las raíces x1, x2,
mediante el calculo del discriminante D=b2-4ac, si el
discriminante es >=0 imprima el valor correspondiente a
las raíces son reales, en otro caso, imprimir "las raíces
son imaginarias".

42
Ejercicios de estructuras selectivas

7. En la compra de artículos, dependiendo del monto le aplican un


descuento:
Si el monto es menor que $500, no hay descuento.
Si el monto se encuentra entre $500 y menor que $1000, el 5%.
Si el monto se encuentra entre $1000 y menor que $7000, el 11%.
Si el monto se encuentra entre $7000 y menor que $15000, el 18%.
Si el monto es mayor o igual a $15000, el 25%.

43
Ejercicios de estructuras selectivas

8.Realizar las operaciones básicas con 2 números leídos por


teclado. Considere que la división por cero es una
indeterminación.
9.Dado por teclado el número del 1 al 7, que imprima el
correspondiente día de la semana (Ej.: 1. Lunes; 2. Martes;
etc). Si ingresa un número fuera del rango, deberá
imprimir el mensaje "Error… valor fuera de rango".
10.Dado por teclado dos números reales y el símbolo de
una operación básica (+, -, *,/), imprima el resultado
correspondiente. Si el símbolo no es correcto, imprima el
mensaje "Error en símbolo".

44
3.3 Estructuras de control repetitivas

Todo ciclo debe terminar de


ejecutarse después de un número
Se utilizan en algoritmos
finito de veces, por tanto, en cada
cuyas operaciones se deben
iteración se debe evaluar las
ejecutar un número repetido
condiciones necesarias para decidir si
de veces, llamado ciclo.
se debe seguir ejecutando el ciclo o
detenerse.

Las instrucciones son las mismas,


los datos que operan en ellas
son los que varían.
La estructuras repetitivas se
clasifican en: mientras, hacer-
mientras y para

45
3.3.1 Estructuras de control
repetitivas: Mientras

Esta estructura de control se recomienda


utilizar cuando no se sabe cuantas
veces se repetirá el ciclo. Tal número
depende de las proposiciones que están
dentro del ciclo.

Algunos ejemplos de problemas: cuando


se tiene que obtener el total de una serie
de gastos, pero no se sabe exactamente
cuántos son; o cuando se tiene que sacar
el promedio de calificaciones de un
examen, pero tampoco se sabe cuántos
alumnos lo aplicaron, el ciclo se repite
mientras se tengan calificaciones de
alumnos.
46
3.3.1 Estructuras de control repetitivas: Mientras
En la estructura mientras se
distinguen dos partes:

 Ciclo: conjunto de instrucciones


que se ejecutarán repetidamente.
 Condición de terminación. La
evaluación de esta condición se
realiza al inicio del ciclo y mientras
la condición es verdadera se ejecuta
el ciclo.

47
3.3.1 Estructuras de control Diagrama de flujo
repetitivas: Mientras

Ejemplo 3.3.1.1 Obtener la suma de los


gastos que hicimos en el último viaje,
pero no sabemos cuántos fueron.
Realice el análisis, diagrama de flujo y Símbolo de
salida
prueba de escritorio.
Análisis del problema
Datos de entrada: ejemplo 200,150, 250
variable gasto: real
Proceso
variable suma=0: real
InicioCiclo
Leer gasto S. de
suma = suma+gasto entrada

FinCiclo
Salida
Imprimir „el total de
gastos es‟, suma 48
3.3.1 Estructuras de control
repetitivas: Mientras
Diagrama de flujo

Ejemplo 3.3.1.1 Obtener la suma de los


gastos que hicimos en el último viaje,
pero no sabemos cuántos fueron.

Prueba de escritorio

49
3.3.1 Estructuras de control
Ejemplo 3.3.1.2 Dado un grupo
de números naturales positivos, repetitivas: Mientras
calcule e imprima el cubo de
estos números. Termine la Diagrama de flujo
entrada de números con -1.
Realice el análisis, diagrama
de flujo y prueba de escritorio.
Análisis del problema
Datos de entrada: ejemplo 2
variable num: entero
Proceso
InicioCiclo
Leer num
Imprimir „el cubo
es:‟, num*num*num
FinCiclo
Salida
La se realiza en el
salida
proceso. 50
3.3.2 Estructuras de control repetitivas: Hacer-Mientras

Es una estructura de control Esto significa que las instrucciones del


parecida al ciclo Mientras, la ciclo se ejecutan al menos una vez.
diferencia es que la condición A continuación se muestra su diagrama
se coloca al final del ciclo. de flujo.

51
3.3.2 Estructuras de control
repetitivas: Hacer-Mientras

Ejemplo 3.3.2.1 Dado un número entero


positivo calcular el factorial de ese número.
Definición n!: n*n-1*n-2*…*1
Ejemplo 4!=4*3*2*1=24
Realice el análisis, diagrama de flujo
y prueba de escritorio para num=4, 5, 0

Análisis del problema


Datos de entrada: ejemplo 4
variable num: entero
Proceso
variable resultado<-1: entero
InicioCiclo
resultado <-resultado*num
num<-num-1
FinCiclo
Salida
La salida se realiza en el
proceso. 52
3.3.3 Estructuras de control
repetitivas: Para
Es la estructura de control que ejecuta un
ciclo un número definido de veces.

Por ejemplo cuando se necesita calcular el


promedio de calificaciones de un curso, se
debe sumar las N calificaciones de los
alumnos y dividir la suma entre N; cuando se
necesita calcular la nómina total de la
empresa, se tiene que sumar los sueldos de
los N empleados de la misma.

Es decir, se sabe por anticipado cuántas veces


tenemos que repetir una determinada
operación, acción o tarea.

El número de veces se obtiene del


planteamiento del problema o de una lectura.
53
Ejemplo 3.3.3.1 Dado por teclado 3.3.3 Estructuras de control
los sueldos de 10 trabajadores de repetitivas: Para
una empresa, obtenga el total de la
nómina.

Realice el análisis, diagrama de


flujo y prueba de escritorio.

Análisis del problema


Datos de entrada: ejemplo
1000, 1500, 2000
variable sueldo: real
Proceso
variable nomina <-0: real
InicioCiclo
Leer sueldo
nomina<-
nomina +
sueldo
FinCiclo

Salida
Imprimir El total de la nómina 54
Ejemplo 3.3.3.2 Dado por teclado N 3.3.3 Estructuras
calificaciones, calcular e imprimir el de control
promedio.
repetitivas: Para
Realice el análisis del
diagrama de flujo problema, y
escritorio. prueba de
Análisis del problema
Datos de entrada: ejemplo
6.8,
8.2, 9.0
variable n: entero,
calif: real
Proceso
variable suma<-0:
real
i: entero
InicioCiclo
Leer calif
suma<-
suma+c
alif
FinCiclo prom<- 55
Ejercicios de estructuras de control repetitivas

 Para cada uno de los siguientes ejercicios realice el


análisis del problema, el diagrama de flujo previa
selección de la estructura de control repetitiva idónea
para tal problema y una prueba de escritorio con
una corrida.

1. Dado por teclado como datos 10 números enteros,


calcular e imprimir la suma de los números impares y el
promedio de los números pares.

2. Obtenga la suma e imprima los términos de la siguiente


serie:
2, 5, 7, 10, 12, 15, …, 100
56
Ejercicios de estructuras de control repetitivas

57
Ejercicios de estructuras de control repetitivas

5. Dado N números enteros por teclado, calcular lo


siguiente:
a) ¿Cuántos números leídos fueron mayores a cero?
b) El promedio de los números positivos
c) El promedio de todos los números.

6. Dado N números enteros por teclado, calcular el mayor y


el menor de estos números.

58
Ejercicios de estructuras de control repetitivas

7. Dado por teclado N ventas con los siguientes criterios,


imprima cuantas corresponden a cada criterio.
a) Ventas de $200 o menos.
b) Ventas mayores a $200, pero menores a $400
c) Ventas de $400 o más.

8. Dado por teclado un número entero positivo, calcular los


términos de la serie de ULAM, la cual consiste en lo
siguiente: Si el número es par, divídalo entre 2; si es
impar, multiplíquelo por 3 y agréguele 1. Repetir el proceso
hasta obtener el número 1.
Ejemplo: sin numero= 26, se obtendrá: 26, 13, 40, 20, 10,
5, 16, 8, 4, 2, 1. 59
Referencias

1. Zapata Ospina, Carlos A. “Fundamentos de programación, Guía de


autoenseñanza”. Alfaomega Ra-Ma. 2006
2. Cairó Osvaldo. “Metodología de la programación”. Alfaomega, 3ª edición.
2005.
3. Joyanes Aguilar, Luis. “Fundamentos de programación”. McGraw-Hill, 4ª
edición. 2008.

60

También podría gustarte