2. ESTRUCTURAS CÍCLICAS O REPETITIVAS
Las estructuras cíclicas o repetitivas son recursos de la programación que
permiten repetir una serie de instrucciones un número de veces,
valiéndose para ello de los los denominados Bucles o Ciclos
En la programación en muchos de los casos como recurso se
deben ejecutar tareas repetitivas, por ejemplo:
Cuando se deben introducir muchos datos uno tras otro, también
para efectuar diversos cálculos iterativos, para la clasificación
periódica o búsqueda en una gran colección de datos, entre otros.
En particular, todas estas tareas demandan ejecutar un número de
instrucciones una y otra vez en milisengundos hasta lograr obtener los
datos o información requerida.
3. Tipos de Ciclos o Bucles
Mientras Para
(While) (For)
ESTRUCTURAS
CÍCLICASO
REPETITIVAS
A la hora de utilizar un ciclo, se debe ir con cuidado y pensar cuándo debe acabar ya que; si no
tuviéramos en cuenta esto, podríamos entrar en un ciclo que no terminaría nunca y que se repetiría
millones de veces. Por esto, es de suma importancia que pensemos cómo cambia la variable
de control y conocer en qué momento, cómo, dónde y por qué debe acabar el ciclo.
Repite las instrucciones
MIENTRAS la condición
sea VERDADERA
Repite tantas veces las instrucciones
como se indique en el intervalo desde
un valor inicial hasta uno final
MIENTRAS <Condición_de_entrada>:
Instrucciones
PARA Variable_de_control =valor_inicial HASTA valor_final :
Instrucciones
Cada ciclo utiliza una variable de control que permite “vigilar” cuántas veces se repite un ciclo
4. ESTRUCTURAS
CÍCLICASO
REPETITIVAS
Antes de realizar ejercicios utilizando las estructuras repetitivas vamos a
conocer algunos elementos que son necesarios para controlar o trabajar
correctamente con estas estructuras.
Contadores y Acumuladores
Estas dos elementos se utilizan en la programación para referirse a variables que van
incrementando su valor a lo largo de la ejecución del algoritmo. Normalmente serán de tipo
numérico y no se tratan de ninguna forma en especial, solo que al asignarles un valor se hace de
forma tal que el valor anterior no se pierda, por ejemplo:
i = i + 1 (Contador)
total = total + subtotal (Acumulador de la variable subtotal)
numero = numero * 2 ( Incrementa la variable numero al doble de su valor )
Es muy importante inicializarlas de forma correcta siguiendo estas normas:
Se inicializan al principio del algoritmo para que no tengan valores residuales (nunca dentro
de un ciclo)
Si vamos a sumar o restar se inicializa en cero ( 0). Ejemplo: i=0, total=0
Si vamos a multiplicar las inicializamos en uno (1 ), porque 1 es el elemento neutro si valen cero
todo lo que multipliquemos por ella seguirá valiendo cero. Ejemplo: numero=1
5. ESTRUCTURAS
CÍCLICASO
REPETITIVAS
Contador
Un contador es una variable cuyo valor se incrementa o disminuye en una cantidad constante cada
vez que se produce un determinado suceso o acción. Los contadores se utilizan con la finalidad de
contar sucesos o acciones internas de un ciclo.
Representación:
<nombre del contador> = < nombre del contador> + <valor constante>
Si en vez de incremento es decremento se coloca un menos en lugar del más.
Ejemplo: i = i + 1 (Se incrementa de uno en uno)
Acumulador o Totalizador
Es una variable que suma sobre sí misma el valor de otra variable para de esta manera obtener la
suma de todos esos valores, Es decir va totalizando los valores que toma una variable para que no se
pierda cada vez que se le asigna un valor diferente.
Representación
<nombre acumulador> = < nombre del acumulador> + <variable a totalizar>
Ejemplo: TotalGeneral= TotalGeneral +Subtotal (aquí se suma la variable Subtotal, acumulándola
en la variable TotalGeneral)
6. CICLO PARA - (For)
Es usado cuando se conoce Previamente el número de veces que debe repetirse una instrucción o conjunto de ellas.
Es un ciclo incondicional, que abarca todos los valores de una progresión, empieza con el primer valor y termina con
un último de ellos, los valores de la progresión deben ser asignados a una variable, la cual se denomina variable de
control. La variable de control es de tipo entero.
PSEUDOCÓDIGO
ESTRUCTURAS
CÍCLICASO
REPETITIVAS
PARA Variable_de_control =valor_inicial HASTA valor_final :
Instrucciones
Fin_Para
Veamos a un ejemplo: Imagina que necesitas realizar un
algoritmo para calcular el promedio de notas de una
sección con 5 estudiantes, para ello debes pedir la nota
final de cada uno por lo que se deben repetir esas
instrucciones cinco veces, acumular las notas, para
finalmente calcular el promedio. Entonces para ello
debemos utilizar un ciclo repetitivo y como sabemos
exactamente cuantas veces se va a repetir utilizaremos el
ciclo PARA
ALGORITMO Promedio_seccion_16;
DEFINIR
i: Entero; /// Variable de control del ciclo PARA
Suma, Promedio, nota: Decimal
INICIO
Suma=0 /// Para inicializar el acumulador
PARA i=1 HASTA 5 /// el ciclo se repite 5 veces
IMPRIMIR (‘Ingresa nota estudiante’);
LEER (nota); /// Guardar nota de cada estudiante
Suma=Suma + nota /// Para ir acumulando la nota
de cada estudiante
Fin_PARA
Promedio = Suma / 5 /// cálculo del promedio de la sección
IMPRIMIR (‘El promedio de notas de la sección es: ’,
Promedio); /// Mostrar el resultado
FIN ALGORITMO
7. CICLO MIENTRAS (While)
MIENTRAS <Condición_de_Entrada>
Instrucción(es)
Fin_ mientras
La instrucción MIENTRAS... HAGA continuará repitiéndose mientras la condición siga siendo válida (es
decir, su valor sea verdadero). Es empleada cuando no se conoce exactamente el número de elementos
a procesar. La instrucción es como sigue
PSEUDOCÓDIGO
ESTRUCTURAS
CÍCLICASO
REPETITIVAS
PSEUDOCÓDIGO
El mismo ejemplo anterior pero con el ciclo MIENTRAS:
Algoritmo para calcular el promedio de notas de una
sección con 5 estudiantes, para ello se debe pedir la nota
final de cada uno por lo que se deben repetir esas
instrucciones cinco veces, pero como el ciclo mientras
necesita una condición para entrar y poder repetir las
instrucciones necesitamos una variable de control que se
vaya incrementando de manera que cuando la condición
se vuelva falsa el ciclo se detenga (Sino haríamos un ciclo
infinito), también necesitamos acumular las notas, para
finalmente calcular el promedio.
ALGORITMO Promedio_seccion_16;
DEFINIR
i: Entero; /// Variable de control del ciclo Mientras
Suma, Promedio, nota: Decimal
INICIO
i=0 /// Para inicializar el contador que servirá de control del ciclo
Suma=0 /// Para inicializar el acumulador
MIENTRAS (i < 5) /// para que se repita 5 veces
IMPRIMIR (‘Ingresa nota estudiante’);
LEER (nota); /// Guardar nota de cada estudiante
Suma=Suma + nota /// Para ir acumulando la nota
de cada estudiante
i = i + 1 /// para contar cuantas veces se ha repetido el ciclo,
cuando i valga 5 la condición se hará falsa y el ciclo terminará.
Fin_Mientras
Promedio = Suma / 5 /// cálculo del promedio de la sección
IMPRIMIR (‘El promedio de notas de la sección es: ’,
Promedio); /// Mostrar el resultado
FIN ALGORITMO