SlideShare uma empresa Scribd logo
1 de 14
República Bolivariana de Venezuela
Ministerio Del Poder Popular Para La Defensa
Universidad Nacional Experimental Politécnica De La Fuerza Armada
UNEFA – Yaracuy
Nirgua
Programación
Estructurada.
Alumno:
José A. Silva Clisanchez
CI. 22317008
Ing. De Sistemas
8vo Semestre
Abril 2014
Programación Estructurada.
La programación estructurada es la técnica de desarrollo de programas
de la forma más clara posible haciendo uso de tres estructuras de control: la
secuencia, la selección y la interacción. Estas estructuras pueden combinarse
para crear programas que manejen cualquier necesidad de procesamiento de
datos.
La programación estructurada es una teoría de programación que
consiste en construir programas de fácil comprensión, es especialmente útil,
cuando se necesitan realizar correcciones o modificaciones después de haber
concluido un programa o aplicación. Al utilizar la programación estructurada, es
mucho más sencillo entender la codificación del programa, que se habrá hecho
en diferentes secciones.
Se basa en una metodología de desarrollo de programas llamada
refinamiento sucesivo, es decir, Se plantea una operación como un todo y se
divide en segmentos más sencillos o de menor complejidad, una vez terminado
todos los segmentos del programa, se procede a unificar las aplicaciones
realizadas por el grupo de programadores. Si se ha utilizado adecuadamente la
programación estructurada, esta integración debe ser sencilla y no presentar
problemas al integrar la misma, y de presentar algún problema, será
rápidamente detectable para su corrección.
La representación grafica de la programación estructurada se realiza a
través de diagramas de flujo, el cual representa el programa con sus entradas,
procesos y salidas. La programación estructurada propone segregar los
procesos en estructuras lo más simple posibles, las cuales se conocen como
secuencia, selección e interacción, que están disponibles en todos los
lenguajes modernos de programación imperativa en forma de sentencias,
combinando esquemas sencillos se pueden llegar a construir sistemas amplios
y complejos pero de fácil entendimiento.
La programación estructurada es un método disciplinado de escribir
programas que sean claros, que se demuestre que sean correctos y fáciles de
modificar. Esta consiste en dividir los programas en módulos y se basa en el
desarrollo de programas que van de lo general a lo particular, es decir, del
conjunto al elemento, es decir de un todo a lo específico.
Para la solución de un problema en particular, se inicia considerando las
funciones que tiene que cumplir el programa en general y después se va
desmembrando estas funciones en sub-funciones más pequeñas hasta llegar al
caso último o más particular y que ya no se pueda subdividir en casos más
pequeños. Una vez que ya se tiene el programa desmembrado en de lo general
a lo particular, se empieza a programar estas funciones pequeñas, particulares
o módulos, de esta manera, siempre podremos construir nuevos módulos o
unidades insertando el nombre del módulo donde corresponda y
desarrollándolo a parte.
La modificación de los módulos es más fácil y se pueden referenciar
cuantas veces se requiera, con lo que se ahorra tiempo en la programación, un
programa tiene un diseño estructurado si cumple las dos siguientes
condiciones:
*El teorema de Estructura.
*Está debidamente documentado
El teorema de Estructura dice que “un programa cumple el teorema de
estructura si y sólo (ó) si es propio y contiene únicamente las tres estructuras
básicas de control” que son la secuencial, la alternativa y la repetitiva, un
programa es propio si y sólo si cumple: que tenga un solo punto de entrada y
un solo punto de salida y que entre dos puntos de control del programa exista
al menos un camino.
La programación estructurada es un estilo con el cual él se busca que el
programador elabore programas sencillos y fáciles de entender, la
programación estructurada hace uso de tres estructuras básicas de control que
son: Estructura Secuencial, Estructura Selectiva y la Estructura Repetitiva (ó
Iterativa).
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.
Se pueden definir algunos conceptos que son muy relativos a la
programación estructurada como por ejemplo la composición y también
podemos definir algunas características como lo son: las estructuras de control,
la segmentación e identación.
*La Composición: La programación estructurada está compuesta por
segmentos de código que pueden incluir desde una instrucción hasta varias
páginas de estas.
Cada uno de los segmentos de un programa, debe cumplir con dos
procesos básicos: la entrada y la salida de datos.
A diferencia de otros estilos de programación, los programas
estructurados pueden ser leídos secuencialmente, desde el inicio hasta el final,
sin perder la continuidad.
Definición De Las 3 Estructuras Básicas.
1-Estructura Secuencial: Indica que las instrucciones de un programa se
ejecutan una después de la otra, en el mismo orden en el cual aparecen en el
programa. Se representa gráficamente como una caja después de otra, ambas
con una sola entrada y una única salida.
Las cajas A y B pueden ser definidas para ejecutar desde una simple
instrucción hasta un módulo o programa completo, siempre y cuando éstos
también sean programas apropiados.
2-Estructura Selectiva: También conocida como la estructura si
verdadero - falso, plantea la selección entre dos alternativas con base en el
resultado de la evaluación de una condición; equivale a la instrucción IF de
todos los lenguajes de programación y se representa gráficamente de la
siguiente manera:
En el diagrama de flujo anterior, C es una condición que se evalúa; A es
la acción que se ejecuta cuando la evaluación de esta condición resulta
verdadera y B es la acción ejecutada cuando el resultado de la evaluación
indica falso. La estructura también tiene una sola entrada y una sola salida; y
las funciones A y B también pueden ser cualquier estructura básica o conjunto
de estructuras.
3-Estructura Repetitiva (Iterativa): También llamada la estructura hacer –
mientras - que, corresponde a la ejecución repetida de una instrucción mientras
que se cumple una determinada condición. El diagrama de flujo para esta
estructura es el siguiente:
Aquí el bloque A se ejecuta repetidamente mientras que la condición C
se cumpla o sea cierta. También tiene una sola entrada y una sola salida;
igualmente A puede ser cualquier estructura básica o conjunto de estructuras
Características De La Programación Estructurada.
Los programas escritos con estos principios tienen no solo una
estructura fácil de leer, sino que además tienen una excelente presentación,
que permite comprender el código con mayor facilidad. La estructuración del
contenido facilita la revisión de la codificación y reduce el tiempo de prueba y
depuración de programas.
*Estructuras de control: Son estructuras que permiten controlar el orden
de ejecución de las instrucciones contenidas dentro de de ellas dependiendo
de condiciones previamente establecidas.
Todos los programas pueden desarrollarse utilizando únicamente con las
tres estructuras de control características de la programación estructurada.
*Secuencia: Se refiere al orden en la que las instrucciones de un
programa son ejecutadas, tal y como se tienen en el programa.
Los elementos 1, 2 y 3 pueden ser instrucciones o bloques que indican
que independientemente de su complejidad o tamaño, su ejecución es
realizada en el orden indicado.
*Selección: Es la posibilidad de elegir entre dos instrucciones, donde la
decisión se toma en base a la evaluación de una expresión a la que llamamos
condición.
La imagen indica que si se cumple la condición 1, se avanza al punto 2 y
se llega al punto 4, en caso de no cumplirse la condición 1 entonces se avanza
al punto 3 y así se llega al punto 4.
*Iteración: Es una estructura que se utiliza para repetir alguna instrucción
o grupo de instrucciones siempre que se cumpla una condición.
Si se cumple la condición 1, se avanza al punto 2 y se llega al punto 3
donde se encuentra una nueva condición 3 que si se cumple se regresa a la
condición 1 y si no se cumple, se continúa al punto 4.
*Segmentación: Para favorecer la comprensión del código de los
programas desarrollados, es conveniente establecer segmentos del programa
para que estos no excedan una página de codificación (50 líneas en promedio).
No se trata únicamente de dividir un programa en trozos donde la
longitud sea de 50 líneas; la segmentación debe cumplir con las siguientes
características básicas:
- Las partes se deben relacionar entre sí de forma jerárquica, formando
una estructura de árbol.
- Debe mostrar claramente las relaciones existentes entre las funciones
para permitir comprender lo que debe hacer el programa de forma fácil.
- La comunicación entre los segmentos se debe realizar cuidadosamente
y de forma controlada.
La comunicación entre los segmentos se debe realizar a través de una
lista de parámetros, lo cual reduce la oportunidad de se relacionen entre ellos
de forma indeseada o inentendible.
*Identación: Es el espacio o sangría que se asigna a una línea de código
y dependiendo de su longitud, esta indica si una instrucción o grupo de
instrucciones pertenecen a determinado bloque.
Este espacio es importante ya que facilita la lectura del programa
respecto a las relaciones existentes entre las instrucciones y los segmentos.
Orígenes De La Programación Estructurada.
A finales de los años 1970 surgió una nueva forma de programar que no
solamente daba lugar a programas fiables y eficientes, sino que además
estaban escritos de manera que facilitaba su mejor comprensión, no sólo
proveyendo ventajas durante la fase de desarrollo, sino también posibilitando
una más sencilla modificación posterior. El teorema del programa estructurado,
propuesto por Böhm-Jacopini, demuestra que todo programa puede escribirse
utilizando únicamente las tres instrucciones de control siguientes:
*Secuencia
*Instrucción condicional.
*Iteración (bucle de instrucciones) con condición al principio.
Solamente con estas tres estructuras se pueden escribir todos los
programas y aplicaciones posibles. Si bien los lenguajes de programación
tienen un mayor repertorio de estructuras de control, éstas pueden ser
construidas mediante las tres básicas citadas.
Historia De La Programación Estructurada.
El teorema del programa estructurado proporciona la base teórica de la
programación estructurada. Señala que tres maneras de combinar programas
son suficientes para expresar cualquier función computable: secuencia,
selección e iteración. Esta observación no se originó con el movimiento de la
programación estructurada.
Estas estructuras son suficientes para describir el ciclo de instrucción de
una unidad central de procesamiento, así como el funcionamiento de una
máquina de Turing. Por lo tanto un procesador siempre está ejecutando un
"programa estructurado" en este sentido, incluso si las instrucciones que lee de
la memoria no son parte de un programa estructurado. Sin embargo, los
autores usualmente acreditan el resultado a un documento escrito en 1966 por
Böhm y Jacopini, posiblemente porque Dijkstra había citado este escrito. El
teorema del programa estructurado no responde a cómo escribir y analizar un
programa estructurado de manera útil. Estos temas fueron abordados durante
la década de 1960 y principio de los años 1970, con importantes contribuciones
de Dijkstra, Robert W. Floyd, Tony Hoarey y David Gries.
Lenguajes De Programación Estructurada.
Es posible hacer la programación estructurada en cualquier lenguaje de
programación, aunque es preferible usar algo como un lenguaje de
programación procedimental. Algunos de los lenguajes utilizados inicialmente
para programación estructurada incluyen: ALGOL, Pascal, PL/I y Ada – pero la
mayoría de los nuevos lenguajes de programación procedimentales desde
entonces han incluido características para fomentar la programación
estructurada y a veces deliberadamente omiten características en un esfuerzo
para hacer más difícil la programación no estructurada.
Ventajas De La Programación Estructurada.
Con la programación estructurada elaborar programas de computador sigue
siendo un albor que demanda esfuerzo, creatividad, habilidad y cuidado. Sin
embargo, con este nuevo estilo podemos obtener las siguientes ventajas:
1-Los programas son más fáciles de entender. Un programa
estructurado puede ser leído en secuencia, de arriba hacia abajo, sin
necesidad de estar saltando de un sitio a otro en la lógica, lo cual es típico de
otros estilos de programación. La estructura del programa es más clara puesto
que las instrucciones están más ligadas o relacionadas entre sí, por lo que es
más fácil comprender lo que hace cada función.
2-Reducción del esfuerzo en las pruebas. El programa se puede tener
listo para producción normal en un tiempo menor del tradicional; por otro lado,
el seguimiento de las fallas ("debugging") se facilita debido a la lógica más
visible, de tal forma que los errores se pueden detectar y corregir más
fácilmente.
3-Reducción de los costos de mantenimiento.
4-Programas más sencillos y más rápidos
5-Aumento de la productividad del programador
6-Se facilita la utilización de las otras técnicas para el mejoramiento de
la productividad en programación
7-Los programas quedan mejor documentados internamente.
Ventajas Potenciales.
Un programa escrito de acuerdo a estos principios no solamente tendrá
una estructura, sino también una excelente presentación.
Un programa escrito de esta forma tiende a ser mucho más fácil de
comprender que programas escritos en otros estilos.
La facilidad de comprensión del contenido de un programa puede
facilitar el chequeo de la codificación y reducir el tiempo de prueba y
depuración de programas. Esto último es cierto parcialmente, debido a que la
programación estructurada concentra los errores en uno de los factores más
generador de fallas en programación: la lógica.
Un programa que es fácil para leer y el cual está compuesto de
segmentos bien definidos tiende a ser simple, rápido y menos expuesto a
mantenimiento. Estos beneficios derivan en parte del hecho que, aunque el
programa tenga una extensión significativa, en documentación tiende siempre a
estar al día, esto no suele suceder con los métodos convencionales de
programación.
La programación estructurada ofrece estos beneficios, pero no se la
debe considerar como una panacea ya que el desarrollo de programas es,
principalmente, una tarea de dedicación, esfuerzo y creatividad.
Programación Estructurada De Bajo Nivel.
En un bajo nivel, los programas estructurados con frecuencia están
compuestos de simples estructuras de flujo de programa jerárquicas. Estas son
secuencia, selección y repetición:
*"Secuencia" se refiere a una ejecución ordenada de instrucciones.
*En "selección", una de una serie de sentencias es ejecutada dependiendo
del estado del programa. Esto es usualmente expresado con palabras clave
como if..then..else..endif, switch, o case. En algunos lenguajes las palabras
clave no se pueden escribir textualmente, pero debe ser delimitada (stropped).
*En la "repetición" se ejecuta una sentencia hasta que el programa alcance
un estado determinado, o las operaciones han sido aplicadas a cada elemento
de una colección. Esto es usualmente expresado con palabras clave como
while, repeat, for o do. until. A menudo se recomienda que cada bucle sólo
debe tener un punto de entrada (y en la programación estructural original,
también sólo un punto de salida, y pocos lenguajes refuerzan esto).
Diferencias Con La Programación Estructurada Con Otro Tipo De
Programación.
Aunque la programación estructurada condujo a mejoras de la técnica de
programación secuencial, los métodos modernos de diseño de software
orientado a objetos incluyen mejoras entre las que están el uso de los patrones
de diseño, diseño por contrato, y lenguajes de modelado, Las principales
diferencias entre la programación estructurada y la orientada a objetos son:
*La programación orientada a objetos es más moderna, es una evolución
de la programación estructurada que plasma en el diseño de una familia de
lenguajes conceptos que existían previamente con algunos nuevos.
*La programación orientada a objetos se basa en lenguajes que
soportan sintáctica y semánticamente la unión entre los tipos abstractos de
datos y sus operaciones
*La programación orientada a objetos incorpora en su entorno de
ejecución mecanismos tales como el polimorfismo y el envío de mensajes entre
objetos. Erróneamente se le adjudica a la programación estructurada clásica
ciertos problemas como si fueran inherentes a la misma, esos problemas
fueron haciéndose cada vez más graves y antes de la programación orientada
a objetos diversos autores encontraron soluciones basadas en aplicar estrictas
metodologías de trabajo. De esa época son los conceptos de cohesión y
acoplamiento, de esos problemas se destacan los siguientes:
Modelo mental anómalo. Nuestra imagen del mundo se apoya en los
seres, a los que asignamos nombres sustantivos, mientras la programación
clásica se basa en el comportamiento, representado usualmente por verbos.
*Es difícil modificar y extender los programas, pues suele haber datos
compartidos por varios subprogramas, que introducen interacciones ocultas
entre ellos.
*Es difícil mantener los programas. Casi todos los sistemas informáticos
grandes tienen errores ocultos, que no surgen a la luz hasta después de
muchas horas de funcionamiento.
*Es difícil reutilizar los programas. Es prácticamente imposible
aprovechar en una aplicación nueva las subrutinas que se diseñaron para otra.
*Es compleja la coordinación y organización entre programadores para
la creación de aplicaciones de media y gran envergadura.
En la programación orientada a objetos pura no deben utilizarse
llamadas de subrutinas, únicamente mensajes, por ello, a veces recibe el
nombre de programación sin call, igual que la programación estructurada se
llama también programación sin goto, sin embargo, no todos los lenguajes
orientados a objetos prohíben la instrucción call, permitiendo realizar
programación híbrida, imperativa y orientada a objetos a la vez.
Teorema De La Estructura.
El teorema de la estructura establece que un programa propio puede ser
escrito utilizando solamente las siguientes estructuras lógicas de control:
secuencia, selección e iteración.
Un programa de define como propio si cumple con los dos
requerimientos siguientes:
a. Tiene exactamente una entrada y una salida para control del programa.
b. Existen caminos que se pueden seguir desde la entrada hasta la salida
que conducen por cada parte del programa, es decir, no existen lazos
infinitos ni instrucciones que no se ejecutan.
Las tres estructuras lógicas de control básicas, se definen de la siguiente
forma:
Secuencia: es simplemente la formalización de la idea de que las
instrucciones de un programa son ejecutadas en el mismo orden en que ellas
aparecen en el programa. En términos de diagrama de flujo la secuencia es
representada por una función después de la otra, como se muestra a
continuación.
A y B pueden ser instrucciones sencillas hasta módulos completos, lo
importante es que sean programas propios, independientemente de su tamaño
o complejidad interna. Ay B deben ser programas propios en el sentido en que
estos fueron definidos, es decir, que posean solamente una entrada y una
salida; la combinación de A seguida por B es también un programa propio, ya
que esta unión tiene una entrada y una salida exclusivamente, esto se muestra
gráficamente en la figura siguiente:
Donde la caja externa sugiere que la combinación de A seguida de
puede ser tratada como una unidad para propósitos de control.
Selección: Es la escogencia entre dos acciones tomando la decisión en
base al resultado de evaluar un predicado. Esta estructura de control es
denominada usualmente IFTHENELSE. La representación en forma de
diagrama de flujo de esta estructura lógica de control se muestra a
continuación:
F
Donde P es predicado y A y B son las dos funciones.
Iteración: Esta estructura lógica es utilizada para que se repita la
ejecución de un conjunto de instrucciones mientras se cumpla una condición o
predicado. Generalmente a esta estructura se le conoce como DOWHILE
(hacer mientras) y su representación se muestra a continuación:
V
F
Donde P es predicado y A es el modulo controlado.
Se debe comprender claramente que un rectángulo, que representa un
modulo en un diagrama, siempre puede ser sustituido por cualquiera de las tres
estructuras de control descritas anteriormente; por ejemplo, veamos el
diagrama siguiente:
En él, la línea punteada limita un rectángulo que contiene una estructura,
que a su vez controla dos módulos X y Y. La estructura limitada por la línea
punteada es sustituida por una función quedando de la siguiente forma:
V
F
Es decir, una función sustituye a una estructura lógica de control o
viceversa.
Otras Estructuras Lógicas De Control.
Aunque todos los programas pueden ser escritos utilizando solamente
las tres estructuras de control descritas anteriormente, es algunas veces,
conveniente utilizar algunas estructuras adicionales; a continuación se hará una
descripción de esas formas lógicas de control diferentes a las ya definidas:
El Dountil: La estructuras de iteración básica es el DOWHILE, pero
existe una estructura que es muy parecida a ella y que a veces es usada,
dependiendo del proceso que se esté tratando de representar y de las
características apropiadas en el lenguaje con el cual se está trabajando, esta
forma de control es la que se llama DOUNTIL, cuya representación gráfica en
forma de diagrama de flujo se muestra a continuación:
V
Donde A es el modulo controlado y P el predicado.
La diferencia entre el DOWHILE y el DOUNTIL es que en el primero el
predicado es probado antes de ejecutar la función, si el predicado es falso la
función no es ejecutada; mientras que en el segundo, el predicado es probado
después de ejecutar la función, o sea, que la función siempre será ejecutada al
menos una vez, independientemente si el predicado es cierto o falso.
La estructura CASE: Algunas veces resulta de gran ayuda, desde el
punto de vista de eficiencias y facilidad de lectura de un programa, tener alguna
forma de expresar una desviación del flujo de control hacia múltiples procesos
en función del resultado de la evaluación de un predicado; usualmente, a la
estructura de control que satisface el requerimiento anterior, se le denomina la
estructura CASE. Por ejemplo, si es necesario ejecutar una de cien rutinas
diferentes en función del valor de un código de 2 dígitos, podemos representar
este proceso mediante 100 estructuras IF, sin embargo el sentido común nos
induce a pensar que no hay razón para adherirnos rígidamente a las tres
estructuras básicas de control y en lugar de 100 IF usaríamos la estructura
CASE.
Esta estructura utiliza el valor de una variable para determinar cual, de
varias rutinas, será ejecutada. La representación gráfica de esta estructura de
control se muestra a continuación:
En cada lenguaje será necesario establecer cuáles son las instrucciones
que, en forma conveniente y eficiente, realizan funciones establecidas por las
diferentes estructuras lógicas de control.
Etiquetas E Instrucciones GOTO.
Ocasionalmente se habla de la programación estructurada como una
técnica de programación que no utiliza GOTO (instrucción de desvío del flujo
de control en forma incondicional); si bien es cierto que un programa bien
estructurado tiene, o bien ninguna o muy pocas instrucciones GOTO,
asumiendo que estamos empleando un lenguaje de programación adecuado, la
ausencia de instrucciones GOTO puede ser mal interpretada. Es conveniente
que aclaremos este aspecto en este momento.
Un programa bien estructurado gana una parte importante de su fácil
comprensión del hecho que puede ser leído en forma secuencial sin desvíos en
el flujo de control desde una parte del programa a otra. Esta característica es
consecuencia de usar exclusivamente las estructuras lógicas de control
estándar (el GOTO no es una de ellas), esta secuencialidad o lectura
TOPDOWN es beneficiosa debido a que hay un límite definido para muchos
detalles que la mente humana puede abarcar de una vez. Se hace
relativamente fácil y rápida la comprensión de la tarea que realiza una
instrucción si su función puede ser entendida en términos de unas pocas
instrucciones mas, físicamente contiguas y delimitadas.
El problema con la instrucción GOTO es que generalmente aleja al
programa realizado de los propósitos descritos y en casos extremos puede
hacer que un programa sea esencialmente incomprensible.
No se requieren esfuerzos especiales para eliminar de un programa los
GOTO, los cuales han sido, algunas veces, malentendidos como enemigos de
la programación estructurada, existen buenas y fundadas razones para no
querer usarlos pero no se necesita que se realice un trabajo arduo para
eliminarlo; ellos no aparecerán, en general, cuando se utilicen las estructuras
lógicas de control, descritas anteriormente. Naturalmente, si escogemos para
programar un lenguaje de computación que no posea las estructuras lógicas de
control fundamentales, entonces, tendremos que simularlas y seguramente ello
implicara el uso de la instrucción GOTO; pero este uso puede hacerse en forma
cuidadosamente controlada.
Existen situaciones poco comunes en las cuales el uso de GOTO puede
tener ventajas comparado con otras maneras de expresar un proceso; estos
casos son excepcionales y usualmente no ocurren en la programación
realizada diariamente.
Se deben analizar cuidadosamente las consecuencias de emplear el
GOTO, antes de su uso.

