¿Qué es una
Programación Estructurada?
Es un estilo con el cual el
programador busca elaborar programas sencillos y fáciles de entender. Para
ello, la programación estructurada hace uso de tres estructuras básicas de
control, Éstas son:
La programación estructurada se basa
un teorema fundamental, el cual afirma que cualquier programa, no importa el
tipo de trabajo que ejecute, puede ser elaborado utilizando únicamente las tres
estructuras básicas (secuencia, selección, iteración).
Estructuras básicas de
control
En
programación, una estructura de control permite controlar el flujo de la
ejecución de instrucciones. Con estas estructuras, el programador puede
determinar el orden en que se ejecutarán las instrucciones que están dentro de
estas estructuras.
*Estructura Secuencial:
que una o varias acciones se realiza solo tras haberse realizado la anterior
*Estructura Selectiva:
dada una condición se realiza una o varias acciones
*Estructura Repetitiva
(ó Iterativa): una o varias acciones se realizan mientras se cumpla una condición
dada
Originalmente
las líneas de código de programación (instrucciones) eran ejecutadas
secuencialmente, o sea, una después de la otra. Para alterar el orden de
ejecución se utilizaba el enunciado goto, llamado "transferencia de
control". Dos investigadores, Bohm y Jacopini, demostraron que el goto
traía grandes problemas en el desarrollo de programas. También demostraron que
los programas podían ser escritos sin ningún enunciado goto utilizando tres
estructuras de control: estructura de secuencia, estructura de selección y
estructura de repetición.
Programación Modular:
INSERCIÓN
DE UN MÓDULO EN UN PROGRAMA.
Para poder insertar un módulo en un programa o
algoritmo hemos de declarar su existencia y contenido. Para ello escribiremos:
Módulo
[Nombre del módulo]
Instrucción
1;
Instrucción
2;
.
.
.
Instrucción
n;
FinMódulo.
DECLARACIÓN.
Para
nombrar a un módulo se seguirán las mismas pautas que con las variables. Se
buscará que los nombres sean interpretables y claros. Se evitará que sean
similares entre sí o con las variables que existan en el programa.
La
numeración de las líneas del módulo es independiente de la del algoritmo
principal, pudiendo repetirse si se quiere. Se entiende que el módulo se
encuentra dentro del programa pero no se ejecuta hasta que es llamado desde el
algoritmo principal de acuerdo con esta estructura.
INSTRUCCIÓN
LLAMAR.
Hemos
dicho que un módulo no se ejecuta hasta que es llamado a ejecutarse desde el
algoritmo principal. Para ello utilizaremos la instrucción Llamar de acuerdo
con esta sintaxis:
Llamar [Nombre del
Módulo]
Cuando
se llama a un módulo la ejecución del algoritmo principal se detiene y el flujo
se desvía al módulo. Una vez se llega al fin del módulo, la ejecución en el
algoritmo principal continúa por la sentencia inmediatamente posterior a la
instrucción Llamar. Un módulo puede ser llamado cuantas veces se quiera. Es
posible llamar a un módulo desde otro módulo: el efecto es el mismo al
comentado anteriormente. La ejecución del módulo en curso se detiene
prosiguiendo el flujo por el módulo que ha sido llamado. Una vez se termina de
procesar el módulo llamado, se continúa en la instrucción inmediatamente
posterior a la de llamada.
RECURSIÓN
Si
en un programa llamamos en distintos puntos a un módulo, éste realiza una serie
de procesos sin necesidad de repetir el código. Nos supondrá por tanto, un
ahorro considerable.
La
llamada a un módulo desde sí mismo también es posible, dando lugar a un
anidamiento o módulo recursivo. Como en el caso de los bucles, la repetición
normalmente irá sujeta a la evaluación de una condición que evoluciona a medida
que se producen recursiones hasta dar lugar a una salida, que va devolviendo el
control al punto desde el cual se autollamó el módulo. El sistema equivale a la
generación sucesiva de copias del módulo. Las autollamadas se deben evitar
siempre que sea posible, pues dificultan el seguimiento del flujo de los
programas y es habitual que si no se controlan bien den lugar a situaciones de
bloqueo o bucles infinitos. No haremos un desarrollo teórico de la recursión
aunque quien lo desee puede dirigirse a otros contenidos de
aprenderaprogramar.com donde se aborda el uso de la recursión.
Veamos
un ejemplo de aproximación al concepto de módulo:
1.
Inicio [PROGRAMA Comunicado]
2. Mostrar “Comunicado de la empresa”
3. Llamar Saludo
4. Llamar Comunicado
5. Llamar Despedida
6.
Fin
Módulo Saludo
1. Mostrar “Con motivo de la
celebración el próximo día 5 del Día Mundial del Medioambiente la empresa saluda a todos los empleados y les agradece el compromiso con el cuidado de ka naturaleza"
FinMódulo
Módulo Comunicado
1. Mostrar "Con motivo de dicha
conmemoración está previsto realizar un acto de plantaciones de arboles en los jardines del
edificio central el próximo día 5 a
las 12 del mediodía al que estan todo invitados”
FinMódulo
Módulo Despedida
1. Mostrar “La empresa agradece
su participación y les invita a sumarse al programa <<Empleados por una
ciudad sostenible>>.
Atentamente, El Director General”
FinMódulo
:
La ejecución es controlada por el algoritmo principal. Si existiera un módulo
que no es llamado desde el algoritmo principal (ni a través de un módulo sí
llamado) no se ejecutaría nunca.
Los
módulos pueden situarse antes o después del algoritmo principal y seguir el
orden de llamada o no. En este caso se han ordenado los módulos con Saludo ®
Comunicado ® Despedida buscando un orden lógico.
La
ordenación de módulos y algoritmo principal debe obedecer a la intención de
facilitar la lectura y compresión del programa, al igual que los nombres que se
usen. La representación gráfica de un módulo en el diagrama de flujo la haremos
con el símbolo:
Si
existen llamadas a módulos en un diagrama de flujo, habrá de existir, a continuación
del diagrama del algoritmo principal, otros diagramas explicativos de cada
módulo (un diagrama por módulo). La representación será:
Obsérvese
que un módulo es tal por cuanto se identifica así y se subordina al algoritmo
principal, pero su estructura es la de un programa y se le podría hacer
funcionar como tal.
El
algoritmo principal puede llamarse a sí mismo o ser llamado desde otro módulo.
Para ello escribiremos:
Llamar Inicio
Llamar
Inicio constituye en cualquier caso una autollamada debiendo tenerse en cuenta
lo ya comentado al respecto. La representación gráfica del ejemplo anterior
sería la siguiente:
Aunque
este ejemplo por su sencillez no da demasiado juego, sí podemos intuir que
supone una potente herramienta de cara a conseguir una mejor organización de
los programas largos y complejos y facilitar su comprensión. Procesos muy
complejos pueden quedar resumidos en el nombre de un módulo.
Aquí les dejo el enlace de un PDF muy completo de programación estructurada:
https://docs.google.com/viewer?a=v&q=cache:snKmQhP1CpMJ:informatica.uv.es/iiguia/AED/oldwww/2004_05/AED.Tema.04.pdf+programacion+estructurada&hl=es&gl=ve&pid=bl&srcid=ADGEEShUB6BxOxdCmB4ArzQ3SCKYEl1fxjKYjMABhKALnorzzBfIWzH98SAaBtfSzA7b1IndiwIuWpQKRb4cIHcNlylWakJn9kXo76RAYa1ljb2wvgS1La-26uytITSguWy_UWrFyDJW&sig=AHIEtbQYnTon1qSLpCIFdO8MvsEnlQHXZQ
No hay comentarios:
Publicar un comentario