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.