Mais conteúdo relacionado

Mais procurados

Sistema de-maquina-virtual
Sistema de-maquina-virtualSistema de-maquina-virtual
Sistema de-maquina-virtual
kerlly villon
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
AlexandraMolinaSanchez
 
Tabla comparativa de programacion orientada , objetos y estructurada.
Tabla comparativa de programacion orientada , objetos y estructurada.Tabla comparativa de programacion orientada , objetos y estructurada.
Tabla comparativa de programacion orientada , objetos y estructurada.
Sandy Montoya Reyes
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
landeta_p
 

Mais procurados (20)

Tabla comparativa programación estructurada y orientada a objetos
Tabla comparativa programación estructurada y orientada a objetosTabla comparativa programación estructurada y orientada a objetos
Tabla comparativa programación estructurada y orientada a objetos
 
Toma de decisiones If Else
Toma de decisiones If ElseToma de decisiones If Else
Toma de decisiones If Else
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
Linea de tiempo de la historia de los lenguajes de programacion
Linea de tiempo de la historia de los lenguajes de programacionLinea de tiempo de la historia de los lenguajes de programacion
Linea de tiempo de la historia de los lenguajes de programacion
 
Introducción y componenetes del sistema operativo
Introducción y componenetes del sistema operativoIntroducción y componenetes del sistema operativo
Introducción y componenetes del sistema operativo
 
