Está en la página 1de 6

DOCUMENTO DE APOYO

Código: F08-0019-006/ 02-10 Versión: 1


Proceso: Ejecución de la Formación
Modelo de Mejora
Procedimiento: Gestión de Proyectos Formativos Continua

ESTRUCTURAS CONDICIONALES

1 INTRODUCCION
En la actualidad, dado el tamaño considerable de las memorias centrales y las altas velocidades
de los procesadores, el estilo de escritura de los programas se vuelve una de las características
más sobresalientes en las técnicas de programación. La legibilidad de los algoritmos y
posteriormente de los programas exige que su diseño sea fácil de comprender y su flujo lógico
fácil de seguir.

La programación modular enseñará la descomposición de un programa en módulos más simples


de programar, y la programación estructurada permitirá la escritura de programas fáciles de leer
y modificar. En un programa estructurado el flujo lógico se gobierna por las estructuras de
control básicas:
1. secuenciales,
2. repetitivas,
3. selección.

En este capítulo se introducen los tres conceptos anteriores: secuencial (ejecución instrucción a
instrucción), repetitivo (capacidad de repetir una serie de operaciones) y selectivo (posibilidad
de seleccionar una acción entre un conjunto de alternativas especificas). El estudio de las
estructuras de control se realiza basado en las herramientas de programación ya estudiadas:
diagramas de flujo, diagramas N-S y pseudocódigo.

2 TECNICAS DE PROGRAMACIÓN.
Los diagramas de flujo, fundamentalmente, fueron la primera representación gráfica utilizada
para el diseño de algoritmos y programas. Este tipo de herramienta constituye el fundamento de
programación convencional clásica y es de utilidad para la solución de problemas de pequeña y
mediana complejidad. Sin embargo, para problemas complejos el diseño de algoritmos implica
un aumento considerable de la representación gráfica, una reducción de la legibilidad del
algoritmo y un aumento de la memoria física de la computadora ocupada por el programa. Para
evitar estos inconvenientes, las nuevas teorías de programación se centran en las técnicas de
programación modular y programación estructurada, de modo que se pueda conseguir un
programa eficaz. El diseño de un programa entraña la descomposición del problema en módulos
(partes independientes) — Programación modular—, la programación de cada módulo mediante
métodos estructurados —programación estructurada— y su unión posterior mediante
procedimientos ascendentes o descendentes.

2.1 PROGRAMACIÓN MODULAR.


La programación modular es uno de los métodos de diseño más flexibles y potentes para
mejorar la productividad de un programa. En programación modular, el programa se divide en
módulos (partes independientes), cada una de las cuales ejecuta una única actividad o tarea y
se codifican independientemente de otros módulos. Cada uno de estos módulos se analizan,
codifican y ponen a punto por separado.

Cada programa contiene un módulo denominado programa principal que controla todo lo que
sucede; se transfiere el control a submódulos (posteriormente se denominarán subprogramas),
de modo que ellos puedan ejecutar sus funciones; sin embargo, cada submódulo devuelve el
control al módulo principal cuando se haya completado su tarea. Si la tarea asignada a cada
submódulo es demasiado compleja, éste deberá romperse en otros módulos más pequeños. El
proceso sucesivo de subdivisión de módulos continúa hasta que cada módulo tenga solamente
una tarea específica que ejecutar. Esta tarea puede ser entrada, salida, manipulación de datos,
control de otros módulos o alguna combinación de éstos. Un módulo puede transferir
DOCUMENTO DE APOYO
Código: F08-0019-006/ 02-10 Versión: 1
Proceso: Ejecución de la Formación
Modelo de Mejora
Procedimiento: Gestión de Proyectos Formativos Continua

temporalmente (bifurcación) el control a otro módulo; sin embargo, cada módulo debe devolver
el control al módulo del cual se recibe originalmente el control.
Los módulos son independientes en el sentido en el que ningún módulo puede tener acceso
directo a cualquier otro módulo, con excepción del módulo al que llama y sus propios
submódulos. Sin embargo, los resultados producidos por un módulo pueden ser utilizados por
cualquier otro módulo cuando se transfiera a ellos el control.

Dado que los módulos son independientes, diferentes programadores pueden trabajar
simultáneamente en diferentes partes del mismo programa. Esto reducirá el tiempo del diseño
del algoritmo y posterior codificación del programa. Además, un módulo se puede modificar
radicalmente sin afectar a otros módulos, incluso sin alterar su función principal. La
descomposición de un programa en módulos independientes más simples se conoce también
como el método de «divide y vencerás» (divide and conquer). Se diseña cada módulo con
independencia de los demás y siguiendo un método ascendente o descendente se llegará hasta
la descomposición final del problema en módulos en forma jerárquica.

2.2 PROGRAMACIÓN ESTRUCTURADA.


El término programación estructurada se refiere a un conjunto de técnicas que han ido
evolucionando desde los primeros trabajos de Edsgar Dijkstra. Estas técnicas aumentan
considerablemente la productividad del programa reduciendo el elevado tiempo requerido para
escribir, verificar, depurar y mantener los programas.

La programación estructurada utiliza un número limitado de estructuras de control que


minimizan la complejidad de los problemas y, por consiguiente, reducen los errores.
La programación estructurada hace los programas más fáciles de escribir, verificar, leer y
mantener. Los programas deben estar dotados de una estructura.

La programación estructurada es el conjunto de técnicas que incorporan:


• Diseño descendente (top-down),
• Recursos abstractos,
• Estructuras básicas.

