EstructurasRepe,,vas · EstructurasRepe,,vas!...
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/1.jpg)
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/2.jpg)
• 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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/3.jpg)
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/4.jpg)
• 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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/5.jpg)
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/6.jpg)
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/7.jpg)
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/8.jpg)
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/9.jpg)
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/10.jpg)
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/11.jpg)
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/12.jpg)
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/13.jpg)
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/14.jpg)
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/15.jpg)
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/16.jpg)
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/17.jpg)
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/18.jpg)
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/19.jpg)
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.](https://reader033.fdocumento.com/reader033/viewer/2022060415/5f13100b4e09fb79c304c7e0/html5/thumbnails/20.jpg)
¿CUANDO EMPLEAR CADA ESTRUCTURA REPETITIVA?