Presentación de Netbeans
Presentación de NetbeansPresentación de Netbeans
Presentación de Netbeans
 
Sistema de-maquina-virtual
Sistema de-maquina-virtualSistema de-maquina-virtual
Sistema de-maquina-virtual
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Exposición de Lenguajes de Programación
Exposición de Lenguajes de ProgramaciónExposición de Lenguajes de Programación
Exposición de Lenguajes de Programación
 
Estructuras de control algoritmos
Estructuras de control algoritmosEstructuras de control algoritmos
Estructuras de control algoritmos
 
Portafolio lenguajes y automatas unidad 3 - Autómatas finitos
Portafolio lenguajes y automatas unidad 3 - Autómatas finitosPortafolio lenguajes y automatas unidad 3 - Autómatas finitos
Portafolio lenguajes y automatas unidad 3 - Autómatas finitos
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
 
Historia y conceptos basicos de programación estructurada
Historia y conceptos basicos de programación estructuradaHistoria y conceptos basicos de programación estructurada
Historia y conceptos basicos de programación estructurada
 
Trabajo de Sistemas Operativos
Trabajo de Sistemas OperativosTrabajo de Sistemas Operativos
Trabajo de Sistemas Operativos
 
Conceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónConceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programación
 
Lenguajes de alto nivel
Lenguajes de alto nivelLenguajes de alto nivel
Lenguajes de alto nivel
 
