Diferencia entre revisiones de «Programación estructurada»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Mel 23 (discusión · contribs.)
m Revertidos los cambios de 189.170.64.18 (disc.) a la última edición de JamsJF
Línea 113: Línea 113:
PRINT a ; b
PRINT a ; b
</source>
</source>
es un proceeso latre


== Ventajas de la programación estructurada ==
== Ventajas de la programación estructurada ==

Revisión del 18:33 23 ago 2010

La programación estructurada es una forma de escribir programas de ordenador (programación de computadora) de manera 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.

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

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.

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.

Bibliografia

  1. García-Bermejo Giner, José Rafael (2 de 2008). Programación estructurada en C (1 edición). Pearson Prentice Hall. ISBN 978-84-8322-423-6. 
  2. Valls Ferrán, José María; Camacho Fernández, David (9 de 2004). Programación estructurada y algoritmos en Pascal (1 edición). Pearson Alhambra. ISBN 978-84-205-4246-1. 
  3. Programación estructurada II (1 ed. 4 imp. edición). Enseñanza Técnica y Sistemas, S.A. 6 de 2000. ISBN 978-84-85838-90-5. 
  4. Pseudocódigos y programación estructurada (1 edición). Centro Técnico Europeo de Enseñanzas Profesionales. 2 de 1997. ISBN 978-84-8199-065-2. 
  5. Sánchez Andrés, María Ángeles (5 de 1996). Programación estructurada y fundamentos de programación (1 edición). McGraw-Hill / Interamericana de España, S.A. ISBN 978-84-481-0557-0. 

Véase también

Enlaces externos

INTRO.pdf: Programación Estructurada
Tutoriales: Programación Estructurada
Lenguajes de programacion.com: Programación Estructurada
Monografias.com: Programación Estructurada