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

Maquinas de turing
Maquinas de turingMaquinas de turing
Maquinas de turingMitra Mejia
 
Diapositivas lenguaje ensamblador
Diapositivas lenguaje ensambladorDiapositivas lenguaje ensamblador
Diapositivas lenguaje ensambladorDANIELCUEVASUAREZ
 
Sintaxis de los algoritmos estructurados
Sintaxis de los algoritmos estructuradosSintaxis de los algoritmos estructurados
Sintaxis de los algoritmos estructuradosAriMendoza9
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2Luis Cigarroa
 
Instrucciones de control
Instrucciones de controlInstrucciones de control
Instrucciones de controlUNEXPO
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteJosé Antonio Sandoval Acosta
 
Estructuras Selectivas y Repetitivas en C++
Estructuras Selectivas y Repetitivas en C++Estructuras Selectivas y Repetitivas en C++
Estructuras Selectivas y Repetitivas en C++ncrmax
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria EstaticaJ M
 
Inteligencia artificial y las redes neuronales
Inteligencia artificial y las redes neuronalesInteligencia artificial y las redes neuronales
Inteligencia artificial y las redes neuronalesemily reyes lopez
 
Automatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosAutomatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosRosviannis Barreiro
 
Fundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicosFundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicosJosé Antonio Sandoval Acosta
 
La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.Emmanuel Colon
 
instruccion de control
instruccion de controlinstruccion de control
instruccion de controlluiseldrumer
 
Fundamentos de Programación - Unidad I: Diseño Algorítmico
Fundamentos de Programación - Unidad I: Diseño AlgorítmicoFundamentos de Programación - Unidad I: Diseño Algorítmico
Fundamentos de Programación - Unidad I: Diseño AlgorítmicoJosé Antonio Sandoval Acosta
 

La actualidad más candente (20)

Maquinas de turing
Maquinas de turingMaquinas de turing
Maquinas de turing
 
Diapositivas lenguaje ensamblador
Diapositivas lenguaje ensambladorDiapositivas lenguaje ensamblador
Diapositivas lenguaje ensamblador
 
Sintaxis de los algoritmos estructurados
Sintaxis de los algoritmos estructuradosSintaxis de los algoritmos estructurados
Sintaxis de los algoritmos estructurados
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2
 
Ley de amdahl
Ley de amdahlLey de amdahl
Ley de amdahl
 
Instrucciones de control
Instrucciones de controlInstrucciones de control
Instrucciones de control
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Estructuras Selectivas y Repetitivas en C++
Estructuras Selectivas y Repetitivas en C++Estructuras Selectivas y Repetitivas en C++
Estructuras Selectivas y Repetitivas en C++
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria Estatica
 
Diseño de bucles
Diseño de buclesDiseño de bucles
Diseño de bucles
 
Inteligencia artificial y las redes neuronales
Inteligencia artificial y las redes neuronalesInteligencia artificial y las redes neuronales
Inteligencia artificial y las redes neuronales
 
Parallel programming model
Parallel programming modelParallel programming model
Parallel programming model
 
Automatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosAutomatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No Deterministicos
 
Fundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicosFundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicos
 
Paradigmas de la programación
Paradigmas de la programación Paradigmas de la programación
Paradigmas de la programación
 
La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.
 
instruccion de control
instruccion de controlinstruccion de control
instruccion de control
 
Fundamentos de Programación - Unidad I: Diseño Algorítmico
Fundamentos de Programación - Unidad I: Diseño AlgorítmicoFundamentos de Programación - Unidad I: Diseño Algorítmico
Fundamentos de Programación - Unidad I: Diseño Algorítmico
 

Similar a Programacion estructurado

Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructuradaRvenchoCrb
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructuradaVivi Marquez
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructuradaVivi Marquez
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradaronnyme21
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructuradaAngel Ordoñez
 
PROGRAMACION ESTRUCTURADA
PROGRAMACION ESTRUCTURADAPROGRAMACION ESTRUCTURADA
PROGRAMACION ESTRUCTURADATeDy j Sanchez
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradaMarcelo Brocel
 
Programación esctructurada2
Programación esctructurada2Programación esctructurada2
Programación esctructurada2betshycastillo
 
Programación esctructurada2
Programación esctructurada2Programación esctructurada2
Programación esctructurada2betshycastillo
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradalindacajaperuiz
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradaEduardo Bazurto
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradaALfonsx Viejo
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructuradakcarbache
 
Programación Estructurada
Programación EstructuradaProgramación Estructurada
Programación EstructuradaCristian Frias
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradaHRS1993
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructuradaJonathan Abel
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructuradaMabyta Mora
 

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 objetosAgapito26
 
Programacion estructurado
Programacion estructuradoProgramacion estructurado
Programacion estructuradoAgapito26
 

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.