Estructuras Repetitivas
ALGORITMOS, Unidad 2
FACULTAD DE INGENIERÍA INDUSTRIAL
UNIIVERSIDAD PERUANA DE CIENCIAS APLICADAS
Coordinación de Curso
Contenido
1. Estructuras repetitivas de salida controlada
2. Estructuras repetitivas de entrada controlada
3. Alternativa Entrada Controlada tipo : Contador Implícito
1. Estructura Repetitiva de Salida Controlada
Permite repetir una serie de acciones o instrucciones y termina este proceso cuando se cumple
la condición indicada.
DIAGRAMA DE FLUJO PSEUDOCÓDIGO
Instrucciones a repetir REPETIR / HACER
Si la condición
lógica lo permite se Grupo de acciones
BLOQUE DE
repite la ejecución ACCIONES
HASTA CONDICION DE SALIDA
F /V CONDICIÓN
VòF De acuerdo a la condición
lógica se para la repetición
o ejecución
Ejemplo 1.1
Diseñe un algoritmo que incremente un número inicial en su propio valor hasta que supere el
tope de 5 veces su valor.
PSEUDOCÓDIGO PSEUDOCÓDIGO
ANÁLISIS INICIO INICIO
Dato de entrada Leer A Ingresar A
A: número a incrementar, N A N A
(entero) C 0 C 0
Dato intermedio Repetir Hacer
N: acumulador del N N +A N N +A
incremento (entero) C C + 1 C C + 1
Dato de salida Hasta (N > 5*A) Hasta NO(N <= 5*A)
C: contador de repetición Mostrar “Se incrementó ” & C & “ Veces” Imprimir “Se incrementó ” & C & “ Veces”
FIN FIN
• Practicar , diseñando el diagrama de flujo……
EJEMPLO 1.2
• Cree un algoritmo que permita ingresar números, pero no se sabe cuántos
números se ingresarán, por lo que deberá realizar la pregunta “Desea
continuar” y si la respuesta es negativa, deberá terminar con los ingresos.
Además, indique cuántos números se ingresaron.
• Tome en cuenta que cuando programe los números deberán mostrarse en un
listado a medida que se ingresan.
El caso anterior se resuelve utilizando una
estructura repetitiva de salida controlada
como se verá a continuación.
Solución en Diagrama de flujo y pseudocódigo
Inicio
Inicio
i=0
ANÁLISIS Inicio
Repetir
Dato de entrada i=0
i=i+1
i=0
n: número (Real) Ingresar n
Rpta: respuesta del usuario (Texto) i = i +1
Mostrar “¿Desea continuar?”
i = i +1
Dato intermedio Leer Rpta
n
Hasta Rpta = “NO”
n
Mostrar i
Dato de salida Fin
i: contador de números (Entero) “¿Desea
“¿Desea
Continuar?
Continuar?
Inicio
Rpta i=0
Rpta
Hacer
No i=i+1
V
Rpta = “No” NO (Rpta = “NO”) Ingresar n
Mostrar “¿Desea continuar?”
¿Qué cambios realizaría en cada Sí
F Ingresar Rpta
i Hasta Rpta < > “Si”
algoritmo para poder validar la i
Mostrar i
respuesta como “Sí” o “No”? Fin
Fin
Fin
2. Estructuras Repetitivas de Entrada Controlada
Permite repetir unas acciones SOLO mientras la condición de entrada se siga cumpliendo.
DIAGRAMA DE FLUJO PSEUDOCÓDIGO
MIENTRAS CONDICION DE ENTRADA HACER
Grupo De Acciones
NO /SI
CONDICIÓN FIN_MIENTRAS
MIENTRAS CONDICION DE ENTRADA
SI / NO SI LA CONDICIÓN NO PERMITE LA
ENTRADA
Grupo De Acciones
BLOQUE DE
ACCIONES FIN_MIENTRAS
HACER MIENTRAS CONDICION DE ENTRADA
Grupo De Acciones
FIN_MIENTRAS
Ejemplo 2.1
Diseñe un algoritmo que incremente en 50 unidades la suma (que inicia en cero), mientras no
supere el valor de 1000
ANÁLISIS PSEUDOCÓDIGO
PSEUDOCÓDIGO
Datos de entrada INICIO
Datos intermedios INICIO
Suma 0
SUMA: acumulador de la suma Suma 0 Hacer Mientras no(Suma >= 1000)
(entero) Mientras Suma < 1000
Suma Suma + 50
Datos de salida Suma Suma + 50
C C + 1
C: contador de repetición C C + 1 Fin_mientras
Fin_mientras
Mostrar “Se incrementó ” & C & “ Veces”
Mostrar “Se incrementó ” & C & “ Veces”
FIN
FIN
• Practicar , diseñando el diagrama de flujo……
EJEMPLO 2.2
• Cree un algoritmo que permita realizar un numero de pedidos
consecutivos mientras se cuente con stock disponible en bodega
Toma y asigna valores
Inicio Inicio DESDE una Celda de Excel
ANÁLISIS P [G8] MANUALMENTE
Dato de entrada Stock celda(7,7)
Stock , P Si Stock <= 0 then
stock :Inventario, entero mostrar “no hay stock”
C:cantidad a pedir por De lo contrario
Mientras no(stock <= 0)
pedido, entero Leer C
No
P: el número de pedido Stock>0 Si C <= Stock Y C <> 0 entonces
PP+1
Stock Stock – C
Dato intermedio Sí
Escribe los
C valores en una Celda ( 7 + P, “b”) P
Celda de Excel Celda (7 + P, “c”) C
Dato de salida manualmente [G7]Stock
[G8]P
• Al finalizar el C>Stock o C= 0
V
SinoSI C > Stock entonces
boocle se podría Mostrar “supera el stock”
De lo contrario
mostrar P F “no valido”
Mostrar ”Cero no es válido”
acumulado. PP+1 Fin_Si
• Stock disminuido “No hay stock” Fin_mientras
Fin_SI
o final. Stock Stock - C Mostrar “Se agoto el Stock”
Mostrar “Se hicieron “ & P & “Pedidos”
FIN
FIN
EJEMPLO 2.2
• Que cambios podrías realizar en las condiciones??
Toma y asigna valores
Inicio Inicio DESDE una Celda de Excel
ANÁLISIS P [G8] MANUALMENTE
Dato de entrada Stock celda(7,7)
Stock , P Si Stock <= 0 then
stock :Inventario, entero mostrar “no hay stock”
C:cantidad a pedir por De lo contrario
Mientras ?????
pedido, entero Leer C
???
P: el número de pedido ??? Si ??????? entonces
PP+1
Stock Stock – C
Dato intermedio ???
Escribe los
C valores en una Celda ( 7 + P, “b”) P
Celda de Excel Celda (7 + P, “c”) C
Dato de salida manualmente [G7]Stock
[G8]P
• Al finalizar el ????
???
SinoSI ??????? entonces
boocle se podría Mostrar “supera el stock”
De lo contrario
mostrar P ??? “no valido”
Mostrar ”Cero no es válido”
acumulado. PP+1 Fin_Si
• Stock disminuido “No hay stock” Fin_mientras
Fin_SI
o final. Stock Stock - C Mostrar “Se agoto el Stock”
Mostrar “Se hicieron “ & P & “Pedidos”
FIN
FIN
EJEMPLO 2.2
• Cree un algoritmo que permita realizar un numero de pedidos
consecutivos mientras
Inicio
se cuente con stock disponible en bodega
ANÁLISIS P[G8] Asigna Valores
Stock[G7] desde una celda de
Dato de entrada Excel
stock :Inventario, entero
C:cantidad a pedir por Stock>0 No
pedido, entero
P: el número de pedido Sí “No hay stock”
C
Dato intermedio
[G8] P
C>Stock o C= 0
Dato de salida
• Al finalizar el “no valido” [G7] Stock
PP+1
boocle se podría
mostrar P Celda(7+p,”b”) P FIN
acumulado.
• Stock disminuido Stock Stock - C
o final. Escribe los valores en
Celda(7+p,”c”) C una Celda de Excel
Para hallar el máximo valor de un listado
Cómo encontrar el valor mayor?
1. Antes del bloque de repeticiones:
Inicie una variable con el menor valor posible.
Max = 0
2. Dentro del bloque de repeticiones:
a) Ingrese el dato
b) Compare cada uno de los valores con Max asi:
Si Dato >= Max Entonces Max = Dato
3. Después de salir del bloque de repeticiones:
Mostrar Max
Para hallar el mínimo valor de un listado
Cómo encontrar el valor menor:
1. Antes del bloque de repeticiones:
Inicie una variable con el mayor valor posible
Min = 9999
2. Dentro del bloque de repeticiones:
a) Ingrese el dato
b) Compare cada uno de los valores con Min
Si Dato <= Min Entonces Min = Dato
3. Después de salir del bloque de repeticiones:
Mostrar Min
1. Estructura Repetitiva Contador Implícito
Permite repetir una serie de acciones o instrucciones y termina cuando el contador “implícito”
alcanza el valor requerido
DIAGRAMA DE FLUJO
Si la variación es +1,
se puede omitir PSEUDOCÓDIGO
Para i = Valor_inicial hasta Valor_final paso Variación
i> Valor final
Para i = Valor_inicial hasta Valor_final paso Variación
Grupo de acciones a repetir
i<= Valor final Siguiente i
BLOQUE DE
ISNTRUCCIONES SIGUIENTE BLOQUE
DE ISNTRUCCIONES
Siguiente i
Consideraciones
• Los datos del valor inicial y final son número enteros.
• La instrucción Siguiente incrementa por defecto en 1 el contador i.
• Si se desea otro incremento, debe indicar ese incremento con la palabra Paso y a
continuación especificar la variación. Por ejemplo, si desea que el incremento sea de 3
en 3, deberá escribir Paso 3.
• También, puede disminuir en lugar de aumentar, en tal caso utilice el signo negativo.
• Los nombres de los contadores se trabajan con las letras i, j, k, etc. de tal manera, que
esta normativa permite reconocer fácilmente a los contadores dentro de un algoritmo o
programa facilitando la lectura y comprensión.
Ejemplo 1.1
Diseñe un algoritmo que aplique una encuesta demográfica para evaluar la edad promedio de un
grupo de 10 personas.
DIAGRAMA DE FLUJO
PSEUDOCÓDIGO INICIO
ANÁLISIS
Inicialización de
Dato de entrada INICIO acumulador
N: número de encuestados N 10 N 10
(entero) C 0
Para i = 1 hasta N C0
EDAD: de cada persona
(entero) Leer EDAD
Dato intermedio C C + EDAD Para i = 1 hasta N
C: acumulador de la Siguiente i Sumatoria de Edades
suma de edad (entero) PC / N PC/N
Dato de salida EDAD
Mostrar “el promedio de edad es” & P & “ Años”
P: promedio de edades FIN
P
C C + EDAD
• Se omite el paso porque el incremento es de 1 Siguiente i FIN
Resuelva
Cree un algoritmo (diagrama de flujo) que Inicio
muestre los cuadrados de los n primeros
n
números naturales. “Ingrese #
mayor a cero”
No
Finalmente, muestre el cociente de la suma de n>0
Sí
los cuadrados entre n.
Suma =0
Para i = 1 hasta n
Cociente = Suma \ n
Cuadrado = i ^ 2
Suma =Suma + Cuadrado
Cuadrado Cociente
Siguiente i Fin
Recuerde!!!
o Var, es una variable numérica (entera o real)
o Vi, es el valor inicial que asume la variable Var
o Vf, es el valor final al que debe llegar la variable Var
o Siguiente Var, es una instrucción que incrementa el
valor de la variable Var en 1.
o Si se desea un incremento (o decremento) diferente
de 1 se debe escribir: Paso o Inc
Para Var = Vi hasta Vf Paso Valor
Ejemplo: Var asumirá los siguientes
valores: 1, 3, 5, 7
Para Var = 1 hasta 8 Paso 2
Para Var = 8 hasta 1 Inc -2 Var asumirá los siguientes
valores: 8, 6, 4, 2
Práctica….
• Desarrolle los ejercicios propuestos por el profesor y los propuestos de la
separata de ejercicios de clases ……
Realice el ejercicio anterior cambiando el valor inicial a 10 y el valor final a 1:
*Analice que cambia
*En este caso, el paso o variación es incremental???
*Realice el ejemplo anterior con estructura de entrada controlada
*Realice el ejemplo anterior con estructura de salida controlada
https://cdn1.excelyvba.com/wp-content/uploads/2013/01/m%C3%A1ximo-valor-de-una-tabla.png
https://thumbs.dreamstime.com/b/evento-c%C3%ADclico-58796944.jpg