Lógica y Algoritmos
Estructuras selectivas y repetitivas
Ing Christian Espitia Página 1
3. Estructuras condicionales y repetitivas
Lección 1. Estructuras Selectivas Anidadas.
Son aquellas estructuras que al tomar una decisión, el camino a seguir es otra
estructura de decisión, por alguno de los dos caminos a seguir. Sin embargo
esta operación se puede repetir varias veces, de acuerdo a las necesidades del
caso presentado.
Ejemplo 1:
En un supermercado se efectúa un descuento a los compradores de acuerdo al
valor de la compra. Ese descuento se realiza de acuerdo al siguiente criterio:
a) Si el valor de la compra es menor que $500, no se realiza descuento
alguno.
b) Si el valor de la compra está comprendido entre $500 y $1000 inclusive,
se otorga descuento del 5%.
c) Si el valor de la compra está comprendido entre $1000 y $7000
inclusive, se otorga descuento de 11%.
d) Si el valor de la compra está comprendido entre $7000 y $15000
inclusive, se otorga descuento del 18%.
e) Si el valor de compra supera los $15000 se otorga un descuento del
25%.
Lógica y Algoritmos
Estructuras selectivas y repetitivas
Ing Christian Espitia Página 2
COMPRA
Construya un diagrama de flujo que determine lo que el cliente debe pagar.
Entrada: Compra (COMPRA), de tipo real
Salida: Pagar (PAGAR) de tipo real
Lógica y Algoritmos
Estructuras selectivas y repetitivas
Ing Christian Espitia Página 3
➔ variable
DESCUENTOS
{Programa que calcula el descuento otorgado por el valor de una compra}
{COMPRA, PAGAR COMPRA
s de tipo real}
1. Leer COMPRA
2. Si COMPRA < 500 entonces
Hacer PAGAR COMPRA
Sino Si COMPRA <= 1000 entonces
Hacer PAGAR COMPRA – (COMPRA *0.05)
Sino
Si COMPRA <= 7000 entonces
Hacer PAGAR COMPRA – (COMPRA *0.11)
Sino
Si COMPRA <= 15000 entonces
Hacer PAGAR COMPRA – (COMPRA *0.18)
Sino
Hacer PAGAR COMPRA – (COMPRA *0.25)
{Fin Condicional
{Fin Condicional
{Fin Condicional
{Fin Condicional
3. Escribir PAGAR
Ejemplo 2:
Realizar un diagrama de flujo que permita calcular el pago de su salario a un
trabajador, teniendo en cuenta el sueldo y las horas extras trabajadas. Cada
uno de los empleados puede tener como máximo 30 horas extras para
cancelar, de lo contrario no se cancelan. El respectivo pago se realiza de
acuerdo a la categoría del empleado; adicionalmente si la categoría del
empleado es mayor a 4 no se le deben pagar horas extras
La siguiente tabla entrega muestra el valor de la hora por categoría
CATEGORIA PRECIO HORA
EXTRA
1 $ 30
2 $38
3 $50
4 $70
Lógica y Algoritmos
Estructuras selectivas y repetitivas
Ing Christian Espitia Página 4
Entrada: Sueldo (SUE), de tipo real; Categoría (CATE), Horas Extras (HE),
Pago Hora Extras (PHE) de tipo entero
Salida: Nuevo Sueldo (NSUE) de tipo real
Lógica y Algoritmos
Estructuras selectivas y repetitivas
Ing Christian Espitia Página 5
HORAS EXTRAS
{Programa que calcula el pago de horas extras a un trabajador}
{CATE y HE ➔ variables de tipo entero; SUE, PHE y NSUE son variables de tipo real}
1. Leer SUE, CATE, HE
2. Si CATE igual
1: Hacer PHE 30
2: Hacer PHE 38
3: Hacer PHE 50
4: Hacer PHE 70
De otra forma: Hacer PHE 0
{Fin condicional}
3. Si HE > 30 entonces
Hacer NSUE SUE + 30 * PHE
Sino
Hacer NSUE SUE + HE * PHE
{Fin Condicional
4. Escribir NSUE
Lección 2. Estructuras Repetitivas (Ciclo Repetir)
Las estructuras algorítmicas de tipo repetitivo, son aquellas que se utilizan
cuando en la solución de un algoritmo se deben ejecutar operaciones un
número repetido de veces, generando un ciclo.
En cada ciclo o repetición se debe verificar o evaluar la condición para saber si
se continua con la repetición o se para el ciclo. Para esta estructura en
particular se conoce el número de repeticiones, es decir se conoce el inicio y el
final de la iteración; esta estructura comúnmente se conoce como FOR.
Lógica y Algoritmos
Estructuras selectivas y repetitivas
Ing Christian Espitia Página 6
Variable contadora: es una variable cuyo valor se incrementa o decrementa
en un valor constante, cada vez que se produce un determinado suceso o
acción. En la mayoría de los casos se utilizan en el conteo interno de los bucles
o ciclos de repetición o en el conteo de elementos en un procedimiento
Variable acumuladora: es una variable que suma sobre si misma (acumula)
valores, para mantener una suma de ellos, en la misma variable.
Dos aspectos importantes de estos dos tipos de variables: el primero tiene
relación con el hecho que las dos deben inicializarse, es decir deben tomar un
valor inicial; el segundo es que ellas van aumentando o decrementando de
forma diferente, el contador aumenta de uno a uno y el acumulador lo hace con
una cantidad variable
Lógica y Algoritmos
Estructuras selectivas y repetitivas
Ing Christian Espitia Página 7
Ejemplo 1:
Se tiene una lista de números enteros, realizar un diagrama de flujo que:
a) Obtenga cuantos números leídos fueron mayores que cero
b) Calcule el promedio de los números positivos
c) Obtenga el promedio de todos los números.
Entrada: Cantidad de números (N) de tipo entero; Variable del ciclo repetitivo
(I); Número de la lista a evaluar (NUM).
Salida: Números mayores a cero (CUEPOS) de tipo entero; Suma de números
positivos (SUMPOS) de tipo real; Suma de todos los números (SUMOTR);
Lógica y Algoritmos
Estructuras selectivas y repetitivas
Ing Christian Espitia Página 8
promedio de todos los números (PROGEN); Promedio de números positivos
(PROPOS)
Lógica y Algoritmos
Estructuras selectivas y repetitivas
Ing Christian Espitia Página 9
PROMEDIO
{Programa que obtiene los números positivos, el promedio de los números y el promedio de
todos}
{I, CUEPOS, NUM, N ➔ variables de tipo entero; SUMPOS, SUMOTR, PROGEN y PROPOS son
variables de tipo real}
1. Hacer SUMPOS 0, CUEPOS 0, SUMOTR 0
2. Leer N
3. Hacer I 1
4. Repetir con I desde 1 hasta N
Leer NUM
Si NUM > 0 entonces
Hacer SUMPOS SUMPOS +NUM
Hacer CUEPOS CUEPOS +1
Else
Hacer SUMOTR SUMOTR +NUM
{Fin Condicional
5. Hacer PROGEN (SUMPOS + SUMOTR)/N
Hacer PROPOS SUMPOS/CUEPOS
6. Escribir CUEPOS, PROPOS, PROGEN
Ejemplo 2:
En el centro meteorológico nacional lleva la estadística de las caídas de lluvias
en las principales regiones cafeteras del país. Región Norte, Región Sur,
Región Centro. Diseñe un diagrama de flujo que calcule lo siguiente:
a) El promedio anual de la región centro
b) El mes y registro con menor lluvia en la región Sur
c) La región con mayor lluvia anual
Entrada: Cantidad de lluvia en la región norte (RNO) de tipo real; Cantidad de
lluvia en la región centro (RCE) de tipo real; Cantidad de lluvia en la región sur
(RSU) de tipo real; Variable que controla el ciclo (I)
Salida: Acumulador de lluvias región centro (ARCE) de tipo real; Acumulador
de lluvias región norte (ARNO) de tipo real; Acumulador de lluvias región sur
(ARSU) de tipo real; Menor registro mensual (MERSU) de tipo real; Mes con
menores lluvias (MES) de tipo entero; Promedio anual de las lluvias en la
región centro (PRORCE), de tipo real.
Lógica y Algoritmos
Estructuras selectivas y repetitivas
Ing Christian Espitia Página 10
Lógica y Algoritmos
Estructuras selectivas y repetitivas
Ing Christian Espitia Página 11
LLUVIAS
{Programa que calcula los promedios de lluvias en las principales regiones cafeteras de
Colombia}
{I, MES ➔ variables de tipo entero; ARNO, ARCE, ARSU, MERSU, RNO, RCE, RSU y
PRORCE son variables de tipo real}
1. Hacer ARNO 0, ARCE 0, ARSU 0, MERSU 500.000, I 1
2. Repetir con I desde 1 hasta 12
Leer RNO, RCE, RSU
Hacer ARNO ARNO + RNO
Hacer ARCE ARCE + RCE
Hacer ARSU ARSU + RSU
Si RSU < MERSU entonces
Hacer MERSU RSU
Hacer MES I
{Fin Condicional
Hacer I 1
{Fin Repetir
3. Hacer PRORCE ARCE/12
4. Escribir “PROMEDIO REGION: “, PRORCE
Escribir “MES CON MENOR LLUVIA REGION SUR: “, MES
Escribir “REGISTRO DEL MES: “, MERSU
5. Si ARNO > ARCE entonces
Si ARNO > ARSU entonces
Escribir “LA REGION CON MAYOR LLUVIA ES LA NORTE “
Sino
Escribir “LA REGION CON MAYOR LLUVIA ES LA SUR “
{Fin Condicional
Sino
Si ARCE > ARSU entonces
Escribir “LA REGION CON MAYOR LLUVIA ES LA CENTRO “
Sino
Escribir “LA REGION CON MAYOR LLUVIA ES LA SUR “
{Fin Condicional
{Fin Condicional
Lógica y Algoritmos
Estructuras selectivas y repetitivas
Ing Christian Espitia Página 12
Lección 3. Estructuras Repetitivas (Ciclo Mientras)
Comúnmente conocida como While, es la estructura utilizada y más adecuada
cuando no sabemos el número de veces que debemos repetir una acción y el
ciclo se termina en el momento que se evalúe la condición y esta no se cumpla.
Ejemplo 1:
Realice un diagrama de flujo que calcule el aumento de salario de un grupo de
trabajadores de una compañía teniendo en cuenta que si el sueldo es inferior a
$1000 se aumenta el 15%, de lo contario si el sueldo es mayor a este valor solo
se aumenta el 12%. Al final se debe imprimir el sueldo nuevo del empleado y el
total de la nómina de la empresa. Para terminar de realizar los cálculos el
salario debe ser -1.
Entrada: Salario del empleado (SUE) de tipo real.
Salida: Nomina de la compañía (NOM) de tipo real; Nuevo sueldo de empleado
(NSUE) de tipo real.
Lógica y Algoritmos
Estructuras selectivas y repetitivas
Ing Christian Espitia Página 13
Lógica y Algoritmos
Estructuras selectivas y repetitivas
Ing Christian Espitia Página 14
SALARIOS
{Programa que calcula el aumento de salarios de los empleados de una compañía}
{SUE, NOM, NSUE ➔ variables de tipo real }
1. Hacer NOM 0
2. Leer SUE
3. Mientras (SUE < > -1) Repetir
Si SUE < 1000 entonces
Hacer NSUE SUE * 1.15
Sino
Hacer NSUE SUE * 1.12
{Fin Condicional
Hacer NOM NOM + SUE
Escribir NSUE
Leer SUE
{Fin Mientras
4. Escribir NOM
Ejemplo 2:
En las pasadas elecciones a la alcaldía de la ciudad, había cuatro candidatos
identificados por la registraduría con los números 1, 2, 3, 4. Se debe realizar un
diagrama de flujo que encuentre el correspondiente número de votos de cada
candidato y el porcentaje obtenido por cada uno respecto al total de votantes.
Los votos llegan de la forma como se realizan indicando el número del
candidato. Para el final de los datos se teclea un cero.
Entrada: Voto por el candidato (VOTO) de tipo entero.
Salida: Votos por cada candidato (CAN1, CAN2, CAN3, CAN4) de tipo entero;
Suma del total de votos (SUMV) de tipo real; porcentajes por cada candidato
(POR1, POR2, POR3, POR4).
Lógica y Algoritmos
Estructuras selectivas y repetitivas
Ing Christian Espitia Página 15
Lógica y Algoritmos
Estructuras selectivas y repetitivas
Ing Christian Espitia Página 16
VOTACIÓN
{Programa que obtiene el total de votos y el porcentaje de los mismos de una elección}
{VOTO ➔ variables de tipo entero; POR1, POR2, POR3, POR4, CAN1, CAN2, CAN3, CAN4 y SUMV
son variables de tipo real}
1. Hacer CAN1 0, CAN2 0, CAN3 0, CAN4 0
2. Leer VOTO
3. Mientras (VOTO < > 0) Repetir
Si VOTO Igual
1: Hacer CAN1 CAN1 + 1
2: Hacer CAN2 CAN2 + 1
3: Hacer CAN3 CAN3 + 1
4: Hacer CAN4 CAN4 + 1
{Fin Condicional
Leer VOTO
{Fin Mientras
4. Hacer SUMV CAN1 + CAN2 + CAN3 +CAN4
Hacer POR1 (CAN1/SUMV) * 100
Hacer POR2 (CAN2/SUMV) * 100
Hacer POR3 (CAN3/SUMV) * 100
Hacer POR4 (CAN4/SUMV) * 100
5. Escribir “VOTOS CANDIDATO 1: “, CAN1, “PORCENTAJE: “, POR1
Escribir “VOTOS CANDIDATO 2: “, CAN2, “PORCENTAJE: “, POR2
Escribir “VOTOS CANDIDATO 3: “, CAN3, “PORCENTAJE: “, POR3
Escribir “VOTOS CANDIDATO 4: “, CAN4, “PORCENTAJE: “, POR4
Escribir “CANTIDAD VOTANTES: “, SUMV
Bibliografía
Cairó, O. (2003). Metodología de la Programación. México. ALFAOMEGA GRUPO
EDITOR SA de CV.