Estructura Algorítmica Iterativa

En este artículo describiremos qué es una estructura iterativa y cuándo utilizarla. La estructura algorítmica iterativa es una estructura de control de flujo. Te recomendamos que visites este enlace si no conoces qué es el flujo y el control de flujo. A continuación, revisaremos las estructura algorítmicas iterativas con entrada y salida controlada. En los siguientes enlaces, además, presentamos la implementación de estas estructuras en los lenguajes de programación ANSI CJava y Python

Las estructuras algorítmicas iterativas, permiten que los algoritmos ejecuten un conjunto de instrucciones de forma repetitiva dependiendo de determinada condición. La condición suele estar expresada usando lógica proposicional, es decir en una proposición lógica cuyo valor es o verdad o falsedad.

Las estructuras algorítmicas iterativas las utilizamos cuando en nuestros algoritmos necesitamos repetir un conjunto de acciones para llegar a la solución. Típicamente el problema ya está definido así, de forma tal que el conjunto de acciones se repite exactamente una y otra vez. 

Según el control de flujo que se realice, la estructura iterativa puede clasificarse como:

  • Ciclo Iterativo con entrada controlada.
  • Ciclo Iterativo con salida controlada.

Ciclo Iterativo con Entrada Controlada

Las estructuras algorítmicas iterativas pueden tomar la decisión de hacer la repetición o la iteración en dos momentos. Uno de esos momentos es antes de hacer la repetición y el otro momento es después de hacer la repetición.

El ciclo iterativo con entrada controlada, es una estructura algorítmica iterativa en donde el control del flujo de repetición de instrucciones se realiza antes de ejecutar las instrucciones, en la entrada del flujo. Como el control se realiza en la entrada y la repetición depende de la condición, es posible que el conjunto de instrucciones no se ejecute. Esto se va a dar cuando la condición, de entrada, es falsa.

¿Cuándo debemos usar un ciclo iterativo con entrada controlada? De forma general podemos decir que podemos usar este ciclo iterativo cuando existe la posibilidad de que el conjunto de instrucciones nunca se ejecute. 

Representación en diagrama de flujo

A continuación mostramos la representación del ciclo iterativo con entrada controlada en diagrama de flujo. Para la presentación de los diagramas de flujo, se ha usado la herramienta PSeInt, la cual puede descargarse de forma gratuita en este enlace. Esta herramienta permite ejecutar los algoritmos lo cual es interesante pues permite verificar el diseño algorítmico.

Como podrá notar, existe un símbolo en donde se coloca una condición. La condición será una proposición lógica, es decir una expresión que o será verdad o será falso. Si la condición es verdadera, se ejecuta el conjunto de instrucciones (rama debajo de la condición, etiquetada con V). Al finalizar de ejecutar el conjunto de instrucciones, el flujo se dirige nuevamente hacia la condición, formándose un lazo, ciclo, loop, bucle o iteración. Cuando la condición es falsa, el flujo continúa hacia la siguiente instrucción (rama a la derecha de la condición, etiquetada con F).

representación en diagrama de flujo de la iterativa con entrada controlada
Representación en diagrama de flujo del Ciclo Iterativo con Entrada Controlada

Representación en pseudocódigo

A continuación mostramos la representación en pseudocódigo. Para este fin, también se ha usado la herramienta PSeInt. Una de las ventajas que ofrece esta herramienta es que permite obtener,  de forma automática, el diagrama de flujo si es que se tiene el pseudocódigo.

El ciclo iterativo con entrada controlada en pseudocódigo se representa mediante la instrucción \texttt{Mientras}. Para marcar el fin de la instrucción, se usa el comando \texttt{FinMientras}. Dentro del \texttt{Mientras}-\texttt{FinMientras}, se colocan las \texttt{instrucciones} que se deberán ejecutar de forma repetitiva mientras la \texttt{condición} sea verdadera.

representación en pseudocódigo de la iterativa con entrada controlada
Representación en pseudocódigo del Ciclo Iterativo con Entrada Controlada

Ciclo Iterativo con Salida Controlada

El ciclo iterativo con salida controlada, es una estructura algorítmica iterativa en donde el control del flujo de repetición de instrucciones se realiza después de ejecutar las instrucciones, en la salida del flujo. Como el control se realiza en la salida y la repetición depende de la condición, el conjunto de instrucciones se ejecutará por lo menos una vez, independiente si la condición al inicio es falsa.

¿Cuándo debemos usar un ciclo iterativo con salida controlada? De forma general podemos decir que podemos usar este ciclo iterativo cuando el conjunto de instrucciones se debe ejecutar por lo menos una vez.

Representación en diagrama de flujo

A continuación sigue la representación del ciclo iterativo con salida controlada en diagrama de flujo. Como podrá notar, a diferencia de la entrada controlada, el bloque de instrucciones se encuentra antes de la  condición.  

Esta estructura primero ejecutará el bloque de instrucciones y si la condición es verdadera, se repite la ejecución del bloque de instrucciones. Si la condición es falsa, ya no se realiza la repetición. 

representación en diagrama de flujo de la iterativa con salida controlada
Representación en diagrama de flujo del Ciclo Iterativo con Salida Controlada

Representación en pseudocódigo

El ciclo iterativo con salida controlada en pseudocódigo se representa mediante la instrucción \texttt{Repetir}. Para marcar el fin de la instrucción, se usa el comando \texttt{Mientras\ Que}. Dentro del \texttt{Repetir}-\texttt{Mientras\ Que}, se colocan las \texttt{instrucciones} que se deberán ejecutar de forma repetitiva mientras la \texttt{condición} sea verdadera.

representación en pseudocódigo de la iterativa con salida controlada
Representación en pseudocódigo del Ciclo Iterativo con Salida Controlada

Conclusión

En este artículo hemos presentado la estructura algorítmica iterativa. Se han descrito las diferentes formas de uso de esta estructura poniendo énfasis en las ciclos iterativos con entrada y salida controlada. Se ha presentado también su representación tanto en diagrama de flujo como pseudocódigo usando la herramienta PSeInt.

Te invitamos a que accedas a los siguientes enlaces para ver cómo se implementan estas estructuras en los lenguajes de programación ANSI CJava y Python.

Si te interesa profundizar más sobre este tema, te recomendamos el libro Foundations of Programming Languages de Kent D. D. Lee. En este libro encontrarás además información detallada sobre la programación orientada a objetos, funcional y lógica.