Upload
others
View
17
Download
0
Embed Size (px)
Citation preview
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
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
¿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
¿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
• 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
• 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
¿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
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
• 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
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
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
• 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
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
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
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
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
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
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
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
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