Está en la página 1de 20

Estructuras

 Repe,,vas  
Se  solicita  al  operador  que  ingrese  tres  números  enteros  cualesquiera.  
En  base  a  estos  números,  mostrar  por  pantalla  cual  es  el  mayor  de  todos.  
Diag.  De  Flujos                                                Pseudocódigo      Matlab  
Inicio    
   variable1ß0   v1=0;  
   variable2ß0   v2=0;  
   Imprimir  “Ingrese  tres  números  enteros  “   disp(‘Ingrese  tres  números  enteros’);  
   Desde  1  a  3    
         Leer  variable1   for  i=[1..3]  
         si  (variable1>variable  2)  entonces        v1=input(‘ingrese  un  entero  ‘);  
             variable2ßvariable1          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  número  finito  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  número  de  veces  que  un  grupo  
de  acciones  se  van  a  ejecutar  .  
•  Aquella  en  la  que  el  número  de  repeNciones  
es  desconocido  y  se  hará  hasta  que  se  cumpla  
o  no  cierta  condición.    
Estructuras  Repe,,vas  
 “Desde  o  Para”  
•  Cuando  conocemos  de  antemano  el  número  
de  veces  en  que  se  desea  ejecutar  una  acción  
o  grupo  de  acciones.  
•  Esta  estructura  ejecuta  las  acciones  del  cuerpo  
del  bucle  un  número  especificado  de  veces.  
•   Controla  en  modo  automáNco  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  
 acción  o  acciones  
fin-­‐desde  
 
 variable:  variable  índice  
Vi:  valor  inicial  de  la  variable  indice  
Vf:  valor  final  de  la  variable  indice  
[incremento]:  el  número  que  se  
incrementa  (o    decrementa)  a  la  
variable  indice  en  cada  iteración  del  
 bucle,  si  se  omite  es  1.  
 
Estructuras  Repe,,vas  
 “Desde  o  Para”  -­‐  EJEMPLO  
Imprimir  todos  los  números  del  1  al  100.  

Inicio      
               para  I  ß  1  hasta  100    for  l=1:100,  
                               imprimir  I      disp(l);  
               fin-­‐desde    end  
fin    

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  final.  
3)  La  variable  indice  se  incremente  en  uno  y  si  este  nuevo  valor  del  indice  no  es  mayor  que  
el  valor  final,  se  ejecuta  de  nuevo  la  acción  imprimir.  
En  este  caso  se  visualizará  los  números  1,  2,  3,  4,  5,  6,  7,  8,  9,  10  ....97,  98,  99,  100  
Estructuras  Repe,,vas  
 “Desde  o  Para”  -­‐  EJEMPLO  
Imprimir  todos  los  números    pares  desde  2  hasta  300.  

Inicio      
               desde  I  ß  2  hasta  300  incremento  2    for  l=2:2:300,  
                               imprimir  I      disp(l);  
               fin-­‐desde    end  
fin    

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  final)  ,  se  pasa  a  una  
nueva  iteración  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  números    IMPARES  desde  1  hasta  300.  

Inicio      
               para  I  ß  1  hasta  300  incremento  2    for  l=1:2:300,  
                               imprimir  I      disp(l);  
               fin-­‐desde    end  
fin    
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  valdría  301  y  
es  mayor  al  límite  establecido  de  300.    
3)  I  pasa  a  valer  realmente  301  en  el  úlNmo  paso,  solo  que  la  instrucción  de  imprimir  no  se  
ejecuta.  
4)  Si  diéramos  la  instrucción  de  imprimir  el  valor  de  I,  inmediatamente  después  del  fin-­‐
desde,  veríamos  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);  
               fin-­‐desde    end  
fin    

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  número  de  repeNciones  o  iteraciones  
en  que  se  va  a  ejecutar  una  instrucción  o  un  
bloque  de  instrucciones.  
•  Estas  estructuras  son  básicamente  dos:    
–  mientras....fin-­‐mientras    
–  repeNr....  hasta.    
•  Estas  dos  se  diferencian  en  que  la  verificación  de  
la  condición  para  repeNr  el  ciclo  se  hace  al  inicio  
con  mientras  y  al  final  con  repeNr.  
 
HACER-­‐MIENTRAS  
El  cuerpo  del  bucle  se  cumple  mientras  se  cumple  una  determinada  
condición.  Por  esta  razón  se  los  denomina  BUCLES  CONDICIONALES.  
 
mientras  {condición}  
 acción  1  
acción  2  
acción  3   while  condición,  
.....        comando;  
acción  n          …  
fin  mientras   end  
instrucción  X  
HACER-­‐MIENTRAS  
Lo  primero  que  el  computador  hace  es  examinar  la  condición,  lo  que  
puede  dar  como  resultado  dos  posibilidades:  
 
•  La  condición  se  cumple:  Se  ejecutan  acción  1,  acción  2,  acción  3,  ...,  
acción  n.  
Las  estará  repiNendo  hasta  que  la  condición  no  se  cumpla,  
entonces  se  sale  del  ciclo  y  se  siguen  ejecutando  la  o  las  
instrucciones  que  vienen  a  conNnuación  y  están  fuera  del  bucle;  
instrucción  X.  
 
•  La  condición  no  se  cumple:  No  entrará  en  el  ciclo.  Se  ejecutan  las  
instrucciones  que  vienen  después  del  bucle,  instrucción  X,  por  
ejemplo.  
 
De  esto  se  deduce  que  el  cuerpo  del  bucle  de  una  estructura  
mientras  puede  repePrse  cero  o  más  veces.  
HACER-­‐MIENTRAS  
(EJEMPLO)  
leer  contraseña  
mientras  contraseña  <  >  "josua"    
Pseudocódigo  

 imprimir  "La  contraseña  es  incorrecta  !“  


 leer  contraseña  
fin-­‐mientras  
imprimir  "Ha  ingresado  la  contraseña  correcta“  
 
contraseña=input(‘Ingrese  su  contraseña  ’);  
while(contraseña  <>  ‘josua’),  
Matlab  

 disp(‘contraseña  incorrecta’);  
 contraseña=input(‘Ingrese  su  contraseña  ’);  
End  
disp(‘Ha  ingresado  la  contraseña  correcta’);  
REPETIR-­‐HASTA  
La  estructura  repeNr  cumple  la  misma  función  
que  la  estructura  mientras.  La  diferencia  está  
en  que  la  estructura  mientras  comprueba  la  
condición  al  inicio  y  repeNr  lo  hace  al  final;  por  
eso  la  estructura  repeNr  se  ejecuta  por  lo  
menos  una  vez.  
REPETIR-­‐HASTA  
SINTAXIS  
repeEr    
 intrucción  1  
instrucción  2  
instrucción  3  
......  
hasta  {condición}   Lo  que  la  computadora  hace  al  ejecutar  la  estructura  repeNr  es:  
1)  Se  ejecutan:  instrucción  1,  instrucción  2,  instrucción  3,  ......  

instrución  X   2)  Se  evalúa  la  condición.    


•  Si  esta  es  FALSA  se  vuelve  a  repeNr  el  ciclo  y  se  
ejecutan  instrucción  1,  instrucción  2,  instrucción  3,  .  

 
 
•  Si  la  condición  es  VERDADERA  se  sale  del  ciclo  y  se  
ejecuta  instrucción  X.  
Comparación  
mientras  -­‐  repeNr  

MIENTRAS REPETIR

Comprobación de la condición al
Comprobación de la condición al inicio,
final, después 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 condición es
condición es verdadera falsa

Las acciones del bucle se pueden Las acciones del bucle se ejecutan
ejecutar 0 o más veces por lo menos una vez
PROBLEMAS  DE  ESTRUCTURAS  
CÍCLICAS  
Calcular  el  promedio  de  un  alumno  que  Nene  7  calificaciones  en  una  materia.  

HACER  PARA   HACER  MIENTRAS   REPETIR  HASTA  


Inicio   Inicio   Inicio  
   Sumß0      Sumß0      Sumß0  
   para  c  desde  1  hasta  7  hacer      cß1      cß1  
       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  
CÍCLICAS  
Leer  10  números  y  obtener  su  cubo  y  su  cuarta  potencia  

HACER  PARA   HACER  MIENTRAS   REPETIR  HASTA  


Inicio   Inicio   Inicio  
   para  n  desde  1  hasta  10  hacer      cß1      cß1  
       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  
CÍCLICAS  
Calcular  la  suma  y  el  promedio  de  números  ingresados  .  La  canNdad  de  números  a  ingresar  es  
desconocida  al  momento  de  ejecutar  el  algoritmo  y  todos  los  números  a  ingresar  se  encuentran  
en  el  entorno  [0,100].  La  carga  finaliza  cuando  se  ingresa  un  número  fuera  de  rango.  
HACER  MIENTRAS  
HACER  PARA   Inicio   REPETIR  HASTA  
No  puede  resolverse  con  esta      Sumß0   No   puede   resolverse   con  
estructura   NO   se   conoce   el      Cuentaß0   esta   estructura   ya   que   si   el  
número  de  iteraciones.      Leer  Num   primer   número   ingresado  
   Mientras  Num>=0  y   se   encuentra   fuera   de  
                                     Num<=100  hacer   rango   igual   ejecutaría   el  
       SumßSum+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?  

También podría gustarte