16 Programación estructurada - eafranco.com

20
Estructuras de datos (Prof. Edgardo A. Franco) 1 Tema 16: Programación estructurada M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom

Transcript of 16 Programación estructurada - eafranco.com

Page 1: 16 Programación estructurada - eafranco.com

Estructuras de datos (Prof. Edgardo A. Franco)

1

Tema 16: Programación estructurada

M. en C. Edgardo Adrián Franco Martínez http://[email protected]@edfrancom edgardoadrianfrancom

Page 2: 16 Programación estructurada - eafranco.com

Contenido• ¿Qué es programación?• ¿Qué es el código fuente?

• ¿Qué es un programa computacional?

• Lenguaje de programación• Primeras programaciones

• Paradigma de programación

• Programación estructurada• Paradigma de la programación estructurada

• Objetivo de la Programación Estructurada• Código espagueti

• Teorema de la programación estructurada

• Lenguajes de programación estructurada

• Pascal 2

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 3: 16 Programación estructurada - eafranco.com

¿Qué es programación?• La programación es el proceso de diseñar,

codificar, depurar y mantener el código fuente deprogramas computacionales.

3

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 4: 16 Programación estructurada - eafranco.com

¿Qué es el código fuente?• El código fuente de un programa computacional (osoftware) es un conjunto de líneas de texto que son lasinstrucciones que debe seguir la computadora, escritas enun lenguaje de programación para ejecutar dichoprograma.• Por tanto, en el código fuente de un programa está descrito por

completo su funcionamiento.

4

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 5: 16 Programación estructurada - eafranco.com

• El proceso de escribir código requiere frecuentementeconocimientos en varias áreas distintas, además deldominio del lenguaje a utilizar, algoritmos especializados ylógica formal.

5

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 6: 16 Programación estructurada - eafranco.com

• El código fuente es escrito en un lenguaje deprogramación. El propósito de la programaciónes crear programas que exhiban uncomportamiento deseado.

6

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 7: 16 Programación estructurada - eafranco.com

¿Qué es un programa computacional?

• Un programa computacional es un conjunto deinstrucciones que una vez ejecutadas realizarán una ovarias tareas en una computadora.

• Al conjunto general de programas, se le denominasoftware, que se refiere al equipamiento lógico o soportelógico de una computadora digital.

7

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 8: 16 Programación estructurada - eafranco.com

Lenguaje de programación• Un lenguaje de programación es un idioma artificial

diseñado para expresar computaciones que pueden serllevadas a cabo por un equipo computacional.• Un lenguaje de programación se usa para crear programas que

controlen el comportamiento físico y lógico de una máquina, estopermite crear soluciones a problemas reales e interaccioneshumano-maquina.

8

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

https://en.wikipedia.org/wiki/List_of_programming_languages

http://spectrum.ieee.org/static/interactive-the-top-programming-languages-2016

Page 9: 16 Programación estructurada - eafranco.com

• Un lenguaje de programación está formado de unconjunto de símbolos y reglas sintácticas y semánticasque definen su estructura y el significado de sus elementosy expresiones.• Sintáctica (reglas que gobiernan la combinatoria de los símbolos y laformación de unidades superiores a estos)

• Semántica (aspectos del significado, sentido o interpretación delsignificado de un determinado elemento, símbolo, palabra, expresióno representación formal)

9

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Lenguaje

Sintaxis

Semántica

Page 10: 16 Programación estructurada - eafranco.com

Primeras programaciones• En los inicios de la programación de computadoras(segunda mitad de la década de 1950), el nacimiento delos primeros lenguajes de alto nivel como Fortran y Cobolapoyaban en la codificación de soluciones a problemascomputacionales, pero la gran mayoría de las veces eldiseño y la implementación de la solución quedabadeterminados según criterios personales y de cadaprogramador.

10

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 11: 16 Programación estructurada - eafranco.com

Paradigma de programación• Un paradigma de programación es una propuesta

tecnológica que es adoptada por una comunidad deprogramadores cuyo núcleo central es incuestionable encuanto a que unívocamente trata de resolver uno o variosproblemas claramente delimitados.

• Un paradigma de programación representa un enfoqueparticular o filosofía para la construcción del software.

• Es decir un paradigma de programación establece comoprogramar la solución a un problema de cierta manera enun código fuente bajo un lenguaje de programación.

11

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 12: 16 Programación estructurada - eafranco.com

• La programación puede seguir muchos enfoques, oparadigmas, es decir, diversas maneras de formular laresolución de un problema dado. Algunos de los principalesparadigmas de la programación son:• Programación imperativa

• Programación funcional

• Programación declarativa

• Programación estructurada (A style of imperative programming with more logical program

structure and structured program theorem of the 1966)

• Programación modular (Derived from structured programming, based on the concept of modular

programming or the procedure call.)

• Programación orientada a objetos

• Programación orientada a aspectos

12

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 13: 16 Programación estructurada - eafranco.com

Programación estructurada• Surgió en la década de 1960, particularmente del

trabajo de Böhm y Jacopini,1 y una famosa carta,«La sentencia goto, considerada perjudicial», deEdsger Dijkstra en 1968 — y fue reforzadoteóricamente por el teorema del programaestructurado.• Es una forma de escribir programas de computadora

