Las estructuras de control repetitivas son aquellas en las que una sentencia o grupos de sentencias se repiten muchas veces. Este conjunto de sentencias se denomina bucle...
Guía Teórica N°3
Estructuras de Control Repetitivas
Alumna:
Melissa Silva
ESTRUCTURAS REPETITIVAS O CÍCLICAS
Elementos básicos:
- Bucle: es un segmento de un algoritmo o programa, cuyas instrucciones se repiten un número determinado de veces mientras se cumple una determinada condición (existe o es verdadera la condición). Se debe establecer un mecanismo para determinar las tareas repetitivas. Este mecanismo es una condición que puede ser verdadera o falsa y que se comprueba una vez a cada paso o iteración del bucle (total de instrucciones que se repiten en el bucle).
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.
- Cuerpo del bucle: son las instrucciones que se
ejecutaran repetidamente, un numero determinado de veces, cuando la
decisión es verdadera.
- Salida del bucle: es la condición que indica
cuando terminan las iteraciones.
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, los bucles suelen
Utilizar 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.
- Contador: es una variable cuyo valor se incrementa o decrementa en una cantidad constante en cada iteración.
- Acumulador: (o totalizador) es una variable cuya misión es almacenar cantidades variables resultantes de sumas sucesivas. Realiza la misma función que un contador, con la diferencia de que el incremento o decremento de cada suma es variable en lugar de constante, como en el caso del contador.
- Decisión o selección: una instrucción de decisión o selección evalúa una condición y, en función del resultado de esa condición, se bifurcará a un determinado punto.
- Interruptores o Conmutador (Switch) – a veces se le denomina indicador, bandera (flag) – es una variable que puede tomar diversos valores a lo largo de la ejecución del programa y que permite comunicar información de una parte a otra del mismo. Los interruptores pueden tomar dos valores diferentes 1 y 0.
- Valor
Centinela: es aquel que es totalmente distinto de
todos los valores posibles de la lista que se está leyendo y de este modo sirve
para indicar el final de la lista.
Los valores centinelas se utilizan para controlar la repetición cuando el número de repeticiones (iteraciones) no se conoce por adelantado y el bucle contiene sentencias que obtienen datos cada vez que se ejecuta. Un valor centinela se introduce después de que se han proporcionado todos los datos válidos al programa y debe ser distinto de los datos válidos.Estructuras Repetitivas:Las estructuras repetitivas, que también reciben el nombre de bucle (loop, en inglés) controlan un conjunto de instrucciones que deben repetirse cierto número de veces, mientras se cumple una condición que ha de ser claramente especificada. La condición podría ser verdadera o falsa, y se comprobará en cada paso o iteración del bucle.Se clasifican en:Ü Estructura Para o Desde (for)Ü Estructura Mientras (while)Ü Estructura Hacer - mientras (do – while)Estructura REPETIR DESDEEn los casos en los que el numero de iteraciones es fijo o se conoce, se debe usar la estructura Repetir desde.
La estructura <<Repetir desde>> ejecuta las acciones del cuerpo del bucle un numero especificado de veces y de modo automático controla el nº de iteraciones o pasos a través del cuerpo del bucle.
La estructura "desde", tiene una pequeña peculiaridad, y es que ella solita incrementa (o decrementa) DE UNO EN UNO a la variable que utilicemos como contador.
Su estructura es:
Repetir desde Contador =Inicio hasta Contador =Fin [, decrementar,] hacer
accion 1........accion Nfin_paraLa palabra "decrementar" entre corchetes significa que es opcional, es decir, que se puede poner o no. Si NO se pone, por defecto se asume que al terminar las acciones del bucle, se hará Contador=Contador+1Si ponemos "decrementar", al terminar las acciones del bucle se hará
Contador = Contador 1. Cuidado con esto, pues si no especificamos "decrementar",
Es Incorrecto escribir:Repetir desde Contador =500 hasta Contador=200Así como, si escribimos "decrementar", es igualmente Incorrecto poner:Repetir desde Contador=1 hasta Contador=1257 , decrementar,No se admite otro tipo de incrementos/decrementos (de 2 en 2, de 0.5 en 0.5 o de -10 en -10), para ello ya tenemos las estructuras "mientras" y "repetir...mientras", en las que nosotros elegíamos el incremento/decremento.Ejemplo.Dado un numero entero N calcular la suma de todos los números entre 1 y N.InicioEscribir(“Cuantos números van a introducir”)leer(n)sumaß 0repetir desde i = 1 hasta nsuma ß suma + ifin_repetirdesdefinEstructura REPETIR MIENTRASEs aquella en que el cuerpo del bucle se repite mientras se cumple una determinada condición.Cuando se ejecuta la instrucción mientras, la primera cosa que sucede es que se evalúa la condición (expresión booleana). Si se evalúa falsa, ninguna acción se toma y el programa prosigue en la siguiente instrucción del bucle. Si la expresión booleana es verdadera, entonces se ejecuta el cuerpo del bucle, después de lo cual se evalúa de nuevo la expresión booleana. Este proceso se repite una y otra vez mientras la expresión booleana (condición ) sea verdaderaEn este tipo de estructura, el cuerpo del bucle se repite MIENTRAS se cumple una determinada condición, que especificamos entre paréntesis.Su estructura, genéricamente, es esta:Repetir mientras(condición) haceracción 1........acción Nfin_mientrasEjemplo.Dado un numero entero N calcular la suma de todos los números entre 1 y N.InicioEscribir (“introduzca un número entero: “)leer(n)i ß 1suma ß 0repetir mientras (i <= n)sumaß suma + i;i ß i + 1;fin_mientrasfinEstructura Repetir... Hasta (condición)El bucle se ejecuta al menos una vez antes de comprobar la condición de repetición.La estructura se ejecuta hasta que se cumpla una condición determinada que se comprueba al final del bucle.El bucle repetir... hasta se repite hasta que el valor de la expresión booleana de la condición sea verdadera.Aquí, lo que se desea es que un bucle se ejecute AL MENOS UNA VEZ antes de comprobar la condición de repetición.La estructura del Repetir... hasta, genéricamente, es esta:
Repetiracción 1........acción NHasta (condición)
Ejemplo.Dado un numero entero N calcular la suma de todos los números entre 1 y N.InicioEscribir (“introduzca un número entero: “)leer(n)i ß 1suma ß 0repetirsumaß suma + i;i ß i + 1;hasta (i > n)finEjemplo de otras formas de sumar elementos hasta que el usuario lo indique:Algoritmo sumarEnterosVariablesEntero: n, sumaCarácter: respIniciosumaß 0Escribir(“Existen mas números en la lista S/N :”)Leer(resp)Repetir Mientras ((resp=’S’) o (resp=’s’)) hacerEscribir(“numero”)Leer(n)sumaß suma + nEscribir(“Existen mas números en la lista S/N :”)Leer(resp)Fin_repetirmientrasEscribir (“La suma de los números introducidos es: “, suma)FinEjercicios Repetitivos Compuestos Propuestos.1. Leer una lista de 10 valores enteros. Calcular e informar:a) La suma de los valores positivos.b) El producto de los valores negativos.(Ignorar los valores nulos)2. Ingresar 5 juegos de cuatro valores cada uno. Calcular y emitir el promedio de cada juego.3. Ingresar N juegos de cuatro valores cada uno. Calcular y emitir el promedio de cada juego. El proceso finaliza al encontrarse un juego cuyo primer valor es 0.4. Ingresar dos números enteros positivos y calcular el producto de los mismos por sumas sucesivas.5. Leer una lista de números positivos que finaliza en 0 y emitir el valor mínimo de la lista.6. Leer una lista de números enteros que finaliza en 0 y emitir el valor máximo de la lista.7. Ídem 5, emitiendo además la ubicación del máximo dentro de la lista. (Suponer un único máximo).8. Leer 4 juegos de N valores enteros cada uno, donde N se informa al comienzo de cada juego, y emitir el valor máximo de cada grupo. (Suponer un único máximo).9. Dada una lista de valores numéricos positivos, finalizada en 0, indicar si esta ordenada en forma ascendente.10. Una empresa nos informa para cada uno de sus 20 vendedores:código de vendedor : 3 dígitosimporte de ventas del mes : realSe desea emitir el importe máximo de ventas del mes y cuántos vendedores alcanzaron dicho importe.11. Una persona debe realizar un muestreo con 50 personas para determinar el promedio de peso de los niños, jóvenes, adultos y viejos que existen en su zona habitacional. Se determinan las categorías con base en la sig, tabla:CATEGORIA EDADNiños 0 - 12Jóvenes 13 - 29Adultos 30 - 59Viejos 60 en adelante12. Al cerrar un expendio de naranjas, 15 clientes que aun no han pagado recibirán un 15% de descuento si compran mas de 10 kilos. Determinar cuanto pagara cada cliente y cuanto percibirá la tienda por esas compras.
- Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad específica de veces. Esta cantidad puede ser fija previamente determinada por el programador) o puede ser variable (estar en función de algún dato dentro del programa).
Este comentario ha sido eliminado por el autor.
ResponderEliminarHola Melissa! Muy buen post, me sirvió muchísimo. Me pasarías el ejercicio propuesto 4? Por que lo he intentado de muchas maneras y no me sale. Saludos !
ResponderEliminar