SlideShare una empresa de Scribd logo
1 de 13
El teorema del programa estructurado es un
resultado en la teoría de lenguajes de programación.
Establece que toda función computable puede ser
implementada en un lenguaje de programación que
combine sólo tres estructuras lógicas. Esas tres formas
(también llamadas estructuras de control)
específicamente son:
 1Secuencia: ejecución de
una instrucción tras otra.
 2Selección: ejecución de
una de dos instrucciones (o
conjuntos), según el valor de
una variable booleana.
 3Iteración: ejecución de una
instrucción (o conjunto)
mientras una variable
booleana sea 'verdadera'.
Esta estructura lógica
también se conoce como
ciclo o bucle.
 Este teorema demuestra que la instrucción GOTO no
es estrictamente necesaria y que para todo programa
que la utilice existe otro equivalente que no hace uso
de dicha instrucción.
 Los científicos de la computación usualmente
acreditan el teorema a un artículo de 1966 escrito por
Corrado Böhm y Giuseppe Jacopini. Sin embargo,
David Harel rastreó sus orígenes hasta la descripción
de 1946 de la arquitectura de von Neumann y el
teorema de la forma normal de Kleene.
 La demostración de Böhm-Jacopini describe cómo
construir diagramas de flujo estructurados a partir de
cualquier digrama de flujo, La demostración de Böhm-
Jacopini no esclareció la cuestión sobre cuándo convendría
usar programación estructurada para el desarrollo de
software, en parte porque la construcción ofuscaba el
código del programa en lugar de mejorarlo.
 Por otro lado, fue el punto de partida para iniciar el debate.
Edsger Dijkstra escribió una importante carta titulada "La
sentencia Go To considerada dañina" en el año 1968.
Posteriores estudios agregaron aproximaciones más
prácticas a la demostración de Böhm-Jacopini, que
mantenían o mejoraban la claridad del programa original.[1]
la idea central de la programación
estructurada es que las estructuras de
control deben tener un punto de
entrada y uno de salida ósea hay un
inicio y un fin perfectamente bien
definido de acuerdo al diagrama de
flujo que se planteó al concebir la
idea del programa.
La programación estructurada permite la escritura de
programas fáciles de leer y modificar. En un programa
estructurado el flujo lógico se gobierna por tres
estructuras de control básicas: secuenciales, repetitivas y
selectivas..
Se refiere a un conjunto de técnicas que han ido
evolucionando. Estas técnicas aumentan
considerablemente la productividad del programa
reduciendo el 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
que reducen los errores. Ésta incorpora entre otros
elementos: el diseño descendente, recursos abstractos y
estructuras básicas.
Orígenes de la programa ió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.
Ventajas de la programación
estructurada
 comparada con el modelo anterior (hoy llamado despectivamente código
espagueti).
 Los programas son más fáciles de entender, pueden ser leídos de forma
secuencial y no hay necesidad de hacer engorrosos seguimientos en saltos de
líneas (GOTO) dentro de los bloques de código para intentar entender la
lógica.
 La estructura de los programas es clara, puesto que las instrucciones están más
ligadas o relacionadas entre sí.
 Reducción del esfuerzo en las pruebas y depuración. El seguimiento de los
fallos o errores del programa ("debugging") se facilita debido a su estructura
más sencilla y comprensible, por lo que los errores se pueden detectar y corregir
más fácilmente.
 Reducción de los costos de mantenimiento. Análogamente a la depuración,
durante la fase de mantenimiento, modificar o extender los programas resulta
más fácil.
 Los programas son más sencillos y más rápidos de confeccionar.
 Se incrementa el rendimiento de los programadores, comparado con la forma
anterior que utiliza GOTO
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 puede 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).
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 programación
procedimentales desde entonces han incluido
características para fomentar la programación
estructurada y a veces deliberadamente omiten
características[4] en un esfuerzo para hacer más difícil
la programación no estructurada
Nuevos paradigmas
 Posterior a la programación estructurada se han creado
nuevos paradigmas tales como la programación
modular, la programación orientada a objetos,
programación por capas, etc, y el desarrollo de
entornos de programación que facilitan la
programación de grandes aplicaciones y sistemas.
Programación y diseño
estructurado
 En programación y diseño de algoritmos, el diseño
