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