Diseño básico de programas estructurados.
La esencia del diseño mostrado a continuación está basado principalmente en las reglas para la formación de programas estructurados propuestas en [Deitel].
Al conectar de forma arbitraria o poco cuidadosa los símbolos de los diagramas de flujo, se puede incurrir en diagramas de flujo no estructurados como el de la siguiente figura:
La generación de diagramas de flujo estructurados requiere de utilizar estructuras de control con una única entrada y una única salida, de tal manera que sólo haya una forma de entrar y una de salir de la estructura de control.
Las estructuras de control descritas en las entradas Diagramas de flujo y Pseudo código cumplen con lo anterior. Se deja como ejercicio al lector el validar y verificar dicha situación; en éste sentido, observe que aunque la estructura de selección múltiple en el diagrama de flujo parece tener más de una salida, sólo una de ellas es finalmente procesada, y que independientemente de la(s) sentencia(s) que haya(n) sido seleccionada(s), su salida converge a un único punto de salida representado por el conector.
Las estructuras de control descritas en las entradas Diagramas de flujo y Pseudo código cumplen con lo anterior. Se deja como ejercicio al lector el validar y verificar dicha situación; en éste sentido, observe que aunque la estructura de selección múltiple en el diagrama de flujo parece tener más de una salida, sólo una de ellas es finalmente procesada, y que independientemente de la(s) sentencia(s) que haya(n) sido seleccionada(s), su salida converge a un único punto de salida representado por el conector.
Reglas para la formación de algoritmos estructurados.
A continuación se muestran las reglas para la construcción de algoritmos estructurados, mismas que bien podrían denominarse como “Algoritmo para la construcción de algoritmos estructurados”:
- Empiece con el diagrama de flujo más simple.
- Cualquier rectángulo (acción, sentencia, etc.) puede ser reemplazado por dos rectángulos de manera secuencial. Esta es la regla de apilamiento.
- Cualquier rectángulo puede ser reemplazado por cualquier estructura de control. Esta es la regla de anidamiento.
- Aplicar de manera sucesiva las reglas 2 y 3.
La aplicación de las reglas anteriores derivan siempre en un diagrama de flujo estructurado con una apariencia clara de bloques constructivos [Deitel].
Por otro lado, la siguiente figura muestra la aplicación de la regla de anidamiento al diagrama de flujo más simple que puede haber. Note que los bloques han sido substituidos por estructuras de selección doble y de repetición.
Por otro lado, la siguiente figura muestra la aplicación de la regla de anidamiento al diagrama de flujo más simple que puede haber. Note que los bloques han sido substituidos por estructuras de selección doble y de repetición.
Por último, es importante resaltar que la aplicación de la regla 4 genera estructuras más grandes, más complejas y con un nivel de anidamiento más intrincado. Adicionalmente, cabe mencionar también que los diagramas de flujo que resultan de aplicar las reglas descritas anteriormente, constituyen el conjunto de todos los diagramas de flujo estructurados posibles, y por lo tanto, también el conjunto de todos los posibles programas estructurados [Deitel].
Consideraciones finales.
La programación estructurada no debe confundirse con el conocimiento de un lenguaje de programación. La programación estructurada es un modelo de programación y es independiente del lenguaje que se utilice para su implementación.
El estudio y el conocimiento de técnicas, así como el desarrollo de algoritmos previos a la fase de implementación, no sólo es una buena práctica de programación, sino un principio esencial de la Ingeniería de Software.
Por todo lo anterior, si lo que se quiere es llevar a buen fin sus proyectos de programación y evitar dolores de cabeza innecesarios, debe tomar en consideración que, antes de enfrentarse en una lucha encarnizada teniendo a la computadora como su adversario y al lenguaje de programación como arma, debería, antes de escribir su primera línea de código, hacer un análisis profundo del problema a resolver, elaborar un plan de solución general, especificar gradualmente dicho plan, y realizar un conjunto de pruebas representativas.
El estudio y el conocimiento de técnicas, así como el desarrollo de algoritmos previos a la fase de implementación, no sólo es una buena práctica de programación, sino un principio esencial de la Ingeniería de Software.
Por todo lo anterior, si lo que se quiere es llevar a buen fin sus proyectos de programación y evitar dolores de cabeza innecesarios, debe tomar en consideración que, antes de enfrentarse en una lucha encarnizada teniendo a la computadora como su adversario y al lenguaje de programación como arma, debería, antes de escribir su primera línea de código, hacer un análisis profundo del problema a resolver, elaborar un plan de solución general, especificar gradualmente dicho plan, y realizar un conjunto de pruebas representativas.