(paradigma de programación).

• Los principios que rigen este paradigma deprogramación son el uso de únicamente tresestructuras de control: secuencia, selección eiteración

13

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 14: 16 Programación estructurada - eafranco.com

Paradigma de la programación estructurada• El paradigma del la programación estructurada es un resultado en la

teoría de lenguajes de programación.

• Establece a grandes rasgos que toda función computable puede serimplementada en un lenguaje de programación que combinesubrutinas en únicamente tres formas. Esas tres formas (tambiénllamadas estructuras de control) son:

1. Ejecutar una subrutina y luego otra subrutina (secuencia)

2. Ejecutar una de dos subrutinas, dependiendo del valor de una variablebooleana (selección)

3. Ejecutar una subrutina mientras una variable booleana sea 'verdadera'(iteración, ciclo o bucle)

• Los científicos de la computación usualmente acreditan el teorema a un artículo de 1966escrito por Corrado Böhm y Giuseppe Jacopini. Sin embargo, David Harel rastreó susorígenes hasta la descripción de 1946 de la arquitectura de von Neumann y el teoremade la forma normal de Kleene. 14

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 15: 16 Programación estructurada - eafranco.com

Objetivo de la Programación Estructurada• La programación estructurada es un paradigma de

programación orientado a mejorar la claridad, calidad ytiempo de desarrollo de un programa de computadora,utilizando únicamente subrutinas y tres estructuras decontrol: secuencia, selección (if y switch) e iteración(bucles for y while), considerando innecesario ycontraproducente el uso de la instrucción de transferenciaincondicional (GOTO), que podría conducir a "códigoespagueti", que es mucho más difícil de seguir y demantener, y era la causa de muchos errores deprogramación.

15

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 16: 16 Programación estructurada - eafranco.com

Código Espagueti • El código espagueti es un término peyorativo para los

programas de computación que tienen una estructura decontrol de flujo compleja e incomprensible. Su nombrederiva del hecho que este tipo de código pareceasemejarse a un plato de espaguetis, es decir, un montónde hilos intrincados y anudados.

• Tradicionalmente suele asociarse este estilo deprogramación con lenguajes básicos y antiguos, donde elflujo se controlaba mediante sentencias de control muyprimitivas como goto y utilizando números de línea, asícomo programas que contienen muchos puntos de rupturabreak o salidas return. 16

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 17: 16 Programación estructurada - eafranco.com

17

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Código Espagueti

Page 18: 16 Programación estructurada - eafranco.com

Teorema de la programación estructurada• En 1966 los matemáticos Corrado Böhm y Giuseppe

Jacopini demostraron que: "Un programa propio puede serescrito utilizando solamente 3 tipos de estructuras decontrol (Secuenciales, selectivas e iterativas)".

• A su vez un programa propio:• Posee un solo punto de entrada y uno de salida o fin.

• Existen caminos desde la entrada hasta la salida que sepueden seguir y que pasan por todas partes del programa.

• Todas las instrucciones son ejecutables (sin código muerto) y noexisten lazos o bucles infinitos (sin fin).

18

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 19: 16 Programación estructurada - eafranco.com

Lenguajes de programación estructurada• Un lenguaje de programación estructurada es aquel que establece

una sintaxis y semántica propia para expresar computaciones, y sebasa en el teorema de la "programación estructurada", ofreciendoinstrucciones para expresar las tres estructuras de control delteorema.

19

SECUENCIAIndica que las instrucciones de unprograma se ejecutan unadespués de la otra, en el mismoorden en el cual aparecen en elprograma. Se representagráficamente como una cajadespués de otra, ambas con unasola entrada y una única salida

SELECCIÓN También conocida como la estructuraSI-CIERTO-FALSO, plantea la selecciónentre dos alternativas con base en elresultado de la evaluación de unacondición o predicado; equivale a lainstrucción IF de todos los lenguajesde programación.

ITERACIÓN También llamada la estructuraHACER-MIENTRAS-QUE,corresponde a la ejecuciónrepetida de una instrucciónmientras que se cumple unadeterminada condición.

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 20: 16 Programación estructurada - eafranco.com

Pascal• Pascal es un lenguaje creado por el profesor suizo Niklaus

Wirth entre los años 1968 y 1969 y publicado en 1970. Suobjetivo era crear un lenguaje que facilitara el aprendizajede programación a sus alumnos, utilizando la programaciónestructurada y estructuración de datos. Sin embargo con eltiempo su utilización excedió el ámbito académico paraconvertirse en una herramienta para la creación deaplicaciones de todo tipo.• Pascal se caracteriza por ser un lenguaje de programación

estructurado fuertemente tipado. Esto implica que:• El código está dividido en porciones fácilmente legibles llamadas funciones o

procedimientos. De esta forma Pascal facilita la utilización de la programaciónestructurada en oposición al antiguo estilo de programación monolítica.

• El tipo de dato de todas las variables debe ser declarado previamente paraque su uso quede habilitado. 20

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

16

Pro

gram

ació

n e

stru

ctu

rad

aP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez