16
Ing Alba Rossi Rocha Página 1 Lógica y Algoritmos Estructuras selectivas y repetitivas 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 - atena.uts.edu.co

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lógica y Algoritmos - atena.uts.edu.co

Ing Alba Rossi Rocha Página 1

Lógica y Algoritmos

Estructuras selectivas y repetitivas

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%.

Page 2: Lógica y Algoritmos - atena.uts.edu.co

Ing Alba Rossi Rocha Página 2

Lógica y Algoritmos

Estructuras selectivas y repetitivas

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

COMPRA

Page 3: Lógica y Algoritmos - atena.uts.edu.co

Ing Alba Rossi Rocha Página 3

Lógica y Algoritmos

Estructuras selectivas y repetitivas

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

DESCUENTOS

{Programa que calcula el descuento otorgado por el valor de una compra}

{COMPRA, PAGAR variables 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

4. Imprimir CUA, CUB

COMPRA

Page 4: Lógica y Algoritmos - atena.uts.edu.co

Ing Alba Rossi Rocha Página 4

Lógica y Algoritmos

Estructuras selectivas y repetitivas

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

Page 5: Lógica y Algoritmos - atena.uts.edu.co

Ing Alba Rossi Rocha Página 5

Lógica y Algoritmos

Estructuras selectivas y repetitivas

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.

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

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

Page 6: Lógica y Algoritmos - atena.uts.edu.co

Ing Alba Rossi Rocha Página 6

Lógica y Algoritmos

Estructuras selectivas y repetitivas

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

Page 7: Lógica y Algoritmos - atena.uts.edu.co

Ing Alba Rossi Rocha Página 7

Lógica y Algoritmos

Estructuras selectivas y repetitivas

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);

Page 8: Lógica y Algoritmos - atena.uts.edu.co

Ing Alba Rossi Rocha Página 8

Lógica y Algoritmos

Estructuras selectivas y repetitivas

promedio de todos los números (PROGEN); Promedio de números positivos

(PROPOS)

Page 9: Lógica y Algoritmos - atena.uts.edu.co

Ing Alba Rossi Rocha Página 9

Lógica y Algoritmos

Estructuras selectivas y repetitivas

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.

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

Page 10: Lógica y Algoritmos - atena.uts.edu.co

Ing Alba Rossi Rocha Página 10

Lógica y Algoritmos

Estructuras selectivas y repetitivas

Page 11: Lógica y Algoritmos - atena.uts.edu.co

Ing Alba Rossi Rocha Página 11

Lógica y Algoritmos

Estructuras selectivas y repetitivas

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

Page 12: Lógica y Algoritmos - atena.uts.edu.co

Ing Alba Rossi Rocha Página 12

Lógica y Algoritmos

Estructuras selectivas y repetitivas

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.

Page 13: Lógica y Algoritmos - atena.uts.edu.co

Ing Alba Rossi Rocha Página 13

Lógica y Algoritmos

Estructuras selectivas y repetitivas

Page 14: Lógica y Algoritmos - atena.uts.edu.co

Ing Alba Rossi Rocha Página 14

Lógica y Algoritmos

Estructuras selectivas y repetitivas

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).

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

Page 15: Lógica y Algoritmos - atena.uts.edu.co

Ing Alba Rossi Rocha Página 15

Lógica y Algoritmos

Estructuras selectivas y repetitivas

Page 16: Lógica y Algoritmos - atena.uts.edu.co

Ing Alba Rossi Rocha Página 16

Lógica y Algoritmos

Estructuras selectivas y repetitivas

Bibliografía

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

EDITOR SA de CV.

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