Recursos abstractos. La programación estructurada se auxilia de los recursos abstractos en


lugar de los recursos concretos de que se dispone (un determinado lenguaje de programación).
Descomponer un programa en términos de recursos abstractos (según Dijkstra) consiste en
descomponer una determinada acción compleja en función de un número de acciones más
simples, capaces de ser ejecutadas por una computadora y que constituirán sus instrucciones.

Diseño descendente (top-down). El diseño descendente (top-down) es el proceso mediante


el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento
(stepwise). La metodología descendente consiste en efectuar una relación entre las sucesivas
etapas de estructuración, de modo que se relacionen unas con otras mediante entradas y salidas
de información. Es decir, se descompone el problema en etapas o estructuras jerárquicas, de
modo que se puede considerar cada estructura desde dos puntos de vista: qué hace y cómo lo
hace.

Si se considera un nivel n de refinamiento, las estructuras se consideran de la siguiente forma:


Figura 1. Vistas interior y exterior de un módulo.
Figura 2. Diseño descendente.
DOCUMENTO DE APOYO
Código: F08-0019-006/ 02-10 Versión: 1
Proceso: Ejecución de la Formación
Modelo de Mejora
Procedimiento: Gestión de Proyectos Formativos Continua

Teorema de la programación estructurada: estructuras básicas. En mayo de 1966 Bohm y


Jacopini demostraron que un programa propio puede ser escrito utilizando solamente tres tipos
de estructuras de control:
• secuenciales,
• selectivas,
• repetitivas
Un programa se define como propio si cumple las siguientes características:
 posee un solo punto de entrada y uno de salida o fin para control del programa,
 existen caminos desde la entrada hasta la salida que se pueden seguir y que pasan por
todas partes del programa,
 todas las instrucciones son ejecutables y no existen lazos o bucles infinitos (sin fin).

3 ESTRUCTURA SECUENCIAL.
La estructura secuencial es aquélla en la que una acción (instrucción) sigue a otra en secuencia.
Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así
sucesivamente hasta el final
DOCUMENTO DE APOYO
Código: F08-0019-006/ 02-10 Versión: 1
Proceso: Ejecución de la Formación
Modelo de Mejora
Procedimiento: Gestión de Proyectos Formativos Continua

Figura 3. Estructura secuencial

del proceso. La Figura 3 representa una estructura secuencial. La estructura secuencial tiene una
entrada y una salida.

Inicio
<accion1>
<accion2>
*
*
*
*
<accionN>
Fin

4 ESTRUCTURAS SELECTIVAS.
La especificación formal de algoritmos tiene realmente utilidad cuando el algoritmo requiere una
descripción más complicada que una lista sencilla de instrucciones. Este es el caso cuando
existen un número de posibles alternativas resultantes de la evaluación de una determinada
condición.

Las estructuras selectivas se utilizan para tomar decisiones lógicas; de ahí que se suelan
denominar también estructuras de decisión o alternativas. En las estructuras selectivas se
evalúa una condición y en función del resultado de la misma se realiza una opción u otra. Las
condiciones se especifican usando expresiones lógicas. La representación de una estructura
selectiva se hace con palabras en pseudocódigo (if, then, else o bien, en español, sí, entonces,
sino), con una figura geométrica en forma de rombo o bien con un triángulo en el interior de una
caja rectangular.

Las estructuras selectivas o alternativas pueden ser:


• simples,
• dobles,
• múltiples.

4.1 ALTERNATIVA SIMPLE (SI-ENTONCES / IF-THEN).


La estructura alternativa simple si—entonces (en inglés. if—then o bien IF—THEN) ejecuta una
determinada acción cuando se cumple una determinada condición. La selección si-entonces
evalúa la condición y si la condición es verdadera, entonces ejecuta la acción Sl (o acciones en
caso de ser Sl una acción compuesta y constar de varias acciones), si la condición es falsa,
entonces no hacer nada.
DOCUMENTO DE APOYO
Código: F08-0019-006/ 02-10 Versión: 1
Proceso: Ejecución de la Formación
Modelo de Mejora
Procedimiento: Gestión de Proyectos Formativos Continua

Las representaciones gráficas de la estructura condicional simple se muestran en la Figura 6.

Figura 6. Estructuras alternativas simples: a) diagramas de flujo; b) diagrama N-S; c)


pseudocódigo.

Obsérvese que las palabras del pseudocódigo si y fin_si se alinean verticalmente indentando
(sangrando) la <accion> o bloque de acciones.

4.2 ALTERNATIVA DOBLE <SI-ENTONCES-SINO / IF-THEN-ELSE).


La estructura anterior es muy limitada y normalmente se necesitará una estructura que permita
elegir entre dos opciones o alternativas posibles, en función del cumplimiento o no de una
determinada condición
DOCUMENTO DE APOYO
Código: F08-0019-006/ 02-10 Versión: 1
Proceso: Ejecución de la Formación
Modelo de Mejora
Procedimiento: Gestión de Proyectos Formativos Continua

b)

Figura 7. Estructura alternativa doble: a) diagrama de flujo; b) pseudocódigo.

Obsérvese que en el pseudocódigo las acciones que dependen de entonces y si_no están
indentadas (sangradas) en relación con las palabras si y fin_si; este procedimiento aumenta la
legibilidad de la estructura y es el medio más idóneo para representar algoritmos.

5 REFERENCIAS
JOYANES Luis. Fundamentos de programación, Algoritmos y estructura de datos. McGraw – Hill

También podría gustarte