Estructuras de control

Por lo regular, en un programa los enunciados son ejecutados uno después del otro, en el orden en que aparecen escritos. Esto se conoce como ejecución secuencial. Varios enunciados de C, que pronto analizaremos, le permiten al programador especificar que el enunciado siguiente a ejecutar pueda ser otro diferente del que sigue en secuencia. Esto se conoce como transferencia de control.

Durante los años 60, se hizo claro que el uso indiscriminado de transferencias de control era la causa de gran cantidad de dificultades experimentadas por los grupos de desarrollo de software. El problema era causada por el enunciado goto, que le permite al programador especificar una transferencia de control a uno de una amplia gama de destinos posibles, dentro de un programa. Lo que se conoce como programación estructurada se convirtió prácticamente en sinónimo de "eliminación  de goto”.

Las investigaciones de Bohm y de Jacopini hablan demostrado que los programas podían ser escritos sin ningún enunciado goto. Para los programadores el reto se convirtió en modificar sus estilos a "programación sin goto". Y no fue sino hasta entrados los años 70 que la profesión de la programación en general empezó a tomar en serio la programación estructurada. Los resultados han sido impresionantes, ya que los grupos de desarrollo de software han informado reducciones en tiempos de desarrollo, entrega a tiempo más frecuente de sistemas y terminación dentro del presupuesto del software. La clave de estos éxitos es simplemente que los programas producidos con las técnicas estructuradas, son más claros, más fáciles de depurar y de modificar, y tal vez más libres de fallas desde el primer momento.

El trabajo de Bohm y Jacopini demostró que todos los programas podrían ser escritos en términos de sólo tres estructuras de control

  1. La estructura de secuencia
  2. La estructura de selección 
  3. La estructura de repetición
En C la estructura de secuencia está interconstruida. A menos de que se indique lo contrarío, la computadora ejecutará automáticamente enunciados C, uno después de otro, en el orden en el cual se han escrito. El segmento de diagrama de flujo de la siguiente figura ilustra la estructura de secuencias de C.




¿Qué es un diagrama de flujo?

Un diagrama de flujo es una representación gráfica de un algoritmo o de una porción de un algoritmo. Los diagramas de flujo se trazan utilizando ciertos símbolos de uso especial como son rectángulos, diamantes, óvalos y pequeños círculos; estos símbolos están conectados entre si por flechas, conocidas como líneas de flujo.

Al igual que el seudocódigo los diagramas de flujo son útiles para el desarrollo y la representación de algoritmos, aunque la mayor parte de los programadores prefieren el seudocódigo. Los diagramas de flujo muestran con claridad cómo operan las estructuras de control.

En el segmento de diagrama de flujo correspondiente a la estructura de secuencia de la figura anterior, utilizamos un símbolo rectángulo, también conocido como símbolo de acción, para indicar cualquier tipo de acción, incluyendo un cálculo o una operación de entrada/salida. Las líneas de flujo de la figura indican el orden en el cual las acciones se ejecutarán primero, nota deberá ser sumado a total y a continuación 1 deberá ser sumado a contador. C nos permite tener todas las acciones que deseemos en una estructura de secuencia.

Al trazar un diagrama de flujo que represente un algoritmo completo, el primer símbolo utilizado en el diagrama es un símbolo oval que contiene la palabra "Inicio"; y el último símbolo utilizado también es un símbolo oval que contiene la palabra "Fin". Al dibujar sólo una porción de un algoritmo, como en el caso de la figura anterior, se omiten los símbolos ovales, y en su lugar se utilizan símbolos de pequeños círculos, que también se conocen como símbolos de conexión.

Quizás el símbolo de diagrama de flujo más importante es el símbolo diamante, también conocido como símbolo de decisión, mismo que indica donde se debe tomar una decisión. 

C proporciona tres tipos de estructuras de selección.
  1. La estructura de selección if. ya sea ejecute (elige) una acción, si una condición es verdadera, o pasa por alto la acción, si la condición es falsa. 
  2. La estructura de selección if / else ejecuta una acción, si la condición es verdadera, o ejecuta una acción diferente, si la condición es falsa. 
  3. La estructura de selección switch ejecuta una de entre muchas acciones diferentes, dependiendo del valor de una expresión.

La estructura if se llama estructura de una sola selección, porque selecciona o ignora una acción. 

La estructura if / else se conoce como estructura de doble selección, porque selecciona entre dos acciones distintas. 

La estructura switch se conoce como una estructura de selección múltiple, porque selecciona entre muchas acciones diferentes.

C proporciona tres tipos de estructuras de repetición, es decir while, así como do/while y for.

C tiene sólo siete estructuras de control; de secuencia, tres tipos de selección y tres de repetición. Cada programa de C se forma al combinar tantos de cada tipo de estructura de control como sean apropiados, en relación con el algoritmo que resuelve el programa. Como en el caso de la estructura de secuencia de la figura anterior, veremos que cada estructura de control contiene dos símbolos de círculo pequeños, uno en el punto de entrada a la estructura de control y uno en el punto de salida. Estas estructuras de control de una sola entrada/una sola salida facilitan la construcción de programas. Las estructuras de control pueden ser agregadas unas a otras, conectando el punto de salida de una estructura de control con el punto de entrada de la siguiente. Esto es muy parecido a la forma en que los niños apilan bloques de construcción, por lo que llamamos lo anterior apilamiento de estructuras de Control. Veremos que sólo hay otra forma en que las estructuras de control puedan quedar conectadas —un método conocido como anidar estructuras de control. Por lo tanto, cualquiera que sea el programa C que tengamos que construir en el futuro, podrá ser elaborado partiendo de sólo siete tipos diferentes de estructuras de control, combinadas de dos distintas formas.

No hay comentarios:

Publicar un comentario