Palabras clave: Programación estructurada
, Estructuras de control
1. Programación imperativa y modular
Hasta ahora hemos estudiado dos paradigmas de programación.
La programación imperativa es un paradigma de programación que describe la programación en términos del estado del programa y sentencias que cambian dicho estado. Los programas imperativos son un conjunto de instrucciones que le indican al ordenador cómo realizar una tarea. Los lenguajes imperativos de alto nivel, como Processing, usan variables así como un conjunto de operadores y funciones para su manipulación. En la programación imperativa todas las variables son globales, pues pueden utilizarse en cualquier parte del programa.
La programación modular abstrae un conjunto de instrucciones como una función que define el programador. El programador debe declarar y definir las funciones en términos de las instrucciones imperativas del lenguaje. Una función construida por el programador puede invocarse como una instrucción más del lenguaje. Las funciones se comunican entre sí a través de sus parámetros. Por contra a la programación imperativa no está bien visto trabajar con variables globales. Todas las variables deben ser locales a las funciones donde se declaran.
2. Programación estructurada
La programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa utilizando únicamente subrutinas o funciones y tres estructuras: secuencial, condicional y repetitiva.
A finales de los años 1970 surgió una nueva forma de programar que daba lugar a programas más legibles, fiables y eficientes. Se basaban en el teorema del programa estructurado, propuesto por Böhm-Jacopini, que demuestra que todo programa puede escribirse utilizando únicamente las tres estructuras de control siguientes:
-
Estructura secuencial. Está formada por una secuencia de llamadas a instrucciones del lenguaje o funciones del programador.
-
Estructura condicional. Es aquella que ejecuta una estructura si se cumple una condición booleana.
-
Estructura iterativa con condición. Es aquella que ejecuta una estructura una y otra vez si se cumple una condición booleana.
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.
En la programación estructurada los 3 tipos de estructuras mencionadas no aparecen de forma aislada sino que unas aparecen "en el interior" (o anidada) de cualquiera de ellas. Por ejemplo, lo normal es que una estructura secuencia aparezca "anidada" en una condicional o una iterativa, o es muy usual que una iterativa aparezca "anidada" en otra iterativa.
Estas estructuras y sus "anidamientos" no son nuevos para tí.
Ya se introdujo este aspecto al hablar de "Resolución de Problemas con Ordenador"
y se daban algunas recomendaciones sobre cómo s debe expresar un algoritmo,
donde destacamos:
se deberán de utilizar verbos en infinitivo, las expresiones si-entonces
y mientas-hacer
. Estas expresiones se corresponden con la estructras de control secuencial, condicional e iterativa, respectivamente.
El siguiente algoritmo tiene como propósito sumar los números pares que hay entre dos números dados por el usuario, así como multiplicar los números impares que haya entre ambos números. El algoritmo se ha diseñado utilizando únicamente las 3 estructuras indicadas.
Este algoritmo empieza por una estructura secuencial. La estructura está formada por las líneas 1-4. En Processing esta estructura se traduce en un secuencias de instrucciones de declaraciones del tipo de dato de un serie de variables y su correspondiente instrucción de asignación.
En la línea 5 tenemos una estructura repetitiva. Repite las líneas a-d una y otra vez mientras que actual
sea menor o igual que m
. La estructura repetitiva contiene a su vez a 4 estructuras: Una secuencial (formada por la línea a), dos estructuras condicionales (las líneas b y c) y una secuencial (la formada por la línea d). A su vez cada una de las estructuras condicionales contiene una estructura secuencial formada por una única instrucción: líneas b.i para hacer una suma y c.i para realizar un producto.
El algoritmo finaliza con otra estructura secuencial formada por dos líneas. En Processing estas estructura se traduce en dos instrucciones println()
.
Cuando una estructura está en el "interior" de otra estrcutura se dice que está anidada. |
3. Repaso
-
Existen muchos tipos de paradigmas de programación.
-
El paradigma imperativo se basa en una secuencia de instrucciones.
-
El paradigma modular se basa en la construcción de funciones del programador.
-
El paradigma estructurado se basa en diseñar los algoritmos utilizando únicamente 3 estructuras básicas, llamadas estructuras de control.
-
Tu objetivo es realizar programación estructurada y modular.