Tabla comparativa de programacion orientada , objetos y estructurada.
Tabla comparativa de programacion orientada , objetos y estructurada.Tabla comparativa de programacion orientada , objetos y estructurada.
Tabla comparativa de programacion orientada , objetos y estructurada.
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 

Destaque

Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
Leydi Hernandez
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
vnslgars
 
2.1 elemento básicos del lenguaje de programación estructurado manipulación b...
2.1 elemento básicos del lenguaje de programación estructurado manipulación b...2.1 elemento básicos del lenguaje de programación estructurado manipulación b...
2.1 elemento básicos del lenguaje de programación estructurado manipulación b...
carolina peña
 
Mapa conceptual de la programacion
Mapa conceptual de la programacionMapa conceptual de la programacion
Mapa conceptual de la programacion
Vale Acevedo
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
Fabricio Macias
 
Origen de la programación
Origen de la programaciónOrigen de la programación
Origen de la programación
Alex Lopez
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
lindacajaperuiz
 

Destaque (20)

Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Historia de la Programacion funcional
Historia de la Programacion funcionalHistoria de la Programacion funcional
Historia de la Programacion funcional
 
2.1 elemento básicos del lenguaje de programación estructurado manipulación b...
2.1 elemento básicos del lenguaje de programación estructurado manipulación b...2.1 elemento básicos del lenguaje de programación estructurado manipulación b...
2.1 elemento básicos del lenguaje de programación estructurado manipulación b...
 
Mapa conceptual de la programacion
Mapa conceptual de la programacionMapa conceptual de la programacion
Mapa conceptual de la programacion
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Técnicas de programación estructurada
Técnicas de programación estructuradaTécnicas de programación estructurada
Técnicas de programación estructurada
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
Programacion Estructurada
Programacion EstructuradaProgramacion Estructurada
Programacion Estructurada
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
Tipos de Variable
Tipos de VariableTipos de Variable
Tipos de Variable
 
Origen de la programación
Origen de la programaciónOrigen de la programación
Origen de la programación
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Antecedentes de la programación
Antecedentes de la programación Antecedentes de la programación
Antecedentes de la programación
 
Mapa conceptual programacion
Mapa conceptual programacion Mapa conceptual programacion
Mapa conceptual programacion
 
Programacion de sistemas
Programacion de sistemasProgramacion de sistemas
Programacion de sistemas
 
Desarrollo de las Habilidades Interpersonales en el trabajo
Desarrollo de las Habilidades Interpersonales en el trabajoDesarrollo de las Habilidades Interpersonales en el trabajo
Desarrollo de las Habilidades Interpersonales en el trabajo
 

Semelhante a Programacion estructurada

Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
Joao Chans
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
Joao Chans
 
Programacion Estructurada
Programacion EstructuradaProgramacion Estructurada
Programacion Estructurada
Joseph Bros
 
Programacion estructurada 2
Programacion estructurada 2Programacion estructurada 2
Programacion estructurada 2
elvis mendieta
 
Programacion estructurada
Programacion estructurada Programacion estructurada
Programacion estructurada
elvis mendieta
 
2 unidad. Codificar la solución del problema en un lenguaje de programación e...
2 unidad. Codificar la solución del problema en un lenguaje de programación e...2 unidad. Codificar la solución del problema en un lenguaje de programación e...
2 unidad. Codificar la solución del problema en un lenguaje de programación e...
Domitho Ibarra
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
Henry Centeno
 
Unidaddos 130504121908-phpapp02
Unidaddos 130504121908-phpapp02Unidaddos 130504121908-phpapp02
Unidaddos 130504121908-phpapp02
Kareen's Maldonado
 
Unidaddos 130504121908-phpapp02
Unidaddos 130504121908-phpapp02Unidaddos 130504121908-phpapp02
Unidaddos 130504121908-phpapp02
Kareen's Maldonado
 
Segundaunidad3 130504164926-phpapp01
Segundaunidad3 130504164926-phpapp01Segundaunidad3 130504164926-phpapp01
Segundaunidad3 130504164926-phpapp01
Maryfer' Ortega
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
luz0987
 

Semelhante a Programacion estructurada (20)

Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programacion estruturada
Programacion estruturadaProgramacion estruturada
Programacion estruturada
 
Alirio teran _ Primer trabajo Programacion 2
Alirio teran _ Primer trabajo Programacion 2Alirio teran _ Primer trabajo Programacion 2
Alirio teran _ Primer trabajo Programacion 2
 
Programacion Estructurada
Programacion EstructuradaProgramacion Estructurada
Programacion Estructurada
 
Concepto
ConceptoConcepto
Concepto
 
A
AA
A
 
Programacion estructurada 2
Programacion estructurada 2Programacion estructurada 2
Programacion estructurada 2
 
Programacion estructurada
Programacion estructurada Programacion estructurada
Programacion estructurada
 
Paradigmas de programacion
Paradigmas de programacion Paradigmas de programacion
Paradigmas de programacion
 
Segunda unidad;3
Segunda unidad;3Segunda unidad;3
Segunda unidad;3
 
Unidad dos
Unidad dosUnidad dos
Unidad dos
 
2 unidad. Codificar la solución del problema en un lenguaje de programación e...
2 unidad. Codificar la solución del problema en un lenguaje de programación e...2 unidad. Codificar la solución del problema en un lenguaje de programación e...
2 unidad. Codificar la solución del problema en un lenguaje de programación e...
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidaddos 130504121908-phpapp02
Unidaddos 130504121908-phpapp02Unidaddos 130504121908-phpapp02
Unidaddos 130504121908-phpapp02
 
Unidaddos 130504121908-phpapp02
Unidaddos 130504121908-phpapp02Unidaddos 130504121908-phpapp02
Unidaddos 130504121908-phpapp02
 
Segundaunidad3 130504164926-phpapp01
Segundaunidad3 130504164926-phpapp01Segundaunidad3 130504164926-phpapp01
Segundaunidad3 130504164926-phpapp01
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 

