Estructuras Iterativas
Veremos estructuras básicas de los lenguajes de programación parte tres.
¿Qué son las estructuras iterativas?, ¿a qué llamamos variable de control de ciclos, propiamente cuáles son las estructuras interactivas y los ejemplos de las mismas.
Las estructuras iterativas también se conocen como ciclos, bucles o estructuras de repetición y son las que se utilizan para programar que una o más acciones se ejecuten repetidas veces.
Es muy importante programación ya que hay muchas actividades que deben ejecutarse más de una vez y por esto la reiteración o la repetición de las mismas.
Todas las estructuras de repetición tienen como mínimo dos partes lo que llamamos definición y cuerpo.
La definición, incluye una condición que indica cuántas veces ha de repetirse el cuerpo del ciclo y si no se conoce con anticipación el número de repeticiones, la condición indicará las circunstancias en que dicho cuerpo se repita, por ejemplo, utilizando una variable del tipo conmutador.
El cuerpo del ciclo está formado con la instrucción o el conjunto de instrucciones que incluyen la estructura de repetición y que serán ejecutadas repetidas veces.
Las variables de control de ciclo o control de interacciones son las que establecen la condición de la iteración y tener control sobre la misma.
Casi siempre es necesario utilizar una variable de este tipo ya que se trata de un contador o un conmutador.
A esta variable se la conoce como variable de control del ciclo.
Una variable de control del ciclo va a tener tres momentos: el de inicialización para que una variable sea utilizada en la definición de una estructura iterativa es necesario conocer su valor inicial.
Obviamente ya que se trata siempre de contadores o conmutadores su valor no será leído en la ejecución del programa y es necesario que el programador lo asigne antes de incluir la variable en una condición.
Si la variable no se inicializa, puede ocurrir que el ciclo nunca se ejecute o que se ejecute indefinidamente.
También tenemos el momento de la evaluación.
La evaluación de la variable puede realizarse antes o después de cada iteración.
Esto depende de la estructura utilizada, para decidir si se ejecuta una vez o más el cuerpo del ciclo o si se sale y continúa en la ejecución de las demás instrucciones.
Y por último, tenemos lo que llamamos la actualización.
Si la variable se inicializa
en un valor que permite la ejecución del ciclo es necesario que en cada iteración se actualice de manera que en algún momento de la ejecución se produzca lo que llamamos la salida del ciclo.
Si el bucle está controlado por una variable y esta no se actualiza, se genera lo que llamamos un ciclo indefinido.
Vamos a ver las estructuras iterativas.
Por ejemplo, la estructura mientras que es un conjunto de instrucciones que se repiten mientras se cumpla una determinada condición.
De igual manera que las decisiones está condición es evaluada y retorna un valor lógico que puede ser verdadero o falso.
En el caso del ciclo mientras las instrucciones contenidas en estructura de repetición se ejecutarán, solamente si al evaluar la condición se genera lo que llamamos el valor verdadero.
En caso contrario se cumple con la condición de lo que llamamos el fin del mientras.
En pseudocódigo la estructura es la siguiente: mientras haya una condición hacer instrucciones que se van a repetir, sino el mientras finaliza.
En el diagrama de flujo vemos dos versiones que tienen que ver con si la representación del mientras pasa una u otra vez la estructura iterativa o si tiene una retroalimentación.
Vemos la estructura de mientras en un ejemplo.
Por ejemplo, divisores de un número, se requiere un algoritmo para mostrar los divisores de un número en orden descendente.
Vamos a tener dos números enteros y se dice que b es el divisor de a si se cumple la condición es cuando se efectúe que el residuo vaya a ser cero.
Ahí podemos ver el pseudocódigo y podemos ver el diagrama de flujo del ejemplo.
Vamos a ver otra estructura que es el hacer mientras.
Esta estructura propone como alternativa el repita hasta que, por lo cuanto se arma un ciclo de hacer mientras, esto permite ejecutar repetidas veces una instrucción o un grupo de instrucciones con la particularidad de que se evalúa una condición y que controla y se controla el ciclo después de cada iteración.
Cuando en un programa se encuentra la palabra ser, se siguen ejecutando las líneas que están a continuación, hasta en el momento que se pueda retornar un valor lógico, por verdadero o por falso.
Vemos el pseudocódigo donde tenemos hacer con las distintas instrucciones y mientras va a tener el valor de la condición.
También lo podemos ver en el diagrama de flujo y para un ejemplo vamos a sumar enteros positivos.
Este algoritmo lo que va a hacer es leer números enteros y los suma mientras sean positivos.
Cuando se introduce un número negativo o cero el ciclo termina al final se muestra la sumatoria y termina el algoritmo.
Hay que tener en cuenta que acá la condición va a ser que los números sean positivos.
Es lo que se muestra en el pseudocódigo y lo que se muestra en el diagrama de flujo.
Vamos a ver otra estructura que es la estructura para, permite ejecutar repetidas veces una instrucción o un grupo de ellas, pero esta maneja el valor inicial, el valor de incremento o decremento y el valor final de la variable de control como parte de la definición del ciclo.
El ciclo para termina en el momento en que la variable de control o lo que llamamos contador sobrepase ese valor final, es decir que la igualdad está permitida y las instrucciones se ejecutan cuando el contador es igual a un valor determinado o un valor final.
El ciclo puede presentarse de tres maneras.
La manera más común que es cuando se produce un incremento de a uno en cada iteración y ahí estamos viendo el pseudocódigo y el diagrama de flujo.
Otro es el segundo caso que cuando el incremento es diferente de uno y en cuyo caso se va a escribir la palabra incrementar, seguida del valor a cada cuánto queremos incrementarlo.
Es lo que vemos en el pseudocódigo y en la estructura del diagrama de flujo.
Y por último, tenemos un tercer caso que el para no se incrementa de un valor inicial hasta un valor mayor sino que disminuye desde un valor inicial alto hasta un valor menor, es por decremento.
Así podemos ver otra forma de poderse llevar ese contador.
Acá vemos el pseudocódigo, el formato que deberíamos expresar el pseudocódigo y vamos a ver un ejemplo.
Vamos a ver tabla de multiplicar.
Comúnmente se conoce como tabla de multiplicar de un número a la lista de los primeros 10 múltiplos.
Acá vemos como podría ser ese pseudocódigo siempre con la estructura para y cómo sería el diagrama de flujos.
Siempre hay enteros que se ingresan, hay una lectura y se hace un análisis de cómo vamos a utilizar ese contador en el para.
Por último, estructuras iterativas anidadas estas estructuras, al igual que las selectivas se pueden anidar, es decir, se pueden colocar una dentro de la otra.
Se llama anidamiento de ciclos y se conforma por un ciclo externo y por uno más ciclos internos, donde cada vez que se repite un ciclo externo, los internos se reinician y ejecutan todas las iteraciones definidas.
Vemos un ejemplo de pseudocódigo para un reloj.
También para este reloj digital, mostramos el diagrama de flujos.
El comportamiento de este reloj digital quiere decir que va, obviamente, va a necesitar declarar tres variables horas, minutos y segundos y obviamente, dentro de sus valores de las horas y de los minutos, cómo se va a comportar.
Vemos otro ejemplo comparar mayor, menor y promedio de n números.
Este ejercicio consiste en leer n números y luego reportar el número menor, el mayor y el promedio.
Acá vemos el pseudocódigo para cada una de estas interacciones anidadas y conforman mientras se cumplan las condiciones, al final se obtendrán los resultados.