1. Lógica de Programación
Estructuras Repetitivas:
ciclos
Grupo 248
Docente: Ma. Eugenia Morales M.
Institución Universitaria de Envigado
Facultad de Ingenierías
2. Temáticas:
Estructuras Repetitivas: Ciclo Mientras
◦ Representación Ciclo Para
◦ Funcionamiento Ciclo Repita Hasta
3. CONTADOR: Área de trabajo cuyo incremento o REGISTRO CENTINELA: Es el último registro que
decremento es definido. El término contador contiene una señal de fin de archivo, no se
está asociado con la acción de contar. Ejemplo: procesa. Cuando se utiliza el registro
la registradora de un bus cuenta el número de centinela se debe leer antes del ciclo el primer
pasajeros que suben a éste durante un registro; una vez se procese éste se realiza la
determinado tiempo o recorrido. lectura del siguiente (antes del fin del ciclo).
ACUMULADOR: Área de trabajo donde se No hay que utilizar contador para controlar el
almacena un valor que puede ser variable. El final del ciclo.
término acumulador tiene de acumular (sumar REGISTRO IDENTIFICADOR: Indica el número de
cantidades). Por ejemplo: la caja registradora de iteraciones que deben realizarse en un ciclo. Se
un almacén suma cantidades diferentes de lee antes del ciclo, necesita de un contador
pagos, al final de la jornada muestra un para controlar cuando se terminan de procesar
acumulado o suma de los valores todos los registros indicados en el registro
registrados. identificador.
PROMEDIO: Resultado de la división de la suma
de unas variables (acumulador) dividida por el
número de variables sumadas (contador). (
PROMEDIO =
ACUMULADOR/CONTADOR). Cuando el ejercicio
pide un promedio se debe inicializar un
Acumulador y un Contador. Generalmente la
operación del promedio se realiza por fuera del
ciclo.
Elementos básicos:
4. La estructura iterativa o de repetición
permite ejecutar una o varias
instrucciones, un número determinado
de veces o, indefinidamente, mientras
se cumpla una condición. Esta
estructura ayuda a simplificar los
algoritmos.. (Fuente:
http://www.eduteka.org/pdfdir/AlgoritmosProgramacion.pdf )
Para poder implementar acciones
que deben ejecutarse
repetidamente se utilizan los ciclos o
bucles y se llama iteración el hecho de
repetir la ejecución de unas
determinadas acciones. Estos se
utilizan en un programa cuando se
necesita repetir varias veces una
serie de acciones o instrucciones.
Las dos principales preguntas que se
deben hacer al diseñar un bucle son:
◦ Que contiene el bucle?
◦ Cuántas veces hay que repetir?
◦ Cuándo y/o cómo termina el bucle?
Estructuras Repetitivas
5. Se utiliza para ejecutar Sintáxis:
repetitivamente un conjunto Variable = Valor inicial;
o bloque de instrucciones
mientras se cumple una MQ (condición) Haga
condición específica.
Bloque de instrucciones;
Permite ejecutar
repetitivamente el conjunto incremento;
de instrucciones hasta que Fin_MQ
una variable, contador llegue Dónde:
a su valor límite. Variable: Se inicializa la variable
que controla el ciclo
(contador, centinela o suiche).
Condición: Se evalúa que sea
afirmativa.
Incremento: incrementar el
contador o leer la variable
centinela o la variable suiche.
Ciclo MIENTRAS QUE…
6. Ejemplo Ciclo MQ con Contador:
Problema: Realizar un procedimiento que genere e
imprima los números de 0 al 500
X = Contador generador de los números
Sub_GENERAR (Int:X)
Inicio
X = 0; //Se inicializa el contador
MQ (X < 500) Haga
Esc X;
X = X + 1; // O se puede escribir X++;
Fin_MQ
Fin
7. Ejemplo Ciclo MQ con Centinela:
Problema: Realizar un procedimiento que lea nombre y
edad de los 20 estudiantes de un grupo.
Ed = Variable Int que será el centinela
Sub_Datos (Int:Ed; String: Nom[20])
Inicio
Esc “Ingrese edad o 0 para salir”; Lea Ed; //Se lee la
variable centinela
MQ (Ed != 0) Haga
Esc “Ingrese nombre”; Lea Nom;
Esc Nom,” “, Ed;
Esc “Ingrese edad o 0 para salir”; Lea Ed; //Se lee de nuevo la variable
centinela;
Fin_MQ
Fin
8. Ejemplo Ciclo MQ con SW:
Problema: Realizar un procedimiento que lea e
imprima N números.
Sw = Variable suiche que controla el ciclo
Sub_Numeros (Int:Num)
Inicio
Sw = ‘s’; //Se inicializa el suiche
MQ (Sw == `s`) Haga
Esc “Digite Número: “, Lea Num;
Esc “Desea otro número s/n: “; Lea Sw;
ConvMin (Sw); //Función para convertir Sw a minúscula
Fin_MQ
Fin
9. Ejecuta repetitivamente Sintáxis:
un conjunto o bloque de PARA (X = vi hasta vf, incremento)
instrucciones que se Bloque de instrucciones;
conoce de antemano y Fin_PARA
que por lo tanto no
requiere de condición Dónde:
de salida; el contador X: Variable contador que controla
para contar el número el ciclo inicial
vi: Valor
de iteraciones se vf: Valor final (tope del contador.
incrementa o Incremento: si no se expresa
decrementa de modo otro valor, el incremento por
automático en un valor defecto es 1.
constante.
Ciclo PARA:
10. Ejemplo Ciclo Para con incremento
automático de 1:
Problema: Realizar un procedimiento que genere e
imprima los números de 0 al 500
X = Contador generador de los números
Sub_GENERAR (Int:X)
Inicio
Para (X = 1, 500) Haga
Esc X;
Fin_Para
Fin
11. Ejemplo Ciclo Para con incremento
diferente a 1:
Problema: Realizar un procedimiento que genere e
imprima los primeros 10 números pares
X = Contador de los primeros 10 pares (se ejecuta 10
veces del 2 al 20
Sub_GENERAR (Int:X)
Inicio
Para (X = 2, 20, 2) Haga
Esc X;
Fin_Para
Fin
12. Ejemplo Ciclo Para con
decremento:
Problema: Realizar un procedimiento que genere e
imprima los números del 50 al 0
X = Contador generador de los números
Sub_GENERAR (Int:X)
Inicio
Para (X = 50, 0, -1) Haga
Esc X;
Fin_Para
Fin
13. Ejecuta repetitivamente un Sintáxis:
conjunto o bloque de Variable = valor inicial;
instrucciones hasta que se REPITA
cumpla una condición Bloque de instrucciones;
determinada que puede Incremento;
verificarse al principio o la HASTA (condición ==verdadera);
final del ciclo. Se ejecuta //Fin_REPITA
mientras el valor de la Donde:
condición es falso, justo lo Variable: Se inicializa la variable
contrario al ciclo mientras. que controla el ciclo
La estructura repetir se ejecuta (contador, centinela o suiche).
al menos una vez, ya que Incremento: incrementar el
cuando la instrucción repetir contador o leer la variable
se ejecuta solo se evalúa centinela o la variable suiche.
después de ejecutar la las
instrucciones que hay en el Condición: Se evalúa que sea
bucle afirmativa.
; Se cierra el ciclo con el punto y
coma.
Ciclo Repita Hasta:
14. Ejemplo Ciclo REPITA con Contador:
Problema: Realizar un procedimiento que genere e
imprima los números de 0 al 500
X = Contador generador de los números
Sub_GENERAR (Int:X)
Inicio
X = 0; //Se inicializa el contador
REPITA
Esc X;
X = X + 1; // O se puede escribir X++;
HASTA (X == 500);
Fin
15. Ejemplo Ciclo REPITA con Centinela:
Problema: Realizar un procedimiento que lea nombre
y edad de los 20 estudiantes de un grupo.
Ed = Variable Int que será el centinela
Sub_Datos (Int:Ed; String: Nom[20])
Inicio
REPITA
Esc “Ingrese nombre”; Lea Nom;
Esc “Ingrese edad o 0 para salir”; Lea Ed; //Se lee la variable centinela
Esc Nom,” “, Ed;
HASTA (Ed == 0);
Fin
16. Ejemplo Ciclo REPITA con SW:
Problema: Realizar un procedimiento que lea e
imprima N números.
Sw = Variable suiche que controla el ciclo
Sub_Numeros (Int:Num)
Inicio
Sw = ‘s’; //Se inicializa el suiche
REPITA
Esc “Digite Número: “, Lea Num;
Esc “Desea otro número s/n: “; Lea Sw;
ConvMin (Sw); //Función para convertir Sw a minúscula
HASTA (Sw == `n`);
Fin
17. Ejercicios con ciclos controlados por
contador: 5. Se tiene el nombre y la nota de los 20
estudiantes de un grupo en el quiz de
1. Leer el nombre y la edad de 20 lógica, imprimir para cada uno si ganó o
personas y mostrarle a cada una si perdió el examen. Mostrar al final el
puede votar o no. promedio de la nota, la nota más alta y la
nota más baja.
2. Leer 20 números y mostrar de cada
6. Calcular la nota definitiva de 30
uno si es par su cuadrado, si es impar estudiantes, teniendo en cuenta que el
su cubo. Imprimir la suma de los seguimiento 60% y cada examen un 20%.
números. Mostrar para cada uno sí ganó, perdió o
3. Deducir de 100 números leídos desde habilita (nota >2.6 y nota < 3.0). Imprimir la
el teclado si son positivos, negativos o nota promedio de la asignatura, la nota más
alta y la nota más baja.
iguales a Cero (0). Mostrar al final la
suma de los positivos y la suma de los 7. Leer edad y sexo de 50 personas. Mostrar
al final cuántos son hombres y cuántos son
negativos. mujeres. Promedio de edad de hombres y
4. Leer 100 números e imprimir para promedio de edad de mujeres.
cada uno si es par o impar. Mostrar al
final el promedio de los pares y el
promedio de los impares