Programacion estructurada

  • 1. República Bolivariana de Venezuela Ministerio Del Poder Popular Para La Defensa Universidad Nacional Experimental Politécnica De La Fuerza Armada UNEFA – Yaracuy Nirgua Programación Estructurada. Alumno: José A. Silva Clisanchez CI. 22317008 Ing. De Sistemas 8vo Semestre Abril 2014
  • 2. Programación Estructurada. La programación estructurada es la técnica de desarrollo de programas de la forma más clara posible haciendo uso de tres estructuras de control: la secuencia, la selección y la interacción. Estas estructuras pueden combinarse para crear programas que manejen cualquier necesidad de procesamiento de datos. La programación estructurada es una teoría de programación que consiste en construir programas de fácil comprensión, es especialmente útil, cuando se necesitan realizar correcciones o modificaciones después de haber concluido un programa o aplicación. Al utilizar la programación estructurada, es mucho más sencillo entender la codificación del programa, que se habrá hecho en diferentes secciones. Se basa en una metodología de desarrollo de programas llamada refinamiento sucesivo, es decir, Se plantea una operación como un todo y se divide en segmentos más sencillos o de menor complejidad, una vez terminado todos los segmentos del programa, se procede a unificar las aplicaciones realizadas por el grupo de programadores. Si se ha utilizado adecuadamente la programación estructurada, esta integración debe ser sencilla y no presentar problemas al integrar la misma, y de presentar algún problema, será rápidamente detectable para su corrección. La representación grafica de la programación estructurada se realiza a través de diagramas de flujo, el cual representa el programa con sus entradas, procesos y salidas. La programación estructurada propone segregar los procesos en estructuras lo más simple posibles, las cuales se conocen como secuencia, selección e interacción, que están disponibles en todos los lenguajes modernos de programación imperativa en forma de sentencias, combinando esquemas sencillos se pueden llegar a construir sistemas amplios y complejos pero de fácil entendimiento. La programación estructurada es un método disciplinado de escribir programas que sean claros, que se demuestre que sean correctos y fáciles de modificar. Esta consiste en dividir los programas en módulos y se basa en el desarrollo de programas que van de lo general a lo particular, es decir, del conjunto al elemento, es decir de un todo a lo específico. Para la solución de un problema en particular, se inicia considerando las funciones que tiene que cumplir el programa en general y después se va desmembrando estas funciones en sub-funciones más pequeñas hasta llegar al caso último o más particular y que ya no se pueda subdividir en casos más pequeños. Una vez que ya se tiene el programa desmembrado en de lo general a lo particular, se empieza a programar estas funciones pequeñas, particulares o módulos, de esta manera, siempre podremos construir nuevos módulos o unidades insertando el nombre del módulo donde corresponda y desarrollándolo a parte.
  • 3. La modificación de los módulos es más fácil y se pueden referenciar cuantas veces se requiera, con lo que se ahorra tiempo en la programación, un programa tiene un diseño estructurado si cumple las dos siguientes condiciones: *El teorema de Estructura. *Está debidamente documentado El teorema de Estructura dice que “un programa cumple el teorema de estructura si y sólo (ó) si es propio y contiene únicamente las tres estructuras básicas de control” que son la secuencial, la alternativa y la repetitiva, un programa es propio si y sólo si cumple: que tenga un solo punto de entrada y un solo punto de salida y que entre dos puntos de control del programa exista al menos un camino. La programación estructurada es un estilo con el cual él se busca que el programador elabore programas sencillos y fáciles de entender, la programación estructurada hace uso de tres estructuras básicas de control que son: Estructura Secuencial, Estructura Selectiva y la Estructura Repetitiva (ó Iterativa). 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. Se pueden definir algunos conceptos que son muy relativos a la programación estructurada como por ejemplo la composición y también podemos definir algunas características como lo son: las estructuras de control, la segmentación e identación. *La Composición: La programación estructurada está compuesta por segmentos de código que pueden incluir desde una instrucción hasta varias páginas de estas. Cada uno de los segmentos de un programa, debe cumplir con dos procesos básicos: la entrada y la salida de datos.
  • 4. A diferencia de otros estilos de programación, los programas estructurados pueden ser leídos secuencialmente, desde el inicio hasta el final, sin perder la continuidad. Definición De Las 3 Estructuras Básicas. 1-Estructura Secuencial: Indica que las instrucciones de un programa se ejecutan una después de la otra, en el mismo orden en el cual aparecen en el programa. Se representa gráficamente como una caja después de otra, ambas con una sola entrada y una única salida. Las cajas A y B pueden ser definidas para ejecutar desde una simple instrucción hasta un módulo o programa completo, siempre y cuando éstos también sean programas apropiados. 2-Estructura Selectiva: También conocida como la estructura si verdadero - falso, plantea la selección entre dos alternativas con base en el resultado de la evaluación de una condición; equivale a la instrucción IF de todos los lenguajes de programación y se representa gráficamente de la siguiente manera: En el diagrama de flujo anterior, C es una condición que se evalúa; A es la acción que se ejecuta cuando la evaluación de esta condición resulta verdadera y B es la acción ejecutada cuando el resultado de la evaluación indica falso. La estructura también tiene una sola entrada y una sola salida; y las funciones A y B también pueden ser cualquier estructura básica o conjunto de estructuras.
  • 5. 3-Estructura Repetitiva (Iterativa): También llamada la estructura hacer – mientras - que, corresponde a la ejecución repetida de una instrucción mientras que se cumple una determinada condición. El diagrama de flujo para esta estructura es el siguiente: Aquí el bloque A se ejecuta repetidamente mientras que la condición C se cumpla o sea cierta. También tiene una sola entrada y una sola salida; igualmente A puede ser cualquier estructura básica o conjunto de estructuras Características De La Programación Estructurada. Los programas escritos con estos principios tienen no solo una estructura fácil de leer, sino que además tienen una excelente presentación, que permite comprender el código con mayor facilidad. La estructuración del contenido facilita la revisión de la codificación y reduce el tiempo de prueba y depuración de programas. *Estructuras de control: Son estructuras que permiten controlar el orden de ejecución de las instrucciones contenidas dentro de de ellas dependiendo de condiciones previamente establecidas. Todos los programas pueden desarrollarse utilizando únicamente con las tres estructuras de control características de la programación estructurada. *Secuencia: Se refiere al orden en la que las instrucciones de un programa son ejecutadas, tal y como se tienen en el programa.
  • 6. Los elementos 1, 2 y 3 pueden ser instrucciones o bloques que indican que independientemente de su complejidad o tamaño, su ejecución es realizada en el orden indicado. *Selección: Es la posibilidad de elegir entre dos instrucciones, donde la decisión se toma en base a la evaluación de una expresión a la que llamamos condición. La imagen indica que si se cumple la condición 1, se avanza al punto 2 y se llega al punto 4, en caso de no cumplirse la condición 1 entonces se avanza al punto 3 y así se llega al punto 4. *Iteración: Es una estructura que se utiliza para repetir alguna instrucción o grupo de instrucciones siempre que se cumpla una condición. Si se cumple la condición 1, se avanza al punto 2 y se llega al punto 3 donde se encuentra una nueva condición 3 que si se cumple se regresa a la condición 1 y si no se cumple, se continúa al punto 4. *Segmentación: Para favorecer la comprensión del código de los programas desarrollados, es conveniente establecer segmentos del programa para que estos no excedan una página de codificación (50 líneas en promedio). No se trata únicamente de dividir un programa en trozos donde la longitud sea de 50 líneas; la segmentación debe cumplir con las siguientes características básicas: - Las partes se deben relacionar entre sí de forma jerárquica, formando una estructura de árbol. - Debe mostrar claramente las relaciones existentes entre las funciones para permitir comprender lo que debe hacer el programa de forma fácil. - La comunicación entre los segmentos se debe realizar cuidadosamente y de forma controlada.
  • 7. La comunicación entre los segmentos se debe realizar a través de una lista de parámetros, lo cual reduce la oportunidad de se relacionen entre ellos de forma indeseada o inentendible. *Identación: Es el espacio o sangría que se asigna a una línea de código y dependiendo de su longitud, esta indica si una instrucción o grupo de instrucciones pertenecen a determinado bloque. Este espacio es importante ya que facilita la lectura del programa respecto a las relaciones existentes entre las instrucciones y los segmentos. Orígenes De La Programación Estructurada. A finales de los años 1970 surgió una nueva forma de programar que no solamente daba lugar a programas fiables y eficientes, sino que además estaban escritos de manera que facilitaba su mejor comprensión, no sólo proveyendo ventajas durante la fase de desarrollo, sino también posibilitando una más sencilla modificación posterior. El teorema del programa estructurado, propuesto por Böhm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes: *Secuencia *Instrucción condicional. *Iteración (bucle de instrucciones) con condición al principio. Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programación tienen un mayor repertorio de estructuras de control, éstas pueden ser construidas mediante las tres básicas citadas. Historia De La Programación Estructurada. El teorema del programa estructurado proporciona la base teórica de la programación estructurada. Señala que tres maneras de combinar programas son suficientes para expresar cualquier función computable: secuencia, selección e iteración. Esta observación no se originó con el movimiento de la programación estructurada. Estas estructuras son suficientes para describir el ciclo de instrucción de una unidad central de procesamiento, así como el funcionamiento de una máquina de Turing. Por lo tanto un procesador siempre está ejecutando un "programa estructurado" en este sentido, incluso si las instrucciones que lee de la memoria no son parte de un programa estructurado. Sin embargo, los
  • 8. autores usualmente acreditan el resultado a un documento escrito en 1966 por Böhm y Jacopini, posiblemente porque Dijkstra había citado este escrito. El teorema del programa estructurado no responde a cómo escribir y analizar un programa estructurado de manera útil. Estos temas fueron abordados durante la década de 1960 y principio de los años 1970, con importantes contribuciones de Dijkstra, Robert W. Floyd, Tony Hoarey y David Gries. Lenguajes De Programación Estructurada. Es posible hacer la programación estructurada en cualquier lenguaje de programación, aunque es preferible usar algo como un lenguaje de programación procedimental. Algunos de los lenguajes utilizados inicialmente para programación estructurada incluyen: ALGOL, Pascal, PL/I y Ada – pero la mayoría de los nuevos lenguajes de programación procedimentales desde entonces han incluido características para fomentar la programación estructurada y a veces deliberadamente omiten características en un esfuerzo para hacer más difícil la programación no estructurada. Ventajas De La Programación Estructurada. Con la programación estructurada elaborar programas de computador sigue siendo un albor que demanda esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este nuevo estilo podemos obtener las siguientes ventajas: 1-Los programas son más fáciles de entender. Un programa estructurado puede ser leído en secuencia, de arriba hacia abajo, sin necesidad de estar saltando de un sitio a otro en la lógica, lo cual es típico de otros estilos de programación. La estructura del programa es más clara puesto que las instrucciones están más ligadas o relacionadas entre sí, por lo que es más fácil comprender lo que hace cada función. 2-Reducción del esfuerzo en las pruebas. El programa se puede tener listo para producción normal en un tiempo menor del tradicional; por otro lado, el seguimiento de las fallas ("debugging") se facilita debido a la lógica más visible, de tal forma que los errores se pueden detectar y corregir más fácilmente. 3-Reducción de los costos de mantenimiento. 4-Programas más sencillos y más rápidos 5-Aumento de la productividad del programador 6-Se facilita la utilización de las otras técnicas para el mejoramiento de la productividad en programación 7-Los programas quedan mejor documentados internamente.
  • 9. Ventajas Potenciales. Un programa escrito de acuerdo a estos principios no solamente tendrá una estructura, sino también una excelente presentación. Un programa escrito de esta forma tiende a ser mucho más fácil de comprender que programas escritos en otros estilos. La facilidad de comprensión del contenido de un programa puede facilitar el chequeo de la codificación y reducir el tiempo de prueba y depuración de programas. Esto último es cierto parcialmente, debido a que la programación estructurada concentra los errores en uno de los factores más generador de fallas en programación: la lógica. Un programa que es fácil para leer y el cual está compuesto de segmentos bien definidos tiende a ser simple, rápido y menos expuesto a mantenimiento. Estos beneficios derivan en parte del hecho que, aunque el programa tenga una extensión significativa, en documentación tiende siempre a estar al día, esto no suele suceder con los métodos convencionales de programación. La programación estructurada ofrece estos beneficios, pero no se la debe considerar como una panacea ya que el desarrollo de programas es, principalmente, una tarea de dedicación, esfuerzo y creatividad. Programación Estructurada De Bajo Nivel. En un bajo nivel, los programas estructurados con frecuencia están compuestos de simples estructuras de flujo de programa jerárquicas. Estas son secuencia, selección y repetición: *"Secuencia" se refiere a una ejecución ordenada de instrucciones. *En "selección", una de una serie de sentencias es ejecutada dependiendo del estado del programa. Esto es usualmente expresado con palabras clave como if..then..else..endif, switch, o case. En algunos lenguajes las palabras clave no se pueden escribir textualmente, pero debe ser delimitada (stropped). *En la "repetición" se ejecuta una sentencia hasta que el programa alcance un estado determinado, o las operaciones han sido aplicadas a cada elemento de una colección. Esto es usualmente expresado con palabras clave como while, repeat, for o do. until. A menudo se recomienda que cada bucle sólo debe tener un punto de entrada (y en la programación estructural original, también sólo un punto de salida, y pocos lenguajes refuerzan esto).
  • 10. Diferencias Con La Programación Estructurada Con Otro Tipo De Programación. Aunque la programación estructurada condujo a mejoras de la técnica de programación secuencial, los métodos modernos de diseño de software orientado a objetos incluyen mejoras entre las que están el uso de los patrones de diseño, diseño por contrato, y lenguajes de modelado, Las principales diferencias entre la programación estructurada y la orientada a objetos son: *La programación orientada a objetos es más moderna, es una evolución de la programación estructurada que plasma en el diseño de una familia de lenguajes conceptos que existían previamente con algunos nuevos. *La programación orientada a objetos se basa en lenguajes que soportan sintáctica y semánticamente la unión entre los tipos abstractos de datos y sus operaciones *La programación orientada a objetos incorpora en su entorno de ejecución mecanismos tales como el polimorfismo y el envío de mensajes entre objetos. Erróneamente se le adjudica a la programación estructurada clásica ciertos problemas como si fueran inherentes a la misma, esos problemas fueron haciéndose cada vez más graves y antes de la programación orientada a objetos diversos autores encontraron soluciones basadas en aplicar estrictas metodologías de trabajo. De esa época son los conceptos de cohesión y acoplamiento, de esos problemas se destacan los siguientes: Modelo mental anómalo. Nuestra imagen del mundo se apoya en los seres, a los que asignamos nombres sustantivos, mientras la programación clásica se basa en el comportamiento, representado usualmente por verbos. *Es difícil modificar y extender los programas, pues suele haber datos compartidos por varios subprogramas, que introducen interacciones ocultas entre ellos. *Es difícil mantener los programas. Casi todos los sistemas informáticos grandes tienen errores ocultos, que no surgen a la luz hasta después de muchas horas de funcionamiento. *Es difícil reutilizar los programas. Es prácticamente imposible aprovechar en una aplicación nueva las subrutinas que se diseñaron para otra. *Es compleja la coordinación y organización entre programadores para la creación de aplicaciones de media y gran envergadura. En la programación orientada a objetos pura no deben utilizarse llamadas de subrutinas, únicamente mensajes, por ello, a veces recibe el nombre de programación sin call, igual que la programación estructurada se llama también programación sin goto, sin embargo, no todos los lenguajes orientados a objetos prohíben la instrucción call, permitiendo realizar programación híbrida, imperativa y orientada a objetos a la vez.
  • 11. Teorema De La Estructura. El teorema de la estructura establece que un programa propio puede ser escrito utilizando solamente las siguientes estructuras lógicas de control: secuencia, selección e iteración. Un programa de define como propio si cumple con los dos requerimientos siguientes: a. Tiene exactamente una entrada y una salida para control del programa. b. Existen caminos que se pueden seguir desde la entrada hasta la salida que conducen por cada parte del programa, es decir, no existen lazos infinitos ni instrucciones que no se ejecutan. Las tres estructuras lógicas de control básicas, se definen de la siguiente forma: Secuencia: es simplemente la formalización de la idea de que las instrucciones de un programa son ejecutadas en el mismo orden en que ellas aparecen en el programa. En términos de diagrama de flujo la secuencia es representada por una función después de la otra, como se muestra a continuación. A y B pueden ser instrucciones sencillas hasta módulos completos, lo importante es que sean programas propios, independientemente de su tamaño o complejidad interna. Ay B deben ser programas propios en el sentido en que estos fueron definidos, es decir, que posean solamente una entrada y una salida; la combinación de A seguida por B es también un programa propio, ya que esta unión tiene una entrada y una salida exclusivamente, esto se muestra gráficamente en la figura siguiente: Donde la caja externa sugiere que la combinación de A seguida de puede ser tratada como una unidad para propósitos de control. Selección: Es la escogencia entre dos acciones tomando la decisión en base al resultado de evaluar un predicado. Esta estructura de control es denominada usualmente IFTHENELSE. La representación en forma de diagrama de flujo de esta estructura lógica de control se muestra a continuación: F Donde P es predicado y A y B son las dos funciones. Iteración: Esta estructura lógica es utilizada para que se repita la ejecución de un conjunto de instrucciones mientras se cumpla una condición o predicado. Generalmente a esta estructura se le conoce como DOWHILE (hacer mientras) y su representación se muestra a continuación: V
  • 12. F Donde P es predicado y A es el modulo controlado. Se debe comprender claramente que un rectángulo, que representa un modulo en un diagrama, siempre puede ser sustituido por cualquiera de las tres estructuras de control descritas anteriormente; por ejemplo, veamos el diagrama siguiente: En él, la línea punteada limita un rectángulo que contiene una estructura, que a su vez controla dos módulos X y Y. La estructura limitada por la línea punteada es sustituida por una función quedando de la siguiente forma: V F Es decir, una función sustituye a una estructura lógica de control o viceversa. Otras Estructuras Lógicas De Control. Aunque todos los programas pueden ser escritos utilizando solamente las tres estructuras de control descritas anteriormente, es algunas veces, conveniente utilizar algunas estructuras adicionales; a continuación se hará una descripción de esas formas lógicas de control diferentes a las ya definidas: El Dountil: La estructuras de iteración básica es el DOWHILE, pero existe una estructura que es muy parecida a ella y que a veces es usada, dependiendo del proceso que se esté tratando de representar y de las características apropiadas en el lenguaje con el cual se está trabajando, esta forma de control es la que se llama DOUNTIL, cuya representación gráfica en forma de diagrama de flujo se muestra a continuación: V Donde A es el modulo controlado y P el predicado. La diferencia entre el DOWHILE y el DOUNTIL es que en el primero el predicado es probado antes de ejecutar la función, si el predicado es falso la función no es ejecutada; mientras que en el segundo, el predicado es probado después de ejecutar la función, o sea, que la función siempre será ejecutada al menos una vez, independientemente si el predicado es cierto o falso. La estructura CASE: Algunas veces resulta de gran ayuda, desde el punto de vista de eficiencias y facilidad de lectura de un programa, tener alguna forma de expresar una desviación del flujo de control hacia múltiples procesos en función del resultado de la evaluación de un predicado; usualmente, a la estructura de control que satisface el requerimiento anterior, se le denomina la estructura CASE. Por ejemplo, si es necesario ejecutar una de cien rutinas
  • 13. diferentes en función del valor de un código de 2 dígitos, podemos representar este proceso mediante 100 estructuras IF, sin embargo el sentido común nos induce a pensar que no hay razón para adherirnos rígidamente a las tres estructuras básicas de control y en lugar de 100 IF usaríamos la estructura CASE. Esta estructura utiliza el valor de una variable para determinar cual, de varias rutinas, será ejecutada. La representación gráfica de esta estructura de control se muestra a continuación: En cada lenguaje será necesario establecer cuáles son las instrucciones que, en forma conveniente y eficiente, realizan funciones establecidas por las diferentes estructuras lógicas de control. Etiquetas E Instrucciones GOTO. Ocasionalmente se habla de la programación estructurada como una técnica de programación que no utiliza GOTO (instrucción de desvío del flujo de control en forma incondicional); si bien es cierto que un programa bien estructurado tiene, o bien ninguna o muy pocas instrucciones GOTO, asumiendo que estamos empleando un lenguaje de programación adecuado, la ausencia de instrucciones GOTO puede ser mal interpretada. Es conveniente que aclaremos este aspecto en este momento. Un programa bien estructurado gana una parte importante de su fácil comprensión del hecho que puede ser leído en forma secuencial sin desvíos en el flujo de control desde una parte del programa a otra. Esta característica es consecuencia de usar exclusivamente las estructuras lógicas de control estándar (el GOTO no es una de ellas), esta secuencialidad o lectura TOPDOWN es beneficiosa debido a que hay un límite definido para muchos detalles que la mente humana puede abarcar de una vez. Se hace relativamente fácil y rápida la comprensión de la tarea que realiza una instrucción si su función puede ser entendida en términos de unas pocas instrucciones mas, físicamente contiguas y delimitadas. El problema con la instrucción GOTO es que generalmente aleja al programa realizado de los propósitos descritos y en casos extremos puede hacer que un programa sea esencialmente incomprensible. No se requieren esfuerzos especiales para eliminar de un programa los GOTO, los cuales han sido, algunas veces, malentendidos como enemigos de la programación estructurada, existen buenas y fundadas razones para no querer usarlos pero no se necesita que se realice un trabajo arduo para eliminarlo; ellos no aparecerán, en general, cuando se utilicen las estructuras lógicas de control, descritas anteriormente. Naturalmente, si escogemos para programar un lenguaje de computación que no posea las estructuras lógicas de control fundamentales, entonces, tendremos que simularlas y seguramente ello implicara el uso de la instrucción GOTO; pero este uso puede hacerse en forma cuidadosamente controlada.
  • 14. Existen situaciones poco comunes en las cuales el uso de GOTO puede tener ventajas comparado con otras maneras de expresar un proceso; estos casos son excepcionales y usualmente no ocurren en la programación realizada diariamente. Se deben analizar cuidadosamente las consecuencias de emplear el GOTO, antes de su uso.