You are on page 1of 5

ESTRUCTURAS REPETITIVAS parte1

Más sobre estructuras repetitivas


Hemos dicho que este tipo de estructuras marcan como orden de ejecución la reiteración de una serie de
acciones basándose en un bucle.

Un BUCLE (loop, en inglés) es un trozo de algoritmo cuyas instrucciones son repetidas un cierto número de
veces, mientras se cumple una cierta condición que ha de ser claramente especificada. La condición podrá ser
verdadera o falsa, y se comprobará en cada paso o iteración del bucle.

Básicamente, existen tres tipos de estructuras repetitivas; los bucles "mientras..." (o "while"), los bucles
"repetir... mientras que" (o "do... while") y los bucles "desde" (o "bucles for"). Vamos a verlas todas dentro
de un ejemplo para clarificar los dos párrafos iniciales, que quedan tan bonitos como oscuros para quien nunca
ha visto un bucle (ni es verde ni tiene antenas, lo siento %-D ).

Sólo un poco de teoría más antes de pasar a los ejemplos para cada una de las estructuras repetitivas; hay que
hacer notar que todo bucle consta de tres partes básicas, a saber:
Decisión: donde se evalúa la condición y, en caso de ser cierta, se ejecuta el...
Cuerpo del bucle: son las instrucciones que queremos ejecutar repetidamente un cierto número de veces.
Salida del bucle: es la condición que dice cuándo saldremos de hacer repeticiones ("mientras protestes,
seguirás fregando platos", en cuanto dejas de protestar, se acabó fregar más platos).

Una forma de controlar un bucle es mediante una variable llamada CONTADOR, cuyo valor se incrementa o
decrementa en una cantidad constante en cada repetición que se produzca.

También, en los bucles suele haber otro tipo de variables llamadas ACUMULADOR, cuya misión es
almacenar una cantidad variable resultante de operaciones sucesivas y repetidas. Es como un contador, con la
diferencia que el incremento/decremento es variable.

Es sobre contadores, acumuladores donde incrementamos la cantidad de ejercicios. Pero además incluimos otro
tema el cual es el de los switches (interruptores) he aquí el concepto:

Un Siwtch permite que un bucle que permanezca dando vueltas o iterando hasta que el
swtich cambia de estado veamos el caso siguiente:
Hacer un programa que lea números y los acumule hasta que se ingrese cero. Mostrar cuanto acumulo (es decir
la suma de todos ellos)
Inicio
Switch = 1
Acumulador = 0
Mientras Switch = 1 hacer
Leer Numero
Si Numero = 0 entonces
Swtich = 0
Si no
acumulador = acumulador + Numero
Fin_si
Fin_mientras
Escribir “La suma de todos ellos es :”, acumulador
Fin

Observe que:
1.- El numero de vueltas no se conoce
2.- En cada vuelta acumulador acumula lo que tiene la variable numero
3.- el ejemplo puede quedar de la siguiente forma tambien:

Inicio
numero = 1
Acumulador = 0
Mientras numero <> 0 hacer
Leer numero
acumulador = acumulador + Numero
Fin_si
Fin_mientras
Escribir “La suma de todos ellos es :”, acumulador
Fin

En este caso la variable numero hace de switch y las vueltas son controladas por la variable numero cuando se
tenga que numero vale cero dejará de dar vueltas.

Ejercicios resueltos:
Ejercicio 1)
Hacer un programa que lea los resultados de los partidos de un equipo de futbol ante sus adversarios y
diga cuanto puntaje acumuló, cuantos goles a favor tiene y cuantos goles en contra tiene:

Inicio
Switch = 1
Golesfavor = 0
Golescontra = 0
Puntos = 0
PartidosJugados = 0
Mientras Switch = 1 hacer
Escribe “Desea Registrar un partido (digite 1 para si o 0 para no)”
Leer Switch
Si Switch = 1 entonces
Escribir “Introduce el resultado del partido:”
Leer Golesmiequipo,Golesdeladversario
Si Golesmiequipo = Golesdeladversario entonces
Escribe “Empate”
Puntos = Puntos + 1
Fin_Si
Si Golesmiequipo > Golesdeladversario entonces
Escribe “Ganamos”
Puntos = Puntos + 3

Fin_Si
Si Golesmiequipo < Golesdeladversario entonces
Escribe “Perdimos”
Fin_Si
Golesfavor = Golesfavor + Golesmiequipo
Golescontra = Golescontra + Golesdeladversario
PartidosJugados = PartidosJugados + 1
Fin_si
Fin_Mientras
Escribe Puntos,Golesfavor,GolesContra
Fin

Recomiendo:
Haga un seguimiento de este ejercicio con variables y valores

Ejercicio 2 )
Hacer un algoritmo que realice las 50 primeras potencias de 5.

Inicio
desde n=1 hasta 50 hacer
Escribe 5^n
fin_desde
Fin

Ejercicio 3 )
Realizar un algoritmo que obtenga la suma de los números pares hasta 100.

Inicio
suma = 0
numero = 2
mientras numero <= 100 hacer
suma = suma + numero
numero = numero + 2
fin_mientras
Fin

Ejercicio 4)
Hacer una tabla del multiplicador en forma creciente.
Inicio
Leer n
x=1
mientras x <= 12 hacer
R=n*x
Escribe n, x, R
x=x+1
fin_mientras
Fin

Ejercicio 5)
Hacer un programa que calcule el factorial de un número.

Inicio
Leer n
i=1
X=1
mientras X = 1 hacer
X=i*X
i=i+1
fin_mientras
Escribir X
Fin

Ejercicio 6)
Hacer un programa que calcule la suma y el producto de los
números pares comprendidos entre 20 y 400 ambos inclusive.

Inicio
S=0
P=1
X = 20
mientras X <= 400 hacer
S=S+X
P=P*X
X=X+1
fin_mientras
Escribir S, P
Fin

Ejercicios propuestos:

1.- Hacer un programa que de vueltas y en cada vuelta realice las potencias de 5.
En cada vuelta se pide al operador SI DESEA CONTINUAR (1 o 0) si el operador ingresa un cero ya no
continuará dando vuleltas.

2.- Hacer un programa que lea 100 números y se desea saber cual fue el numero mayor.
3.- Hacer un programa que lea 500 números y se desea saber cual fue el numero menor.
4.- Hacer un programa que lea 200 números y se desea saber en cuanto difiere el mayor del mayor.
5.- Hacer un programa que registre las totales de creditos por alumno y el numero de cursos por alumno que
llevan cada alumno de la universidad, se desea saber cual es el promedio de creditos que suelen llevar los
alumnos en la universidad, y se desea saber el promedio de cursos que suelen llevar los alumnos de la
universidad.
6.- En el ejercicio anterior diga en cuales numeros de matricula se registraron alumnos con un solo curso.(use
un contador matricula = matricula + 1).
7.- En el ejercicio anterior diga en cuales numeros de matricula se registraron alumnos con mas de un curso.
(use un contador matricula = matricula + 1).
8.- Realice los ejercicios con desde, mientras y repetir
9.- Revise los ejercicios de la página http://enriquebarrueto1.tripod.com/norevisados.htm
y construya un programa que me diga cuantos ejercicios de estructuras repetitivas hay en esta página (usar
contador).