You are on page 1of 20

Estructuras

Repe,,vas
Se solicita al operador que ingrese tres nmeros enteros cualesquiera.
En base a estos nmeros, mostrar por pantalla cual es el mayor de todos.
Diag. De Flujos Pseudocdigo Matlab
Inicio
variable10 v1=0;
variable20 v2=0;
Imprimir Ingrese tres nmeros enteros disp(Ingrese tres nmeros enteros);
Desde 1 a 3
Leer variable1 for i=[1..3]
si (variable1>variable 2) entonces v1=input(ingrese un entero );
variable2variable1 if (v1 > v2)
Fin si v2=v1;
Fin Desde end
imprimir El mayor valor ingresado es End
imprimir variable2 disp(El mayor valor es);
Fin disp(v2);





Estructuras Repe,,vas
La estructura repeNNva se uNliza cuando se
quiere que un conjunto de instrucciones se
ejecuten un cierto nmero nito de veces.
Llamamos bucle o ciclo al proceso que se
repite.
Estructuras Repe,,vas
Existen dos Npos de estructuras repeNNvas:
Aquella en donde se Nene perfectamente
establecido el nmero de veces que un grupo
de acciones se van a ejecutar .
Aquella en la que el nmero de repeNciones
es desconocido y se har hasta que se cumpla
o no cierta condicin.
Estructuras Repe,,vas
Desde o Para
Cuando conocemos de antemano el nmero
de veces en que se desea ejecutar una accin
o grupo de acciones.
Esta estructura ejecuta las acciones del cuerpo
del bucle un nmero especicado de veces.
Controla en modo automNco el valor de una
variable que cuenta la canNdad de ciclos
ejecutados.
Estructuras Repe,,vas
Desde o Para - SINTAXIS
para variable Vi hasta Vf [incremento] hacer
accin o acciones
n-desde

variable: variable ndice
Vi: valor inicial de la variable indice
Vf: valor nal de la variable indice
[incremento]: el nmero que se
incrementa (o decrementa) a la
variable indice en cada iteracin del
bucle, si se omite es 1.

Estructuras Repe,,vas
Desde o Para - EJEMPLO
Imprimir todos los nmeros del 1 al 100.

Inicio
para I 1 hasta 100 for l=1:100,
imprimir I disp(l);
n-desde end
n

1) I es la variable ndice con un valor inicial de 1, se incrementa uno en cada paso hasta 100.
2) La estructura desde comienza con un valor inicial de la variable indice y las acciones se
ejecutan hasta que su valor sea MAYOR que el que el Valor nal.
3) La variable indice se incremente en uno y si este nuevo valor del indice no es mayor que
el valor nal, se ejecuta de nuevo la accin imprimir.
En este caso se visualizar los nmeros 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ....97, 98, 99, 100
Estructuras Repe,,vas
Desde o Para - EJEMPLO
Imprimir todos los nmeros pares desde 2 hasta 300.

Inicio
desde I 2 hasta 300 incremento 2 for l=2:2:300,
imprimir I disp(l);
n-desde end
n

1) La variable indice comienza en 2, se imprime 2 y en el siguiente paso se incrementa en 2


2) l pasa a valer 4; se imprime el 4 y como 4 es menor que 300 (valor nal) , se pasa a una
nueva iteracin incrementando nuevamente l en 2, que ahora vale 6; y as
sucesivamente...
3) Aqu se visualiza: 2, 4, 6, 8, 10, 12, 14, 16, 18, ..... 296, 298, 300

Estructuras Repe,,vas
Desde o Para - EJEMPLO
Imprimir todos los nmeros IMPARES desde 1 hasta 300.

Inicio
para I 1 hasta 300 incremento 2 for l=1:2:300,
imprimir I disp(l);
n-desde end
n
1) Vemos los valores: 1, 3, 5, 7, 9, 11, 13, .... , 299
2) El ciclo termina mostrando 299 puesto que en el siguiente paso, la variable I valdra 301 y
es mayor al lmite establecido de 300.
3) I pasa a valer realmente 301 en el lNmo paso, solo que la instruccin de imprimir no se
ejecuta.
4) Si diramos la instruccin de imprimir el valor de I, inmediatamente despus del n-
desde, veramos 301.
Estructuras Repe,,vas
Desde o Para - EJEMPLO
Imprimir los valores comprendidos entre el 460 y 500 en orden inverso.

Inicio
para I 500 hasta 460 incremento -1 for l=500:-1:460,
imprimir I disp(l);
n-desde end
n

Como salida tenemos, entonces:


500, 499, 498, 497, 496, 495, 494, .... 464, 463, 462, 461, 460.
Ciclos con Numero Indeterminado de Iteraciones

Se diferencia de la PARA/DESDE en que no se


conoce el nmero de repeNciones o iteraciones
en que se va a ejecutar una instruccin o un
bloque de instrucciones.
Estas estructuras son bsicamente dos:
mientras....n-mientras
repeNr.... hasta.
Estas dos se diferencian en que la vericacin de
la condicin para repeNr el ciclo se hace al inicio
con mientras y al nal con repeNr.

HACER-MIENTRAS
El cuerpo del bucle se cumple mientras se cumple una determinada
condicin. Por esta razn se los denomina BUCLES CONDICIONALES.

