Programación estructurada


Programación estructurada

Programación estructurada

La programación estructurada es una forma de escribir programas de ordenador (programación de computadora) de forma clara. Para ello utiliza únicamente tres estructuras: secuencia, selección e iteración; siendo innecesario el uso de la instrucción o instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION, EXIT SUB o múltiples RETURN).

Hoy en día las aplicaciones informáticas son mucho más ambiciosas que las necesidades de programación existentes en los años 1960, principalmente debido a las aplicaciones gráficas, por lo que las técnicas de programación estructurada no son suficientes. Ello ha llevado al desarrollo de nuevas técnicas, tales como la programación orientada a objetos y el desarrollo de entornos de programación que facilitan la programación de grandes aplicaciones.

Contenido

Orígenes de la programación estructurada

A finales de los años 1960 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 comprensión posterior.

El teorema del programa estructurado, demostrado 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.

Estructura secuencial

Una estructura de programa es secuencial si se ejecutan una tras otra a modo de secuencia, es decir que una instrucción no se ejecuta hasta que finaliza la anterior.

Ejemplo:

   INPUT x
   INPUT y
   auxiliar= x
   x= y
   y= auxiliar
   PRINT x
   PRINT y
  • Esta secuencia de instrucciones permuta los valores de x e y, con ayuda de una variable auxiliar, intermedia.
  • 1º Guardamos una copia del valor de x en auxiliar.
  • 2º Guardamos el valor de y en x, se pierde el valor anterior de x pero no importa porque tenemos una copia en auxiliar.
  • 3º Guardamos en y el valor de auxiliar, que es el valor inicial de x.
  • El resultado es el intercambio de los valores de x e y, en tres operaciones secuenciales.

Estructura selectiva o de selección

La estructura selectiva permite la realización de una instrucción u otra según un criterio, solo una de estas instrucciones se ejecutara.

Ejemplo:

   IF a > b THEN
      PRINT a ; "es mayor que" ; b
   ELSE
      PRINT a ; "no es mayor que" ; b
   END IF

Esta instrucción selectiva puede presentar dos mensajes, uno a es mayor que b, y el otro a no es mayor que b, solo uno de ellos será presentado, según el resultado de la comparación de a y b, si el resultado de a > b es cierto, se presenta el primer mensaje, si es falso el segundo, las palabras IF, THEN, ELSE, END IF; son propias de la instrucción (palabra reservadas) que tienen un significado en el lenguaje, sirven de separadores, y el usuario no debe utilizarlas salvo para este fin.

  • IF señala el comienzo de la instrucción condicional, y se espera que después esté la condición de control de la instrucción.
  • THEN señala el fin de la condición, y después estará la instrucción a realizar si la condición es cierta.
  • ELSE separa la instrucción que se ejecutará si la condición es cierta de la que se ejecutará si es falsa.
  • END IF indica que la instrucción condicional finaliza y el programa seguirá su curso.

Ampliemos un poco el ejemplo anterior:

   IF a > b THEN
      PRINT a ; "es mayor que" ; b
   ELSEIF a < b THEN
      PRINT a ; "es menor que" ; b
   ELSE
      PRINT a ; "es igual que" ; b
   END IF

Este ejemplo nos permite considerar situaciones en las que tenemos más de dos alternativas. En este caso hemos considerado tres, pero hay situaciones en las que deben considerarse más casos y para ellos se puede repetir las veces que queramos la parte ELSEIF.

Estructura iterativa

Un bucle iterativo o iteración de una secuencia de instrucciones, hace que se repitan mientras se cumpla una condición, en un principio el número de iteraciones no tiene porque estar determinado.

Ejemplo:

   a= 0
   b= 7
 
   WHILE b > a DO
      PRINT a
      a= a + 1
   WEND

Esta instrucción tiene tres palabras reservadas WHILE, DO y WEND.

  • WHILE: señala el comienzo del bucle y después de esta palabra se espera la condición de repetición, si la condición es cierta se pasa al cuerpo del bucle, si no al final de la instrucción mientras.
  • DO: señala el final de la condición, lo que esté después será el cuerpo del bucle.
  • WEND: señala el final del cuerpo del bucle y de la instrucción WHILE.

El bucle mientras, se repite mientras la condición sea cierta, esta condición se comprueba al principio por lo que el cuerpo del bucle puede que no se ejecute nunca, cuando la condición es falsa en un principio, o que se repita tantas veces como sea necesario, mientras la condición sea cierta.

En el ejemplo tenemos dos variables a y b que al iniciarse el bucle tienen los valores a=0 y b=7.

La condición del bucle es b > a.

Cuando a=0 y b=7. la condición es cierta, en el cuerpo del bucle se escribe el valor de a en pantalla y se incrementa a en una unidad. Entonces a=1 y b=7.
...
...
Cuando a=6 y b=7. la condición es cierta, se escribe el valor de a en pantalla y se incrementa en una unidad.
Resultando que a=7 y b=7. Entonces la condición es falsa y la instrucción WHILE finaliza.
La salida por pantalla de este ejemplo seria 0 1 2 3 4 5 6

