Estructuras Repetitivas
Estructuras Repetitivas
Estructuras Repetitivas
ASIGNATURA:
TALLER DE ALGORITMICA Y PROGRAMACION
CUSCO PERU
2017
ESTRUCTURAS DE CONTROL REPETITIVOS
1. Bucles o Ciclos
Un bucle, lazo, ciclo o loop (en ingls) es un segmento de algoritmo o programa (una
secuencia de instrucciones) que se repiten un determinado nmero de veces mientras se
cumple una determinada condicin, en otras palabras, un bucle o ciclo es un conjunto de
instrucciones que se repiten mientras una condicin es verdadera o existe.
Para que un bucle no se repita indefinidamente debe tener una condicin de parada o de fin.
Esta condicin de parada o de fin se verifica cada vez que se hace una iteracin. El ciclo o
loop llega a su fin cuando la condicin de parada se hace verdadera.
Al igual que las estructuras de seleccin simple o compuesta (los bloques si entonces
sino fsi), en un algoritmo pueden utilizarse varios ciclos. Estos ciclos pueden ser
independientes (una a continuacin de otro) o anidados (ciclos dentro de ciclos).
Para representar los bucles o lazos utilizaremos en el curso las estructuras de control Para,
Repetir y Mientras.
Por ejemplo, podemos usar para ir sumando los precios de varios vehculos y luego calcular
el precio promedio general (con una variable acumulador de tipo real), para calcular la
potencia o el factorial de un nmero a travs de multiplicaciones sucesivas (un acumulador
de tipo entero o real) o para ir agregando a una cadena de caracteres, letras o slabas que
construirn un mensaje (una variable acumulador del tipo string)
Es una estructura iterativa que es controlada por una variable (llamada tambin variable
ndice), la cual se incrementa o decrementa hasta llegar a un valor lmite o valor final que
representa la condicin de parada.
La estructura Para comienzan con un valor inicial de la variable ndice, las acciones
especificadas para el ciclo se ejecutan un nmero determinado de veces, a menos, que el
valor inicial de la variable ndice sea mayor que el valor lmite que se quiere alcanzar.
Para
variable_ndice = valor1 hasta En este ciclo la variable_ndice se
valor2 en inc/dec inicializa con valor1.
hacer El ciclo continuar hasta que
la variable_ndice sobrepase a valor2.
<inst 1>
inc es la unidad en que se
incrementa o decrementa
<inst
la variable_ndice (generalmente
n>
el incremente es en 1)
FinPara;
Ejecuta un bloque de instrucciones varias veces hasta que se cumple la condicin que es
verificada al final del bucle.
Las instrucciones dentro del ciclo Repetir se van a realizar mientras la condicin de parada
evaluada al final sea falsa. Dicho de otro modo, el ciclo se va a detener cuando la condicin
de parada se haga verdadera.
Repetir
<actualizacin
variable(s) usada(s) en la cond. parada>;
Hasta
<expresin_condicin_de_parada>;
Es una estructura iterativa que permite verificar la condicin de entrada al ciclo antes del
cuerpo de instrucciones a repetir.
Mientras, puede ocurrir que las instrucciones del ciclo no se realicen ni siquiera 1 vez, a
diferencia del Repetir, donde el bloque de instrucciones se realiza al menos 1 vez porque la
condicin de parada se verifica al final. Las instrucciones del Mientras se pueden realizar 0
o ms veces antes de que se cumpla la condicin de terminar el ciclo.
Mientras
<expresin_condicin_de_entrada>
hacer
<instruccin 1>;
<actualizacin
variable(s) usada(s) en la cond. entrada>;
FinMientras;
IMPORTANTE
Observa que para el Repetir tambin para el Mientras debes incluir en el cuerpo de
instrucciones una accin donde se actualice la o las variables que usas en la condicin de
parada. Por el contrario, en el Para no es necesario incluir esta instruccin ya que en el
encabezado de la instruccin (Para i==1 hasta X en 1hacer ) ya se incluye el incremento.
1. Si la condicin de parada del ciclo depende de que hayas repetido 30 veces el ciclo:
No necesitas una instruccin dentro del Para que incremente el valor de la variable i, ya que
la instruccin en 1 del encabezado del Para se encarga de incrementar y actualizar esta
variable ndice.
2. Si la condicin de parada depende de que hayas repetido 30 veces el ciclo o de que leas
la palabra detener:
No deberas usar un Para, porque no necesariamente vas a repetir el ciclo 30 veces.
Si el usuario te suministra en alguna repeticin del ciclo la palabra detener saldras del
ciclo aunque no lo hayas repetido 30 veces.
Adems en la sintaxis del Para NO PUEDES verificar que la palabra leda sea la detener
En el Para NO PUEDES COLOCAR algo como Para i = 1 ( hasta 30 o palabra
=detener) en 1 hacer
Usas un bloque Repetir o un bloque Mientras que s te permiten verificar en una expresin
las condiciones de que se haya repetido 30 veces el ciclo o que la palabra suministrada sea
detener
Cuando uses un Mientras o un Repetir, debes incluir instrucciones dentro del ciclo que
actualicen las variables de la condicin de parada, para este ejemplo, debera tener una
instruccin que aumente el valor de i ( i = i + 1) y otra que te permita leer un nuevo valor
para la variable palabra ( Escribir(desea detenerse?) Leer(palabra) ).
AlgoritmoPrincipal AlgoritmoPrincipal
// verifica si se // verifica si se
suministra una a antes de 30 suministra una a antes
intentos
// de 30 intentos
Entero cont;
Entero cont; Carcter
Caracter letra;
letra;
cont = 1;
cont = 0; // inicializo en 0 el
// solicitamos y leemos la primera
contador de letras
letra
Escribir(suministre la letra
Repetir inicial); Leer(letra);
Escribir(suministre // verificar la condicin a la entrada del
un valor para la letra); mientras Mientras letra a y cont 30 hac
er
Leer(letra);
Escribir(estamos en la
cont = cont + 1;
iteracin + cont);
Escribir(estamos en la
Escribir(suministre nuevo valor para
iteracin + cont);
letra);
Hasta letra == a o cont == 3
Leer(letra);
0;
cont == cont + 1;
Si letra == a Entonces
FMientras;
Escribir(encontr la letra
a en la iteracin + cont); Si letra == a Entonces
Sino Escribir(encontr la A en
la iteracin + cont);
Escribir(repet 30 veces
el ciclo y no le una A); Sino
FinAlgoritmoPrincipal //
fin de las instrucciones
AlgoritmoPrincipal
EJEMPLOS
1. Se desea sumar 35 nmeros (pueden ser enteros o reales) suministrados por teclado y
calcular su promedio
Algoritmo Principal
// instrucciones para
SumaryPromediar
FPara;
promedio = suma / ( j 1);
FinAlgoritmo Principal;
// secuencia de letras
Algoritmo Principal
Repetir
// actualizo la variable de la Escribir(Suministre la nota del alumno);
condicin de parada
Leer(nota);
Escribir (suministre prxima
Hasta nota >= 0 y
letra); Leer(letra);
nota <= 20;
FMientras;
promedio
Escribir(La cantidad de vocales A =
es: + cantA); (promedio + nota);
Escribir(Desea
suministrar otra nota?
FinAlgoritmo Principal;
Indique Si No);
Leer(continuar);
FinAlgoritmo Principal;
BIBILIOGRAFIA: