EstructurasRepe,,vas · EstructurasRepe,,vas!...

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. Inicio variable10 variable20 Imprimir “Ingrese tres números enteros Desde 1 a 3 Leer variable1 si (variable1>variable 2) entonces variable2variable1 Fin si Fin Desde imprimir “El mayor valor ingresado es ” imprimir variable2 Fin v1=0; v2=0; disp(‘Ingrese tres números enteros’); for i=[1..3] v1=input(‘ingrese un entero ‘); if (v1 > v2) v2=v1; end End disp(‘El mayor valor es’); disp(v2); Diag. De Flujos Pseudocódigo Matlab

Transcript of EstructurasRepe,,vas · EstructurasRepe,,vas!...

Page 1: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

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.  

Inicio      variable1ß0      variable2ß0      Imprimir  “Ingrese  tres  números  enteros  “      Desde  1  a  3            Leer  variable1            si  (variable1>variable  2)  entonces                variable2ßvariable1              Fin  si      Fin  Desde        imprimir  “El  mayor  valor  ingresado  es  ”      imprimir  variable2  Fin                                        

 v1=0;  v2=0;  disp(‘Ingrese  tres  números  enteros’);    for  i=[1..3]        v1=input(‘ingrese  un  entero  ‘);        if  (v1  >  v2)                v2=v1;        end  End  disp(‘El  mayor  valor  es’);  disp(v2);  

Diag.  De  Flujos                                                Pseudocódigo      Matlab  

Page 2: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

•  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  

Page 3: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

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  

Page 4: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

•  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”  

Page 5: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

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”  -­‐  SINTAXIS  

Page 6: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

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  

Inicio                    para  I  ß  1  hasta  100                                  imprimir  I                  fin-­‐desde  fin    

   for  l=1:100,      disp(l);    end  

Estructuras  Repe,,vas    “Desde  o  Para”  -­‐  EJEMPLO  

Imprimir  todos  los  números  del  1  al  100.  

Page 7: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

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    

Inicio                    desde  I  ß  2  hasta  300  incremento  2                                  imprimir  I                  fin-­‐desde  fin    

   for  l=2:2:300,      disp(l);    end  

Estructuras  Repe,,vas    “Desde  o  Para”  -­‐  EJEMPLO  

Imprimir  todos  los  números    pares  desde  2  hasta  300.  

Page 8: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

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.    

Inicio                    para  I  ß  1  hasta  300  incremento  2                                  imprimir  I                  fin-­‐desde  fin    

   for  l=1:2:300,      disp(l);    end  

Estructuras  Repe,,vas    “Desde  o  Para”  -­‐  EJEMPLO  

Imprimir  todos  los  números    IMPARES  desde  1  hasta  300.  

Page 9: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

Inicio                    para  I  ß  500  hasta  460  incremento  -­‐1                                  imprimir  I                  fin-­‐desde  fin    

   for  l=500:-­‐1:460,      disp(l);    end  

Estructuras  Repe,,vas    “Desde  o  Para”  -­‐  EJEMPLO  

Imprimir  los  valores  comprendidos  entre  el  460  y  500  en  orden  inverso.  

Como  salida  tenemos,  entonces:          500,  499,  498,  497,  496,  495,  494,  ....  464,  463,  462,  461,  460.  

Page 10: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

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.    

Page 11: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

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  .....  acción  n    

fin  mientras  instrucción  X  

while  condición,        comando;        …  end  

Page 12: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

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  

Page 13: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

leer  contraseña  mientras  contraseña  <  >  "josua"      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’),    disp(‘contraseña  incorrecta’);    contraseña=input(‘Ingrese  su  contraseña  ’);  

End  disp(‘Ha  ingresado  la  contraseña  correcta’);  

HACER-­‐MIENTRAS  (EJEMPLO)  Pseu

docódigo  

Matlab  

Page 14: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

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.  

Page 15: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

repeEr      intrucción  1  instrucción  2  instrucción  3  ......  

hasta  {condición}  instrución  X              

