18. Algoritmos || Estructuras repetitivas


Estructura mientras


La estructura repetitiva mientras-hacer siempre repite (itera) una serie de sentencias según el valor de su condición, si es verdadera, entonces procede a ejecutar las acciones, en caso de ser falsa, no hace nada.

Luego de la primera ejecución se vuelve a evaluar la condición y se realiza el mismo procedimiento hasta que la condición sea falsa. La sintaxis de la estructura mientras-hacer es la siguiente:





mientras (condición) hacer
// Sentencias...
FinMientras

Diagrama de flujo




Diagrama Nassi-Shneiderman




Esta estructura siempre evalúa primero la condición para proceder a ejecutar las sentencias en caso de que sea cierta. Ejemplo:

Hacer un algoritmo que escriba los números del 1 al 100. ¿Cómo podríamos resolver el algoritmo? Una forma podría ser:

Escribir 1;
Escribir 2;
Escribir 3;
Escribir 4;
.
.
.
Escribir 100;

Pero vaya que de esta manera sería algo totalmente ineficiente, estaríamos utilizando cien líneas de código, además deben tomar en cuenta el tiempo que les tomará si lo hacen así. Se pueden fijar que siempre se está repitiendo una acción, la de Escribir. Vamos a escribir un número reiteradamente cien veces, para eso hacemos uso de las estructuras repetitivas y nos ahorramos mucho tiempo, además que damos más eficiencia al programa. Un algoritmo de este ejemplo quedaría mejor de la siguiente manera:

proceso Numeros_1_al_100 
definir n como numerico; 
n <- 1; 

mientras (n <= 100) hacer 
escribir n; 
n <- n + 1; 
finmientras 

finproceso 

Nota que sólo hay una acción de Escribir a diferencia de la forma anterior que había cien. En este algoritmo se inicia la variable n igual a 1, luego usamos un ciclo mientras, este evalúa la condición

(n <= 100)

¿Esto es cierto? Por supuesto, recuerda que n es igual a 1 así que 1 <= 100 es cierto. Luego de comprobar que la condición es verdadera, entra en el cuerpo del bucle y ejecuta todas su acciones, en este caso

Escribir n;

Así que escribe 1 en pantalla, porque n = 1. Luego pasa a la segunda sentencia

n <- n + 1;

Así que se le suma 1 a la variable n, ahora vale 2, termina el ciclo pero aún no acaba. Como es una estructura mientras, luego de terminar el ciclo regresa a evaluar la condición

(n <= 100)

Ahora n vale 2 y la condición sigue siendo verdadera, entonces vuelve a hacer el mismo proceso, va a escribir n en pantalla, pero n = 2 así que ya no escribirá 1, sino 2. La variable n volverá a aumentar en 1, terminará el ciclo y este volverá a evaluar la condición, ya n = 3 así que

(n <= 100)

Seguirá siendo cierta, y el ciclo empieza de nuevo y ocurre lo mismo, sólo que ya no saldrá en pantalla 1 o 2, sino 3.

¿Cuándo termina el ciclo?


Cuando n sea mayor que 100. En el momento en que n sea igual a 101, ahí va a terminar el ciclo, se va a evaluar la condición

(n <= 100)

Y como no será verdad, no hará nada.

No hay comentarios