Está en la página 1de 20

LÓGICA Y ALGORITMOS

Profesor
Ernesto Solano Hernández
LÓGICA Y ALGORITMOS
MÓDULO 3. ESTRUCTURAS CONDICIONALES Y REPETITIVAS

Elaboración de contenido:

ERNESTO SOLANO HERNÁNDEZ


Ingeniero de Sistemas

Producción
Oficina de las TIC
Oficina de Desarrollo Académico
Vicerrectoría Académica
Unidades Tecnológicas de Santander
2017
Módulo 3. ESTRUCTURAS CONDICIONALES Y REPETITIVAS

Los ejercicios de este módulo han sido tomados del libro de Cairó(2003)

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.
Figura 1. Estructuras Selectivas Anidadas.

Fuente: Cairó (2003).

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%.
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
Figura 2. Diagrama de flujo.

COMPRA

Fuente: Cairó (2003).

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, de lo contrario solo se
cancelarán 30

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 muestra el valor de la hora por categoría.

Tabla 1. Diagrama de Flujo. Valor de la hora por categorías

PRECIO HORA
CATEGORIA
EXTRA
1 $ 30
2 $38
3 $50
4 $70

Fuente: Cairó (2003).

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
Figura 3. Sueldos por categorías.
Fuente: Cairó. (2003.
HORAS EXTRAS- Seudocódigo
{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

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
5. Escribir PAGAR

6. Imprimir CUA, CUB


LECCIÓN 2. ESTRUCTURAS REPETITIVAS (CICLO PARA)

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.
Figura 4. Estructuras repetitivas (ciclo para)

Fuente: Cairó (2003).

Para dar solución a los diferentes algoritmos que abarca esta lección, se debe tener
en cuenta dos nuevos tipos de variables denominadas contadoras y acumuladoras.
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, generalmente acumula un valor pedido dentro del algoritmo, siendo esta
una variable de salida.
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.
Figura 5. Variables.

VARIABLES

CONTADORAS
ACUMULADORAS

total_boletos total_venta
total_boletos = total_boletos + 1 total_venta = total_venta +venta

Fuente: autor

Ejemplo 1:
Se tiene una lista de números enteros, realizar un diagrama de flujo que:

a) Obtenga cuántos 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),
promedio de todos los números (PROGEN), Promedio de números positivos
(PROPOS).

Figura 6. Diagrama de Flujo. Lista de números enteros.


Fuente: Cairó (2003).
PROMEDIO. Seudocódigo
{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.
Figura 7. Diagrama de Flujo. Caídas de lluvias en la región cafetera.

Fuente: Cairó (2003).


LLUVIAS. Seudocódigo
{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
LECCIÓN 3. ESTRUCTURAS REPETITIVAS (CICLO MIENTRAS)

Comúnmente conocida como While, es la estructura utilizada y más adecuada


cuando no se sabe el número de veces que deben repetir una acción, el ciclo se
termina en el momento que se evalúe la condición y esta no se cumpla.

Figura 8. Estructuras repetitivas (ciclo mientras)

Fuente: Cairó (2003).

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 sólo 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.
Figura 9. Diagrama de flujo. Aumento de Salarios.

Fuente: Cairó (2003).


SALARIOS. Seudocódigo
{Programa que calcula el aumento de salarios de los empleados de una compañía}

{SUE, NOM, NSUE  variables de tipo real 1}

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 realiza, 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).
Figura 10. Diagrama de Flujo. Número de votos de cada candidato.

Fuente: Cairó (2003).


VOTACIÓN. Seudocódigo
{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

Osvaldo, Cairó (2003). Metodología de la Programación. México. ALFAOMEGA GRUPO


EDITOR SA de CV.

También podría gustarte