estructurado persigue elaborar algoritmos que
cumplan la propiedad de modularidad, para ello, dado
un problema que se pretende resolver mediante la
elaboración de un programa de ordenador, se busca
dividir dicho programa en módulos siguiendo los
principios de diseño de Descomposición por
refinamientos sucesivos, creación de una Jerarquía
modular y elaboración de módulos Independientes.

Más contenido relacionado

La actualidad más candente

Presentacion PseudocóDigo
Presentacion PseudocóDigoPresentacion PseudocóDigo
Presentacion PseudocóDigo
Marco Antonio
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
brobelo
 
Actividad 10: Reporte de polimorfismo, herencia & encapsulamiento
Actividad  10: Reporte de polimorfismo, herencia & encapsulamientoActividad  10: Reporte de polimorfismo, herencia & encapsulamiento
Actividad 10: Reporte de polimorfismo, herencia & encapsulamiento
grachika
 

La actualidad más candente (20)

Presentacion PseudocóDigo
Presentacion PseudocóDigoPresentacion PseudocóDigo
Presentacion PseudocóDigo
 
Curso html
Curso   htmlCurso   html
Curso html
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Lenguaje de programacion de visual basic
Lenguaje de programacion de visual basicLenguaje de programacion de visual basic
Lenguaje de programacion de visual basic
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Actividad 10: Reporte de polimorfismo, herencia & encapsulamiento
Actividad  10: Reporte de polimorfismo, herencia & encapsulamientoActividad  10: Reporte de polimorfismo, herencia & encapsulamiento
Actividad 10: Reporte de polimorfismo, herencia & encapsulamiento
 
Estructura de Lenguaje C++
Estructura de Lenguaje C++Estructura de Lenguaje C++
Estructura de Lenguaje C++
 
Pseint tutorial
Pseint tutorialPseint tutorial
Pseint tutorial
 
Pseudocódigo
PseudocódigoPseudocódigo
Pseudocódigo
 
Python (ejercicios)
Python (ejercicios)Python (ejercicios)
Python (ejercicios)
 
Programacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonProgramacion Orientada a Objetos en python
Programacion Orientada a Objetos en python
 
Pseint pseudocodigo
Pseint   pseudocodigoPseint   pseudocodigo
Pseint pseudocodigo
 
Funciones en php
Funciones en phpFunciones en php
Funciones en php
 
C and C++ functions
C and C++ functionsC and C++ functions
C and C++ functions
 
Gestion de formularios php
Gestion de formularios phpGestion de formularios php
Gestion de formularios php
 
Presentación Multimedia - Django
Presentación Multimedia - DjangoPresentación Multimedia - Django
Presentación Multimedia - Django
 
Algoritmos para c#
Algoritmos para c#Algoritmos para c#
Algoritmos para c#
 
Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01
 
Python programming
Python programmingPython programming
Python programming
 

Similar a Programacion estructurado (20)

Presentación1
Presentación1Presentación1
Presentación1
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion 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
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programación esctructurada2
Programación esctructurada2Programación esctructurada2
Programación esctructurada2
 
Programación esctructurada2
Programación esctructurada2Programación esctructurada2
Programación esctructurada2
 
Programación estructurada
Programación estructuradaProgramación estructurada
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
 
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
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 

Más de Agapito26

Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
Agapito26
 
Programacion estructurado
Programacion estructuradoProgramacion estructurado
Programacion estructurado
Agapito26
 

Más de Agapito26 (6)

Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 
Wpf
WpfWpf
Wpf
 
Wcf
WcfWcf
Wcf
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Programacion estructurado
Programacion estructuradoProgramacion estructurado
Programacion estructurado
 

