Estructuras de Control Repetitivas





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  DESDE
    En 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 N
     fin_para


    La 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+1
    Si 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=200 

    Así 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.

    Inicio
         Escribir(“Cuantos números van a introducir”)
    leer(n)
    sumaß 0
    repetir desde  i = 1 hasta n
    suma ß suma + i
    fin_repetirdesde
    fin

    Estructura REPETIR MIENTRAS

    Es 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 verdadera
    En 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) hacer
             acción 1
             ........
             acción N
     fin_mientras

    Ejemplo.

    Dado un numero entero N calcular la suma de todos los números entre 1 y N.

    Inicio
         Escribir (“introduzca un número entero: “)
    leer(n)
    i ß 1
    suma ß 0
    repetir mientras (i <= n)
    sumaß suma + i;
    i ß i + 1;
    fin_mientras
    fin

    Estructura 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:



    Repetir
             acción 1
             ........
             acción N
     Hasta (condición)

    Notar que no hace falta poner "fin del repetir", puesto que está claro que se acaba donde pone "hasta (condición)".
     Ejemplo.

    Dado un numero entero N calcular la suma de todos los números entre 1 y N.

    Inicio
         Escribir (“introduzca un número entero: “)
    leer(n)
    i ß 1
    suma ß 0
    repetir
    sumaß suma + i;
    i ß i + 1;
    hasta (i > n)
    fin


    Ejemplo de otras formas de sumar elementos hasta que el usuario lo indique:

    Algoritmo sumarEnteros
    Variables
            Entero: n, suma
            Carácter: resp
    Inicio
            sumaß 0
            Escribir(“Existen mas números en la lista S/N :”)
            Leer(resp)
            Repetir Mientras ((resp=’S’) o (resp=’s’)) hacer
                     Escribir(“numero”)
                     Leer(n)
                     sumaß suma + n
                     Escribir(“Existen mas números en la lista S/N :”)
                     Leer(resp)
            Fin_repetirmientras
            Escribir (“La suma de los números introducidos es: “, suma)
    Fin

    Ejercicios 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ígitos
    importe de ventas del mes : real
    Se 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                         EDAD
                            Niños                                      0 - 12
                            Jóvenes                                 13 - 29
                            Adultos                                   30 - 59
                            Viejos                                     60 en adelante

    12.   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).

Entradas que pueden interesarte

2 comentarios

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Hola 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

Post Instagram

Amante de Libros

¡Descubre Una Amante de Libros! Un espacio creado para todos los amantes de la lectura, donde podrás sumergirte en un mundo de historias fascinantes. En este blog, encontrarás una selección especialmente elegida de libros en PDF para descargar gratis. Me enfoque en cuatro emocionantes categorías: Contemporáneos, Románticos, Suspenso y Terror, pero también podrás explorar otros géneros que seguro te encantarán. ¡Visítanos y encuentra tu próxima lectura favorita! click here →