mientras {condicin}
accin 1
accin 2
accin 3 while condicin,
..... comando;
accin n
n mientras end
instruccin X
HACER-MIENTRAS
Lo primero que el computador hace es examinar la condicin, lo que
puede dar como resultado dos posibilidades:

La condicin se cumple: Se ejecutan accin 1, accin 2, accin 3, ...,
accin n.
Las estar repiNendo hasta que la condicin no se cumpla,
entonces se sale del ciclo y se siguen ejecutando la o las
instrucciones que vienen a conNnuacin y estn fuera del bucle;
instruccin X.

La condicin no se cumple: No entrar en el ciclo. Se ejecutan las
instrucciones que vienen despus del bucle, instruccin X, por
ejemplo.

De esto se deduce que el cuerpo del bucle de una estructura
mientras puede repePrse cero o ms veces.
HACER-MIENTRAS
(EJEMPLO)
leer contrasea
mientras contrasea < > "josua"
Pseudocdigo

imprimir "La contrasea es incorrecta !


leer contrasea
n-mientras
imprimir "Ha ingresado la contrasea correcta

contrasea=input(Ingrese su contrasea );
while(contrasea <> josua),
Matlab

disp(contrasea incorrecta);
contrasea=input(Ingrese su contrasea );
End
disp(Ha ingresado la contrasea correcta);
REPETIR-HASTA
La estructura repeNr cumple la misma funcin
que la estructura mientras. La diferencia est
en que la estructura mientras comprueba la
condicin al inicio y repeNr lo hace al nal; por
eso la estructura repeNr se ejecuta por lo
menos una vez.
REPETIR-HASTA
SINTAXIS
repeEr
intruccin 1
instruccin 2
instruccin 3
......
hasta {condicin} Lo que la computadora hace al ejecutar la estructura repeNr es:
1) Se ejecutan: instruccin 1, instruccin 2, instruccin 3, ......

instrucin X 2) Se evala la condicin.


Si esta es FALSA se vuelve a repeNr el ciclo y se
ejecutan instruccin 1, instruccin 2, instruccin 3, .



Si la condicin es VERDADERA se sale del ciclo y se
ejecuta instruccin X.
Comparacin
mientras - repeNr

MIENTRAS REPETIR

Comprobacin de la condicin al
Comprobacin de la condicin al inicio,
final, despus de haber ingresado
antes de entrar al bucle
una vez al bucle

Las instrucciones del cuerpo del bucle se Las instrucciones del cuerpo del
ejecutan en forma repetitiva si la bucle se ejecutan si la condicin es
condicin es verdadera falsa

Las acciones del bucle se pueden Las acciones del bucle se ejecutan
ejecutar 0 o ms veces por lo menos una vez
PROBLEMAS DE ESTRUCTURAS
CCLICAS
Calcular el promedio de un alumno que Nene 7 calicaciones en una materia.

HACER PARA HACER MIENTRAS REPETIR HASTA


Inicio Inicio Inicio
Sum0 Sum0 Sum0
para c desde 1 hasta 7 hacer c1 c1
Leer calif Mientras (c<=7) hacer RepeNr
Sum sum + calif Leer calif Leer calif
Fin-para Sum sum + calif Sum sum + calif
prom sum /7 c c+1 c c+1
Imprimir prom Fin-mientras Hasta (c>7)
Fin. prom sum /7 prom sum /7
Imprimir prom Imprimir prom
Fin. Fin.


PROBLEMAS DE ESTRUCTURAS
CCLICAS
Leer 10 nmeros y obtener su cubo y su cuarta potencia

HACER PARA HACER MIENTRAS REPETIR HASTA


Inicio Inicio Inicio
para n desde 1 hasta 10 hacer c1 c1
Leer num Mientras (c<=10) hacer RepeNr
cubo num * num * num Leer num Leer num
cuarta cubo * num cubo num * num * num cubo num * num * num
Imprimir cubo, cuarta cuarta cubo * num cuarta cubo * num
Fin-para Imprimir cubo, cuarta Imprimir cubo, cuarta
Fin. c c+1 c c+1
Fin-mientras Hasta (c>10)
Fin. Fin.



PROBLEMAS DE ESTRUCTURAS
CCLICAS
Calcular la suma y el promedio de nmeros ingresados . La canNdad de nmeros a ingresar es
desconocida al momento de ejecutar el algoritmo y todos los nmeros a ingresar se encuentran
en el entorno [0,100]. La carga naliza cuando se ingresa un nmero fuera de rango.
HACER MIENTRAS
HACER PARA Inicio REPETIR HASTA
No puede resolverse con esta Sum0 No puede resolverse con
estructura NO se conoce el Cuenta0 esta estructura ya que si el
nmero de iteraciones. Leer Num primer nmero ingresado
Mientras Num>=0 y se encuentra fuera de
Num<=100 hacer rango igual ejecutara el
SumSum+Num bucle, ya que en el RepeNr-
Leer Num hasta al menos una vez se
Cuenta Cuenta+1 ejecuta el bucle.
Fin-mientras
Si Cuenta>0 entonces
Prom sum/cuenta
Imprimir Sum, Prom
Fin-Si
Fin.
CUANDO EMPLEAR CADA
ESTRUCTURA REPETITIVA?

You might also like