Anidamiento

El cuerpo de cualquier estructura puede ser una instrucción simple u otra estructura, que a su vez puede anidar a otra.

Ejemplo:

   IF a > b THEN
      auxiliar= a
      a= b
      b= auxiliar
   ELSE
      REM nada
   END IF
   PRINT a ; b

Ventajas de la programación estructurada

Con la programación estructurada, elaborar programas de computador sigue siendo una labor que exige esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este estilo podemos obtener las siguientes ventajas:

1. Los programas son más fáciles de entender, ya que pueden ser leídos de forma secuencial, sin necesidad de hacer seguimiento a saltos de línea (GOTO) dentro de los bloques de código para entender la lógica.

2. La estructura del programa es clara, puesto que las instrucciones están más ligadas o relacionadas entre sí.

3. Reducción del esfuerzo en las pruebas. El seguimiento de los fallos o errores del programa ("debugging") se facilita debido a la estructura más visible, por lo que los errores se pueden detectar y corregir más fácilmente.

4. Reducción de los costos de mantenimiento de los programas.

5. Programas más sencillos y más rápidos (ya que es más fácil su optimización).

6. Los bloques de código son auto explicativos, lo que facilita la documentación.

7. Los GOTO se reservan para construir las instrucciones básicas. Aunque no se usan de forma directa, por estar prohibida su utilización, están incluidas implícitamente en las instrucciones de selección e iteración.

8. Un programa escrito de acuerdo a estos principios no solamente tendrá una mejor estructura sino también una excelente presentación.

9. La programación estructurada ofrece estos beneficios, pero no se la debe considerar como una panacea ya que el desarrollo de programas es, principalmente, una tarea de dedicación, esfuerzo y creatividad.

Inconvenientes de la programación estructurada

El principal inconveniente de este método de programación es que se obtiene un único bloque de programa, que cuando se hace demasiado grande puede resultar problemático su manejo; esto se resuelve empleando la programación modular, definiendo módulos interdependientes programados y compilados por separado (en realidad esto no es necesario, pero es recomendable para su mantenimiento y funcionalidad).

En realidad, cuando se programa hoy en día (inicios del siglo XXI) se suelen utilizar, tanto las técnicas de programación estructurada como las de programación modular, de forma conjunta y por lo tanto es posible que cuando uno haga referencia a la programación estructurada esté considerando también las técnicas de modularización.

Un método un poco más sofisticado es la programación por capas, en la que los módulos tienen una estructura jerárquica en la que se pueden definir funciones dentro de funciones o de procedimientos.

Véase también

Muchas veces, dentro de la Programación Estructurada se consideran las siguientes técnicas:

Obtenido de "Programaci%C3%B3n estructurada"

Wikimedia foundation. 2010.

Mira otros diccionarios:

  • Programación estructurada — Una de las cuestiones más importantes que hay que tener en cuenta al construir un programa en un lenguaje de alto nivel, es el control de su ejecución. Son raros los programas que constan de un conjunto de instrucciones que se ejecutan… …   Enciclopedia Universal

  • Programación — Saltar a navegación, búsqueda Libros acerca de programación. En informática, la programación es un proceso por el cual se escribe (en un lenguaje de programación), se prueba, se depura y se mantiene el código fuente de un …   Wikipedia Español

  • Programación dirigida por eventos — Saltar a navegación, búsqueda La programación dirigida por eventos es un paradigma de programación en el que tanto la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema o que ellos mismos… …   Wikipedia Español

  • Programación modular — Saltar a navegación, búsqueda La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable. Se presenta históricamente como una evolución de la …   Wikipedia Español

  • Programación orientada a objetos — La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo… …   Wikipedia Español

  • Programación — ► sustantivo femenino 1 Elaboración de un plan o proyecto, o distribución y ordenación de las partes que componen alguna actividad: ■ la programación del viaje resultó un desastre; realizó una plantilla en la que figuraba la programación de las… …   Enciclopedia Universal

  • Programación literaria — La programación literaria es un paradigma de programación propuesto por Donald Knuth como alternativa al popular paradigma de programación estructurada en la década de 1970.[1] El paradigma de programación literaria, tal y como lo concibió Knuth …   Wikipedia Español

  • Pascal (lenguaje de programación) — Para otros usos de este término, véase Pascal. Pascal Información general Paradigma imperativo (estructurado) Apareció en 1970 Diseñado po …   Wikipedia Español

  • Bucle (programación) — Un bucle o ciclo, en programación, es una sentencia que se realiza repetidas veces a un trozo aislado de código, hasta que la condición asignada a dicho bucle deje de cumplirse. Generalmente,un bucle es utilizado para hacer una acción repetida… …   Wikipedia Español

  • Lenguaje de programación Pascal — Saltar a navegación, búsqueda Pascal Paradigma: imperativo (estructurado) Apareció en: 1970 Diseñado por: Niklaus Wirth Implementaciones: Múltiples Dialectos …   Wikipedia Español