Está en la página 1de 6

PROGAMACION ESTRUCTURADA

HISTORIA Esta surge a finales de los 60s ya que daba fiabilidad y eficiencia .estos estaban escritos de una manera sencilla para su facil comprension. Bhm-Jacopini, demuestra que todo programa puede escribirse utilizando nicamente las tres instrucciones de control siguientes:

Secuencia(Indica que las instrucciones de un programa se ejecutan una despus de la otra, en el mismo orden en el cual aparecen en el programa). Instruccin condicional.(plantea la seleccin entre dos alternativas con base en el resultado de la evaluacin de una condicin )

Iteracin (corresponde a la ejecucin repetida de una instruccin mientras que se cumple una determinada condicin).

Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programacin tienen un mayor repertorio de estructuras de control, stas pueden ser construidas mediante las tres bsicas. Dijkstra introdujo los principios de especializacion funcional (divide y vencers), puntos nicos de entrada y de salida de funciones y programas, diseo desde arriba hacia abajo (top-down) y abolicin de la sentencia GOTO para mantener un flujo coherente de programa. Estos principios son los fundamentos de la programacin estructurada. CONCEPTO La programacin estructurada es un paradigma de programacin que consiste en construir programas de facil comprension. La programacin estructurada es especialmente util, cuando se necesitan realizar correciones o modificaciones despues de haber concluido un programa o aplicacion. Al haberse utilizado la programacin estructurada, es mucho ms sencillo entender la codificacion del programa, que se habra hecho en diferentes secciones. combate la programacion caotica (gotos) este paradigma de programacion estructurada se centra en la descomposicin funcional como lo son: Procesos, mdulos, programas, algoritmos, mtodos, funciones, rutinas, operaciones, verbos o acciones del enunciado del problema. Descompone de manera sucesiva un problema en subproblemas. La representacion grafica de la programacin estructurada se realiza a traves de diagramas de flujo o flow chart, el cual representa el programa con sus entradas, procesos y salidas. VENTAJAS

Los programas son ms fciles de entender. Reduccin de los costos de mantenimiento. Programas ms sencillos y ms rpidos. Aumento en la productividad del programador. Se facilita la utilizacin de las otras tcnicas para el mejoramiento de la productividad en programacin. Los programas quedan mejor documentados internamente. Un programa estructurado puede ser ledo en secuencia, de arriba hacia abajo, sin necesidad de estar saltando de un sitio a otro en la lgica. La estructura del programa es ms clara puesto que las instrucciones estn ms ligadas o relacionadas entre si, por lo que es ms fcil comprender lo que hace cada funcin. Reduccin del esfuerzo en las pruebas. El programa se puede tener listo para produccin normal en un tiempo menor del tradicional; por otro lado, el seguimiento de las fallas o depuracin se facilita debido a la lgica ms visible, de tal forma que los errores se pueden detectar y corregir ms fcilmente. DESVENTAJAS El principal inconveniente de este paradigma de programacin es que se obtiene un nico bloque de programa, que cuando se hace demasiado grande puede resultar problemtico su manejo; esto se resuelve empleando la programacin modular, definiendo mdulos interdependientes programados y compilados por separado.

Un mtodo un poco ms sofisticado es la programacin por capas, en la que los mdulos tienen una estructura jerrquica en la que se pueden definir funciones dentro de funciones o de procedimientos.

HERRAMIENTAS Las dos herramientas ms utilizadas comnmente para disear algoritmos son : diagramas de flujo y pseudocdigos. Diagramas de flujo Un diagrama de flujo (flowchar) es una representacin grfica de un algoritmo. los simmbolos ms frecuentemente empleados se muestran acontinuacin:

Pseudocodigo

Con la programacion estructurada el pseudocdigo sigue siendo un excelente medio para expresar la lgica de un programa. A continuacin se muestran algunos ejemplos de palabras para construir algoritmos en pseudocdigo:

PALABRA ABRE CASO CIERRA ENTONCES ESCRIBE FIN HASTA HAZ INICIO LEER MIENTRAS NO

UTILIZACIN Abre un archivo Seleccin entre mltiples alternativas Cierra un archivo Complemento de la seleccin SI - ENTONCES Visualiza un dato en pantalla Finaliza un bloque de instrucciones Cierra la iteracin HAZ - HASTA Inicia la iteracin HAZ - HASTA Inicia un bloque de instrucciones Leer un dato del teclado Inicia la iteracin mientras Niega la condicin que le sigue

O Disyuncin lgica O - BIEN Complemento opcional de la seleccin SI - ENTONCES PARA Inicia un nmero fijo de iteraciones SI Inicia la seleccin SI-ENTONCES USUAL Conjuncin lgica Y Conjuncin lgica { Inicio de comentario } Fin de comentario <= Asignacin

programacin procedural basada en subdividir un programa en piezas lgicas para reducir su complejidad segn el principio de "divide y vencers". EJEMPLO Calcular la media de una serie de nmeros positivos, suponiendo que los datos se leen desde un termina. Un valor de cero como entrada indicar que se ha alcanzado el final de la serie de nmeros positivos. El primer paso a dar en el desarrollo del algoritmo es descomponer el problema en una serie de pasos secuenciales. Para calcular una media se necesita sumar y contar los valores. Por consiguiente, el algoritmo en forma descriptiva sera: inicio 1. Inicializar contador de nmeros C y variable suma S a cero (S0, C1). 2. Leer un nmero en la variable N (leer(N)) 3. Si el nmero ledo es cero: (si (N =0) entonces) 3.1. Si se ha ledo algn nmero (Si C>0) calcular la media; (media S/C) imprimir la media; (Escribe(media) 3.2. si no se ha ledo ningn nmero (Si C=0)) escribir no hay datos. 3.3. fin del proceso. 4. Si el numero ledo no es cero : (Si (N <> 0) entonces calcular la suma; (S S+N) incrementar en uno el contador de nmeros; (CC+1) ir al paso 2. Fin algoritmo escrito en pseudocdigo: algoritmo media inicio variables entero: n, c, s; real: media;

C 0; S0; repetir leer(N) Si N <> 0 Entonces SS+N; CC+1; fin si hasta N=0 si C>0 entonces media S/C escribe(media) sino escribe('no datos') fin si fin