REPETIR-­‐HASTA  SINTAXIS  

Lo  que  la  computadora  hace  al  ejecutar  la  estructura  repeNr  es:  1)  Se  ejecutan:  instrucción  1,  instrucción  2,  instrucción  3,  ......  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.  

Page 16: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

Comparación  mientras  -­‐  repeNr  

MIENTRAS REPETIR

Comprobación de la condición al inicio, antes de entrar al bucle

Comprobación de la condición al final, después de haber ingresado

una vez al bucle

Las instrucciones del cuerpo del bucle se ejecutan en forma repetitiva si la

condición es verdadera

Las instrucciones del cuerpo del bucle se ejecutan si la condición es

falsa

Las acciones del bucle se pueden ejecutar 0 o más veces

Las acciones del bucle se ejecutan por lo menos una vez

Page 17: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

PROBLEMAS  DE  ESTRUCTURAS  CÍCLICAS  

HACER  PARA  Inicio      Sumß0      para  c  desde  1  hasta  7  hacer          Leer  calif          Sum  ß  sum  +  calif      Fin-­‐para      prom  ß  sum  /7      Imprimir  prom  Fin.          

HACER  MIENTRAS  Inicio      Sumß0      cß1      Mientras  (c<=7)  hacer            Leer  calif            Sum  ß  sum  +  calif            cß  c+1      Fin-­‐mientras      prom  ß  sum  /7      Imprimir  prom  Fin.      

REPETIR  HASTA  Inicio      Sumß0      cß1      RepeNr          Leer  calif          Sum  ß  sum  +  calif          cß  c+1      Hasta  (c>7)      prom  ß  sum  /7      Imprimir  prom  Fin.  

Calcular  el  promedio  de  un  alumno  que  Nene  7  calificaciones  en  una  materia.  

Page 18: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

PROBLEMAS  DE  ESTRUCTURAS  CÍCLICAS  

HACER  PARA  Inicio      para  n  desde  1  hasta  10  hacer          Leer  num          cubo  ß  num  *  num  *  num          cuarta  ß  cubo  *  num          Imprimir  cubo,  cuarta      Fin-­‐para  Fin.            

HACER  MIENTRAS  Inicio      cß1      Mientras  (c<=10)  hacer          Leer  num          cubo  ß  num  *  num  *  num          cuarta  ß  cubo  *  num          Imprimir  cubo,  cuarta          cß  c+1        Fin-­‐mientras  Fin.        

REPETIR  HASTA  Inicio      cß1      RepeNr          Leer  num          cubo  ß  num  *  num  *  num          cuarta  ß  cubo  *  num          Imprimir  cubo,  cuarta          cß  c+1      Hasta  (c>10)  Fin.  

Leer  10  números  y  obtener  su  cubo  y  su  cuarta  potencia  

Page 19: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

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  PARA  No  puede  resolverse  con  esta  estructura   NO   se   conoce   el  número  de  iteraciones.  

REPETIR  HASTA  No   puede   resolverse   con  esta  estructura  ya  que  si  el  primer   número   ingresado  se   encuentra   fuera   de  rango   igual   ejecutaría   el  bucle,  ya  que  en  el  RepeNr-­‐hasta   al   menos   una   vez   se  ejecuta  el  bucle.  

HACER  MIENTRAS  Inicio      Sumß0      Cuentaß0      Leer  Num      Mientras  Num>=0  y                                        Num<=100  hacer          SumßSum+Num          Leer  Num          Cuentaß  Cuenta+1      Fin-­‐mientras      Si  Cuenta>0  entonces          Promß  sum/cuenta          Imprimir  Sum,  Prom      Fin-­‐Si  Fin.  

Page 20: EstructurasRepe,,vas · EstructurasRepe,,vas! Se!solicitaal!operador!que!ingrese!tres!números!enteros!cualesquiera. ! En!base!aestos!números,!mostrar!por!pantallacual!es!el!mayor!de!todos.

¿CUANDO  EMPLEAR  CADA  ESTRUCTURA  REPETITIVA?