Estructuras de Control de Flujo

Para la solución de un problema complejo es conveniente descomponerlo en subproblemas más simples. Es posible demostrar que cualquier problema puede reducirse, utilizando sólo las siguientes estructuras algorítmicas: Estructura secuencial, Estructura condicional y Estructura repetitiva ( o lazo repetitivo).

Estructura Secuencial

Acción 1 -> Acción 2 -> Acción 3 -> ...

La solución del problema consiste en la solución de subproblemas parciales, en forma consecutiva. Es decir que la acción k no se inicia hasta haber terminado la acción k-1. En nuestra notación, indicaremos las acciones secuenciales separadas por ";":

Acción 1;
Acción 2;
Acción 3;
Acción 4;

Estructura Condicional




En este caso la solución del problema conduce a que, según se cumpla cierta condición o no, se ejecute una u otra de dos acciones diferentes.

Si Condición Entonces
  Acción1
Sino
  Acción2
FinSi

Estructura Repetitiva

En este caso, la solución del problema consiste en la repetición de una acción más sencilla mientras se cumpla cierta condición. Resulta evidente que para que esta sucesión de acciones termine, la acción misma debe modificar por lo menos una de las variables que intervienen en la condición. Cada vez que se ejecuta la acción la llamaremos iteración.

 

Mientras Condición Hacer
  Acción
FinMientras

Como se observa en el diagrama de bloques, la evaluación de la condición se realiza antes de ejecutar cada una de las iteraciones; es decir que si la condición no se cumple la primera vez que llegamos a este lazo, la acción no se ejecutará nunca.

Estructuras de Control No Fundamentales provistas por C

Como se dijo antes, las tres estructuras ya descriptas son suficientes para resolver cualquier problema. Se puede observar además que cada una de ellas tiene un único punto de entrada, y uno de salida. De modo que la solución de un problema complejo se puede reducir siempre al encadenamiento de bloques de este tipo. De todos modos, existen otras estructuras que facilitan la interpretación o implementación de un problema.

Estructura Repetitiva Pura

Es un caso particular de estructura repetitiva, que se ejecuta un número predeterminado de veces. En pseudocódigo lo escribiremos como:

Repetir Desde N=Ni Hasta N=Nf
  Acción
FinRepetir

Estructura Repetitiva con Condición al Final

Es similar a la estructura condicional, pero la condición se evalúa al final de haber ejecutado cada iteración. En pseudocódigo lo escribiremos como:

 

Hacer
  Acción
Mientras Condición

Como se observa en el diagrama de bloques, la principal diferencia con la estructura repetitiva es que la acción se ejecuta siempre, al menos una vez.

 

Estructura de Procesamiento por Casos

Consiste en la descomposición de una acción en varias acciones paralelas, de las cuales sólo se ejecuta una, dependiendo del valor de una variable entera, llamada distribuidor. La notación en pseudocódigo será:

Según N Hacer
  Caso 1: Acción 1
  Caso 2: Acción 2
  ...
  Caso n: Acción n
FinSegún

Evidentemente, esta estructura es un caso particular de la estructura condicional. Es decir que esta estructura puede ser obtenida a partir de un conjunto de n estructuras condicionales anidadas.


ICOM