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. Variables y constantes
4. Estructuras de control: secuenciales, selectivas y
repetitivas
2
Introducción
Diseño
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 lenguaje
un algoritmo, es decir, los
de programación es simple y directo [2].
pasos de la solución de un
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 de 2. Las líneas que indican la
flujo debe tener un dirección del flujo del
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
adecuandos 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
3. Conceptos fundamentales: Tipos de datos
1. Tipos de datos. Necesarios para representar
los datos a procesar y se clasifican en:
a) simples: enteros, reales, caracteres, y
booleanos.
b) estructurados: arreglos, cadena de
caracteres y registros.
identificador identificador
Dato Dato
simple estructurado
9
3. Conceptos fundamentales: Tipos de datos
Ejemplos de datos:
Enteros: 128, 1500, -200, 8432, -14321
Reales: 6.4, 138.25, -32.453, 130.65, -8729.32
Carácter: letras del abecedario, dígitos, símbolos
especiales(#,$,^, *,%,/,!,+,-, etc). Cada
carácter debe estar cerrado entre
apóstrofe.
„a‟, B, „$‟, „9‟, „-‟
Cadena de caracteres: “abcd”, “Pedro”,
“5326745”|
10
3. Conceptos fundamentales: Identificadores,
constantes y variables
Identificadores: representan los nombres de
variables, constantes y funciones donde
almacenan los datos.
Constantes: son identificadores que su valor no
cambia durante la ejecución de un programa.
Ejemplo PI 3.1416, TAMANIO 10,
NOMBRE “PESO”
Variables: son identificadores que su valor
normalmente cambia durante la ejecución de
un programa. Pueden ser de los tipos que
estudiaron en la diapositiva anterior.
11
3. Conceptos fundamentales: Operaciones aritméticas
12
3. Conceptos fundamentales: Jerarquía de los
operadores aritméticos
13
3. Conceptos fundamentales: Operadores relacionales
14
3. Conceptos fundamentales: Operadores lógicos
15
3. Conceptos fundamentales: Tabla de verdad de los
operadores lógicos
16
3. Conceptos fundamentales: Jerarquía de todos los
operadores
17
3. Conceptos fundamentales: Bloque de asignación
Un bloque de asignación La asignación es una operación destructiva.
se utiliza para asignar valores Esto es, si una variable tenía un valor
o expresiones a una variable. asignado, éste se destruye, conservando el
nuevo valor.
variable expresión o valor
Suma 0
Una expresión puede ser
aritmética o lógica, o una
constante o una variable.
18
4. Estructuras de control
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.
19
4.1 Estructura de control secuencial
La estructura de control
secuencial, es la más simple
de todas. Se utiliza cuando se Representación en algoritmo.
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
20
4.1 Estructura de control secuencial
Ejemplo 2. 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.
1. i 0
2. i i + 1
3. acum 0
4. j 52 / 3
5. car „a‟
6. acum j / i
7. rea acum / 3
8. band (8 > 5) y (15 <23 )
9. sum acum * 5 / j2
10. i i * 3
11. rea rea / 5
12. band band o (i = j)
13. i rea
14. car j 21
4.1. Estructura de control secuencial: Prueba de
escritorio del ejemplo 2.
enteros: i,
acum, j
caracter: car
real: rea, sum
boolean: band
22
4.1 Estructura de control secuencial
A continuación se presentan dos ejemplos
de diagramas de flujo que usan estructuras
de control secuencial y posteriormente se
solicita realice algunos ejercicios.
23
4.1 Estructura de control secuencial
Ejemplo 3. Dado por teclado tres “Inicio”
caracteres, imprímalos en orden
inverso. Realice el análisis, diagrama “Programa que imprime
tres caracteres invertidos”
de flujo y una prueba de escritorio.
Análisis. “Teclea tres caracteres: ”
Datos de entrada: ejemplo x, y, z
variables a,b,c: caracter a, b, c
Proceso
no aplica. “Los caracteres invertidos
son: ”,c,b,a
Salida:
imprimir z, y, x. “Fin”
24
4.1 Estructura de control secuencial
Ejemplo 4. 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
25
4.1 Estructura de control secuencial:
Prueba de escritorio
26
4.1 Estructura de control secuencial
Para los siguientes ejercicios, desarrollar análisis,
diagramas de flujo y prueba de escritorio.
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
27
4.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.
28
4.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ñalaran 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.
29
4.2 Estructura de control selectiva
Estas estructuras selectivas se clasifican en :
1. Si Entonces (selectiva simple)
2. Si Entonces / Sino (selectiva doble)
3. Si multiple (selectiva múltiple)
Cuando a las estructuras
selectivas se aplican en
cascada, se pueden combinar
las estructuras anteriores.
30
4.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 secuencia
normal del diagrama.
31
4.2.1 Selectiva simple (si entonces).
Ejemplo 5. Dada una
calificación por teclado,
escriba "aprobado" en caso
que la calificación sea mayor
o igual que 6.
Realice el análisis, diagrama
de flujo y prueba de
escritorio.
Después mejorar la
condición, donde la
calificación aprobatoria
sea mayor o igual a 6 y
menor o igual a 10. 32
4.2.1 Selectiva simple (si entonces). Prueba de
escritorio
33
4.2.1 Selectiva simple (si entonces)
Ejemplo 6. 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.
34
4.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.
35
4.2.2 Selectiva doble (si entonces / sino)
Ejemplo 7. 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.
36
4.2.2 Selectiva doble (si entonces / sino)
Ejemplo 8. Dado un
sueldo de un trabajador
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.
37
4.2.2 Selectiva doble (si entonces / sino)
Ejemplo 9. Dados tres
números por teclado
encontrar e imprimir el
mayor de ellos.
Realice el análisis,
diagrama de flujo y
prueba de escritorio.
38
4.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
39
4.2.3 Selectiva múltiple (si multiple)
40
4.2.3 Selectiva múltiple (si multiple)
Ejemplo 10. 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.
41
4.2.3 Selectiva múltiple (si multiple)
42
4.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.
43
4.2.3 Selectivas en cascada (anidadas) [2]
44
4.2.3 Selectivas en cascada (anidadas) [2]
45
4.2.3 Selectivas en cascada (anidadas)
Ejemplo 11. 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.
46
4.2.3 Selectivas en cascada (anidadas). Ejemplo 11
Ejemplo 11. 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.
47
Ejercicios de estructuras selectivas
Para los siguientes ejercicios realice el diagrama de flujo
y una prueba de escritorio.
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.
48
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.
49
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".
50
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%.
51
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".
52
4.3 Estructuras de control repetitivas
Todo ciclo debe terminar de ejecutarse
Se utilizan en algoritmos después de un número finito de veces,
cuyas operaciones se deben por tanto, en cada iteración se debe
ejecutar un número repetido evaluar las condiciones necesarias para
de veces, llamado ciclo. decidir si 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: para, mientras y
hacer mientras
53
4.3.1 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.
54
4.3.1 Estructuras de control repetitivas: Para
Ejemplo 12. Dado
por teclado los
sueldos de 10
trabajadores de
una empresa,
obtenga el total
de nómina de la
misma.
Realice el análisis,
diagrama de flujo
y prueba de
escritorio.
55
4.3.1 Estructuras de
control repetitivas: Para
Ejemplo 13. Dado
por teclado las
calificaciones de
N alumnos,
calcular e
imprimir el
promedio.
Realice el análisis,
diagrama de flujo
y prueba de
escritorio.
56
4.3.2 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.
57
4.3.2 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.
58
4.3.2 Estructuras de control
repetitivas: Mientras
Ejemplo 14. 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
prueba de escritorio.
59
4.3.2 Estructuras de control
repetitivas: Mientras
Ejemplo 15. Dado un
grupo de números
naturales positivos,
calcule e imprima el cubo
de estos números.
Termine la entrada de
números con -1.
Realice el análisis,
diagrama de flujo y
prueba de escritorio.
60
4.3.2 Estructuras de control repetitivas: Hacer-Mientras
Es una estructura de control Esto significa que las instrucciones del ciclo se
parecida al ciclo Mientras, la ejecutan al menos una vez.
diferencia es que la condición A continuación se muestra su diagrama de
se coloca al final del ciclo. flujo.
61
4.3.2 Estructuras de control
repetitivas: Hacer-Mientras
Ejemplo 16. 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
Ojo, con esta herramienta regresa al
ciclo cuando la condición es falsa, a
diferencia de lo que indica el diagrama
de flujo y lenguajes de programación
62
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.
63