UNIVERSIDAD DEL PAPALOAPAN
Campus Tuxtepec – Loma Bonita
Cuadernillo
INTRODUCCIÓN A LA
PROGRAMACIÓN ESTRUCTURADA
M. C. Bertha López Azamar
Profesor-Investigador
Tuxtepec, Oaxaca
7.2.2 Sentencias alternativas empleando diagramas de flujo
Tabla 1 Simbología básica empleada para la toma de decisiones
SIMBOLO OPERACIÓN EN
PSEUDOCODIGO
SE USA PARA INDICAR SI,
HACER MIENTRAS, HACER,
DESDE…HASTA
Indica la realización de una comparación de valores. Se emplea para indicar las sentencias de bifurcación condicional y alternativas.
La estructura alternativa usa el símbolo de decisión (rombo) y se emplean las siguientes combinaciones de símbolos para representar las sentencias de control alternativas, según se trate de que haya o no algo que hacer en caso de que la condición no se cumpla.
Usando conectores para cerrarla
Figura 1 Decisión simple con proceso en una alternativa (bloque del si)
a) dibujada desde el centro b) dibujada de arriba hacia debajo de izquierda a derecha.
c) dibujada de arriba hacia debajo de izquierda a derecha, usando
conectores para cerrarlas
Figura 2 Decisión simple con procesos en las dos alternativas
Retomando enunciados de ejercicios escritos en pseudocódigo, se ejemplifica mostrando las acciones de las sentencias de control, al dibujar el diagrama de flujo equivalente. En algunos no se
n o
s i
A
A n o
s i n o s i
n o
s i
A
A n o
s i
dibuja todo el diagrama de flujo, solo muestra la estructuración de la sentencia alternativa y la información necesaria para cubrir lo esencial del enunciado.
Ejemplo 1 Diagrama de flujo con sentencia alternativa sin bloque DE LO CONTRARIO
Pseudocogido Diagrama de flujo
ALGORITMO Suma
VARIABLES num, suma son enteros INICIO
IMPRIMIR “Programa para sumarle”
IMPRIMIR un 5 a un número”
IMPRIMIR “Dame un número”
IMPRIMIR “entero menor que 10: ” LEER: num
SI num < 10 ENTONCES
suma = suma + numIMPRIMIR “El resultado es”, suma
FIN SI
FIN
Ejemplo 2 Diagrama de flujo de la sentencia alternativa con bloque DE LO CONTRARIO
Pseudocogido Diagrama de flujo
ALGORITMO Suma
VARIABLES num, suma son enteros INICIO
IMPRIMIR “Programa para sumarle un 5 a un número”
IMPRIMIR “Dame un número entero menor que 10:”
A INICIO
num , suma son enteros
“Programa para sumarle un 5 a
un número”
“Dame un número entero menor que 10”
num INICIO
num , suma son enteros
“Programa para sumarle
un 5 a un número”
“Dame un número entero menor
que 10”
A
A
“El resultado es”, suma num < 10
si
no
suma = suma + num
INICIO
LEER: num
SI num < 10 ENTONCES suma = suma + num
IMPRIMIR “El resultado es”, suma DE LO CONTRARIO
IMPRIMIR “El valor no es menor que 10”
FIN SI FIN
Ejemplo 3 Diagrama de flujo de la sentencia alternativa para calcular el importe de la venta de un determinado artículo, sabiendo que al comprar entre 1 y 15 unidades del mismo, el descuento es de un 10%, y si la compra es superior a 15 unidades, el descuento será de un 15%, y escribimos:
Pseudocogido Diagrama de flujo
importe = cantidad * precio
SI (cantidad > 0 Y cantidad < 16) ENTONCES
importe = importe * 0.9DE LO CONTRARIO
importe = importe * 0.85
FIN DE SI
IMPRIMIR “El importe total a pagar es: “, importe
si
no suma = suma +
num
“El valor no es menor
que 10”
num
“El resultado es”, suma num <
10
INICIO A
“El resultado es”, suma num < 10
si
no
importe = importe * 0.9 importe =
cantidad * precio
importe = importe *0.85
Ejemplo 4 Diagrama de flujo de la sentencia alternativa del enunciado: “Hoy es sábado, por eso la cafetería esta cerrada.
Pseudocogido Diagrama de flujo
ALGORITMO SabadoCafeteria VARIABLES sab es caracter INICIO
IMPRIMIR “¿es sábado?”
LEER: sab
SI sab == „s‟ ENTONCES
IMPRIMIR “la cafetería esta cerrada”
DE LO CONTRARIO
IMPRIMIR “la cafetería esta abierta”
FIN SI FIN
Ejemplo 5 Diagrama de flujo de la sentencia alternativa que muestra si un número es positivos
Pseudocogido Diagrama de flujo
SI num > 0 ENTONCES IMPRIMIR “Es positivo”
DE LO CONTRARIO
IMPRIMIR “Es negativo o cero”
FIN SI
Ejemplo 6 Diagrama de flujo del enunciado: Es sábado y estoy en la escuela, voy a irme a dormir a la biblioteca si esta fresca
IMPRIMIR “¿es sábado?”
LEER: sab
IMPRIMIR “¿estoy en la escuela?”
LEER: escuela
IMPRIMIR “¿la biblioteca esta fresca?”
LEER: biblio
SI sab == „s‟ Y escuela == „s‟ Y biblio == „s‟ ENTONCES IMPRIMIR “voy a irme a dormir a la biblioteca”.
FIN SI
“Es positivo”
num > 0 si
no
“es negativo o cero”
“la cafetería esta cerrada”
sab ==‟s‟ si no
“la cafetería esta abierta”
Ejemplo 7 Diagrama de flujo de la sentencia alternativa del enunciado: “Si hace calor y la maestra no ha llegado voy a irme a mi casa.”
Pseudocpodigo Diagrama de flujo
ALGORITMO HaceCalor
VARIABLES calor, maestra son caracter INICIO
IMPRIMIR “¿hace calor? ” LEER: sap
IMPRIMIR “¿llegó la maestra? ” LEER: maestra
SI calor ==‟s‟ Y maestra ==‟n‟ ENTONCES IMPRIMIR “voy a irme a mi casa”
FIN SI FIN
Ejemplo 8 Diagrama de flujo de la sentencia alternativa del enunciado: “No tengo clase, si la cafetería esta cerrada voy a irme a la biblioteca”
Pseudocpodigo Diagrama de flujo
ALGORITMO CafeCerrada VARIABLES cafeteria es caracter INICIO
IMPRIMIR “¿la cafetería esta cerrada?”
LEER: cafeteria
SI cafeteria == „s‟ ENTONCES
IMPRIMIR “voy a irme a la biblioteca”
FIN SI FIN
voy a irme a la biblioteca Cafeteria
== „s‟
“¿es sabado?”
sab
“voy a irme a dormir a la biblioteca”
sab==„s‟ Y escuela==„s‟
Y biblio==„s‟
si
no
“¿estoy en la escuela?”
escuela A
A
“¿la biblioteca esta fresca?”
biblio
B
B
voy a irme a mi casa calor ==‟s‟ Y
maestra
==‟n‟
si
no
A continuación se muestran los esquemas representativos de las sentencias alternativas anidadas. Cada sentencia debe terminarse adecuadamente, sin unir los flujos erróneamente y respetar la secuencia del algoritmo. Se cierra de la más interna hasta la más externa, sin combinar los flujos de sentencias alternativas paralelas.
Los siguientes tres diagramas representan lo mismo, solo cambia la forma de unir los símbolos y lograr la secuencia del algoritmo. Este caso implica anidación en el bloque del si.
a. Dibujado desde el centro, de arriba hacia abajo
b. Dibujado de arriba hacia abajo de izquierda a derecha
c. Dibujado de arriba hacia abajo de izquierda a derecha, usando conectores para terminarlas adecuadamente
Figura 3 Decisión anidada en el bloque del si.
Pueden usarse conectores dentro de página cuando la visibilidad de la sentencia se haga más compleja y así se evitan trazar líneas que compliquen el diagrama, ahorrando espacio en la hoja donde se dibuja el mismo. La colocación de los conectores debe ser homogénea en los diagramas, para mejorar la lectura de los mismos, teniéndose que:
para las líneas de salida se colocaran los conectores a la derecha del diagrama, si va de arriba hacia abajo, y si va de izquierda a derecha, según el espacio disponible, pueden colocarse a la derecha o hacia abajo.
n o
s i
n o
s i
A
A B B
n o
s i
n o
s i
n o s i
n o s i
para las líneas de entrada, se colocaran los conectores a la izquierda del diagrama, si va de arriba hacia abajo, y si va de izquierda a derecha, se colocarán arriba los conectores.
Así mismo los conectores fuera de página se emplean para lograr la secuencia de la sentencia al acabarse la hoja y se tenga necesidad de continuar en otra, respetando siempre las sentencias en su anidación y cerrando cada una adecuadamente.
Figura 4 Decisión anidada en el bloque del si. ().
Los siguientes tres diagramas representan lo mismo, este caso implica anidación en el bloque del no, solo tiene un nivel de anidación (solo cambia la forma de unir los símbolos y lograr la secuencia del algoritmo).
a) Dibujada de arriba hacia abajo, usando conectores dentro de pagina
b) ibujada de arriba hacia abajo
c) Dibujada desde el centro, de arriba hacia abajo
Figura 5 Decisión anidada en el bloque del no.
Los siguientes tres diagramas representan lo mismo, este caso implica anidación en el ambos bloques de la decisión teniendo únicamente un nivel de anidación (solo cambia la forma de unir los
n o
s i
n o
s i
A
A
B
B
n o s i
n o s i
n o
s i
n o
s i
símbolos y lograr la secuencia del algoritmo).
a) Dibujada de arriba, hacia abajo, de izquierda a derecha, jerarquizando las sentencias alternativas internas, sin usar conectores para terminarlas
b) Dibujada de arriba, hacia abajo, de izquierda a derecha, usando conectores para terminar las sentencias alternativas
c) Dibujada desde el centro, de arriba hacia abajo
Figura 6 Decisión anidada en ambas alternativas. ()
A continuación se incluyen las representaciones de dos casos particulares de algoritmos mediante diagramas de flujo, tratando de ejemplificar las implicaciones al tener dos niveles de anidación.
Para cada caso se incluyen tres formas de dibujar el diagrama.
La primera representación implica el dibujo desde el centro, la cual permite una
n o
s i
n o
s i
n o
s i
B A
A B
n o s i
n o s i n o s i
n o
s i
n o
s i
n o s i
mejor visualización de las opciones anidadas;
la segunda implica un orden de arriba hacia abajo, de izquierda a derecha, sin uso de conectores, donde se aprecia la secuencia correcta de los flujos (líneas de flujo de datos); y
la tercera es similar a la segunda, pero usando conectores dentro de página.
En ambos casos de anidación solo se tienen variantes en el último nivel.
Obsérvese el primer caso, donde se ejemplifica la anidación, en el último nivel, solo en los bloques del si.
Figura 7 Decisión anidada con tres niveles de anidación. (Dibujada desde el centro)
Figura 8 Decisión anidada con tres niveles de anidación. (Dibujada de arriba hacia abajo, de izquierda a derecha) n o
s i
n o
s i n o
s i
n o
s i
n o s i
n o s i
n o s i n o s i
n o s i n o s i
Figura 9 Decisión anidada con tres niveles de anidación. (Dibujada de arriba hacia abajo, de izquierda a derecha usando conectores)
Obsérvese el segundo caso, donde se ejemplifica la anidación, en una parte en un bloque del si y otra parte en el bloque del no de las sentencias más internas.
Figura 10 Decisión anidada con tres niveles de anidación. (Dibujada desde el centro) n o
s i
n o
s i
n o
s i
B
A
A
B
C
C
D
E
s i
n o
s i
D
E n o
n o s i
n o s i n o s i
n o s i
n o s i
Figura 11 Decisión anidada con tres niveles de anidación. (Dibujada de arriba hacia abajo, de izquierda a derecha)
n o
s i
n o
s i
n o
s i
n o
s i
n o
s i
Figura 12 Decisión anidada con tres niveles de anidación. (Dibujada de arriba hacia abajo, de izquierda a derecha usando conectores)
n o
s i
n o
s i n o
s i
n o
s i
n o
s i
B
A
A B
C
C
D
D
E
E
Ejemplo 9 Diagrama de flujo de sentencia alternativa anidada que determina la cantidad menor de tres dadas.
Pseudocodigo Diagrama de flujo
//pseudocodigo SI (a<b) ENTONCES
SI (a<c) ENTONCES
IMPRIMIR “El número menor es”, a DE LO CONTRARIO
IMPRIMIR “El número menor es”, c FIN DE SI
DE LO CONTRARIO SI (b<c) ENTONCES
IMPRIMIR “El número menor es”, b DE LO CONTRARIO
IMPRIMIR “El número menor es”, c FIN DE SI
FIN DE SI
Ejemplo 10 Diagrama de flujo de la sentencia alternativa anidada para el enunciado: “Es sábado y estoy en la escuela, voy a irme a dormir a la biblioteca si esta fresca”
Pseudocodigo Diagrama de flujo
IMPRIMIR “¿es sabado?”
LEER: sab
IMPRIMIR “¿estoy en la escuela?2 LEER: escuela
SI sab == „s‟ Y escuela == „s‟ ENTONCES IMPRIMIR “¿la biblioteca esta fresca?”
LEER: biblio
SI biblio == „s‟ ENTONCES
IMPRIMIR “voy a irme a dormir”
IMPRIMIR “a la biblioteca”.
FIN SI FIN SI
“voy a irme a dormir a la biblioteca”
sab==„s‟
Y escuela=
=„s‟
si
no
“¿la biblioteca esta fresca?”
biblio
biblio==„s‟
si
no a < b
n o
s i
b < c n o
s i
a < c n o
s i
A
B
A B
“El número menor es”, a
“El número menor es”, c
“El número menor es”, b
“El número menor es”, c
Ejemplo 11 Diagrama de flujo de la sentencia alternativa anidada para el enunciado: “Tomaré helado del bote y voy a ir a la escuela a preguntar por la maestra, si llegó voy a ir a la biblioteca el día sábado, si no llego me iré a mi casa solo si la cafetería esta cerrada o el día no esta soleado.”
IMPRIMIR “¿llegó la maestra?”
LEER: maestra
SI maestra == „s‟ ENTONCES
IMPRIMIR “voy a irme a la biblioteca”
IMPRIMIR “ el día sábado”
DE LO CONTRARIO
IMPRIMIR “¿la cafetería esta abierta?”
LEER: cafe
IMPRIMIR “¿el día esta soleado?”
LEER: soleado
SI cafe == „n‟ O soleado == „n‟ ENTONCES IMPRIMIR “me iré a mi casa”
FIN SI FIN SI
Ejemplo 12 Diagrama de flujo de la sentencia alternativa anidada para el enunciado: “Si no llega la maestra y no me mandan a la sala de computo, entonces me pasaré la hora en la cafetería”
SI maestra==‟s‟ ENTONCES
IMPRIMIR “No voy a ningún lado”
DE LO CONTRARIO SI sala==‟s‟ ENTONCES
IMPRIMIR “Me voy a la sala, no “ IMPRIMIR “puedo ir a la cafetería”
DE LO CONTRARIO
IMPRIMIR “Me voy a la cafetería”
FIN SI FIN SI
maestr a==‟s‟
“No voy a ningún lado”
sala==
‟s‟
“Me voy a la sala, no puedo ir
a la cafetería”
“ “Me voy a la
cafetería”
A
A
“voy a iré a mi casa”
si
no
“¿la cafeteria esta abierta?”
cafe
“¿el día esta soleado?”
soleado
cafe == „n‟
O soleado
== „n‟
si
no maest
ra==„s
‟
Ejemplo 13 Sentencia de control alternativa en diagrama de flujo para el enunciado: “Tomaré helado del bote y voy a ir a la escuela a preguntar por la maestra, si llegó voy a ir a la biblioteca el día sábado, si no llego me iré a mi casa solo si la cafetería esta cerrada o el día no esta soleado.”
Pseudocodigo Diagrama de flujo
IMPRIMIR “Tomaré helado del bote”,
IMPRIMIR “Voy a ir a la escuela a preguntar”
IMPRIMIR “por la maestra”
IMPRIMIR ¿llegó la maestra?
LEER maestra
SI maestra == „s‟ ENTONCES
IMPRIMIR “voy a irme a la biblioteca”
IMPRIMIR “el día sábado”
DE LO CONTRARIO
IMPRIMIR ¿la cafetería esta abierta?
LEER cafe
IMPRIMIR ¿el día esta soleado?
LEER soleado
SI cafe == „n‟ O soleado == „n‟ ENTONCES IMPRIMIR “me iré a mi casa”
FIN SI FIN SI
Ejemplo 14 Diagrama de flujo de la sentencia alternativa anidada para el enunciado: Si la biblioteca no esta fresca voy a irme a mi casa, solo si la maestra no llega.
IMPRIMIR “¿llegó la maestra?”
LEER maestra
SI (maestra == „n‟) ENTONCES
IMPRIMIR “¿la biblioteca esta fresca?”
LEER biblio
SI (biblio == „n‟) ENTONCES
IMPRIMIR “voy a irme a mi casa”
FIN DE SI FIN DE SI
“Voy a irme a la biblioteca el día sábado”
cafe == „n‟
O soleado
== „n‟
“¿la cafeteria esta
abierta?”
“
“Me iré a mi casa”
“ A
A
cafe
soleado “¿el día
esta soleado?”
“ maestra=
=‟s‟
Ejemplo 15 Diagrama de flujo que permite capturar un entero que indique el mes y muestre con letras el mes correspondiente.
“voy a iré a mi casa”
si
no
“¿la biblioteca esta fresca?”
biblio
biblio
== „n‟
si
no maestr
a==„n‟
“Introduzca el número
del mes”
INICIO mes es entero
mes
Mes
== 1 “ENERO” A
si
no Mes
== 2 “FEBRERO
” B
si
no Mes
== 3 “MARZO” C
si
no
Mes
== 4 “ABRIL” D
si
no
Mes
== 5 “MAYO” E
si
no Mes
== 6 “JUNIO” F
si
no Mes
== 7 “JULIO” G
si
no Mes
== 8 “AGOSTO” H
si
no
X
X
Y Mes
== 9
“SEPTIEM
BRE” I
si
no Mes
== 10
“OCTUBR
E” J
si
no
Actividad 1 Realice los diagrama de flujo para los enunciados de las actividades con pseudocódigo.
Mes
== 11
“NOVIEM
BRE” K
si
no Mes
== 12
“DICIEMB
RE” L
si
no Y
L
K J I
H G F E D C B A
Z
Z
FIN