Programacion estructurado

  • 1. El teorema del programa estructurado es un resultado en la teoría de lenguajes de programación. Establece que toda función computable puede ser implementada en un lenguaje de programación que combine sólo tres estructuras lógicas. Esas tres formas (también llamadas estructuras de control) específicamente son:
  • 2.  1Secuencia: ejecución de una instrucción tras otra.  2Selección: ejecución de una de dos instrucciones (o conjuntos), según el valor de una variable booleana.  3Iteración: ejecución de una instrucción (o conjunto) mientras una variable booleana sea 'verdadera'. Esta estructura lógica también se conoce como ciclo o bucle.
  • 3.  Este teorema demuestra que la instrucción GOTO no es estrictamente necesaria y que para todo programa que la utilice existe otro equivalente que no hace uso de dicha instrucción.  Los científicos de la computación usualmente acreditan el teorema a un artículo de 1966 escrito por Corrado Böhm y Giuseppe Jacopini. Sin embargo, David Harel rastreó sus orígenes hasta la descripción de 1946 de la arquitectura de von Neumann y el teorema de la forma normal de Kleene.
  • 4.  La demostración de Böhm-Jacopini describe cómo construir diagramas de flujo estructurados a partir de cualquier digrama de flujo, La demostración de Böhm- Jacopini no esclareció la cuestión sobre cuándo convendría usar programación estructurada para el desarrollo de software, en parte porque la construcción ofuscaba el código del programa en lugar de mejorarlo.  Por otro lado, fue el punto de partida para iniciar el debate. Edsger Dijkstra escribió una importante carta titulada "La sentencia Go To considerada dañina" en el año 1968. Posteriores estudios agregaron aproximaciones más prácticas a la demostración de Böhm-Jacopini, que mantenían o mejoraban la claridad del programa original.[1]
  • 5. la idea central de la programación estructurada es que las estructuras de control deben tener un punto de entrada y uno de salida ósea hay un inicio y un fin perfectamente bien definido de acuerdo al diagrama de flujo que se planteó al concebir la idea del programa.
  • 6. La programación estructurada permite la escritura de programas fáciles de leer y modificar. En un programa estructurado el flujo lógico se gobierna por tres estructuras de control básicas: secuenciales, repetitivas y selectivas.. Se refiere a un conjunto de técnicas que han ido evolucionando. Estas técnicas aumentan considerablemente la productividad del programa reduciendo el 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 que reducen los errores. Ésta incorpora entre otros elementos: el diseño descendente, recursos abstractos y estructuras básicas.
  • 7. Orígenes de la programa ió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.
  • 8. Ventajas de la programación estructurada  comparada con el modelo anterior (hoy llamado despectivamente código espagueti).  Los programas son más fáciles de entender, pueden ser leídos de forma secuencial y no hay necesidad de hacer engorrosos seguimientos en saltos de líneas (GOTO) dentro de los bloques de código para intentar entender la lógica.  La estructura de los programas es clara, puesto que las instrucciones están más ligadas o relacionadas entre sí.  Reducción del esfuerzo en las pruebas y depuración. El seguimiento de los fallos o errores del programa ("debugging") se facilita debido a su estructura más sencilla y comprensible, por lo que los errores se pueden detectar y corregir más fácilmente.  Reducción de los costos de mantenimiento. Análogamente a la depuración, durante la fase de mantenimiento, modificar o extender los programas resulta más fácil.  Los programas son más sencillos y más rápidos de confeccionar.  Se incrementa el rendimiento de los programadores, comparado con la forma anterior que utiliza GOTO
  • 9. 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 puede 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.
  • 11. 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 programación procedimentales desde entonces han incluido características para fomentar la programación estructurada y a veces deliberadamente omiten características[4] en un esfuerzo para hacer más difícil la programación no estructurada
  • 12. Nuevos paradigmas  Posterior a la programación estructurada se han creado nuevos paradigmas tales como la programación modular, la programación orientada a objetos, programación por capas, etc, y el desarrollo de entornos de programación que facilitan la programación de grandes aplicaciones y sistemas.
  • 13. Programación y diseño estructurado  En programación y diseño de algoritmos, el diseño estructurado persigue elaborar algoritmos que cumplan la propiedad de modularidad, para ello, dado un problema que se pretende resolver mediante la elaboración de un programa de ordenador, se busca dividir dicho programa en módulos siguiendo los principios de diseño de Descomposición por refinamientos sucesivos, creación de una Jerarquía modular y elaboración de módulos Independientes.