domingo, 31 de julio de 2011

PRINCIPIOS FUNDAMENTALES DE LA PROGRAMACION ESTRUCTURADA

   En la programación Estructurada los programadores deben profundizar mas que lo usual al procederá realizar el diseño original del programa, pero el resultado final es más fácil de leer y comprender, el objetivo de u programador profesional al escribir programas de una manera estructurada, es realizarlos utilizando solamente un numero de bifurcaciones de control estandarizados.      

     La programación estructurada es una técnica para escribir programas (programación de computadora) de manera clara. Para ello se utilizan ú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.

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

 Estructura secuencial

Una estructura de programa es secuencial si las instrucciones se ejecutan una tras otra, a modo de secuencia lineal, es decir que una instrucción no se ejecuta hasta que finaliza la anterior, ni se bifurca el flujo del programa.
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º Se guarda una copia del valor de x en auxiliar.
  • 2º Se guarda el valor de y en x, perdiendo su valor anterior, pero se mantiene una copia del contenido en auxiliar.
  • 3º Se copia a y el valor de auxiliar, que es el valor inicial de x.
  • El resultado es el intercambio de los valores entre x e y, en tres operaciones secuenciales.

 Estructura selectiva o de selección

La estructura selectiva permite que la ejecución del programa se bifurque a una instrucción (o conjunto) u otra/s, según un criterio o condición lógica establecida, sólo uno de los caminos en la bifurcación será el tomado para ejecutarse.
Ejemplo:
   IF a > b THEN
      PRINT a ; " es mayor que " ; b
   ELSE
      PRINT a ; " no es mayor que " ; b
   END IF
La instrucción selectiva anterior puede presentar uno de dos mensajes: a es mayor que b o a no es mayor que b, según el resultado de la comparación entre a y b; si el resultado de a > b es verdadero, se presenta el primer mensaje, si es falso se exterioriza el segundo. Las palabras clave IF, THEN, ELSE, y END IF; constituyen la propia estructura de la instrucción condicional (palabra reservadas), proporcionada por el lenguaje, el usuario no debe utilizar sus nombres salvo para este fin. El caso ejemplo se ha codificado en BASIC.
  • IF señala el comienzo de la instrucción condicional, y se espera que después siga la condición lógica de control de la instrucción.
  • THEN señala el fin de la condición, y después estará la instrucción a ejecutar si la condición es verdadera.
  • ELSE es opcional, le sigue la instrucción que se ejecutará si la condición es falsa.
  • END IF indica el final de la estructura, luego de ésta el programa seguirá su curso.
Ampliando un poco el ejemplo anterior, con estructuras anidadas:
   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 permite considerar situaciones en las que se tiene más de dos alternativas. En este caso se ha considerado tres, pero hay situaciones en las que deben considerarse más casos y para ellos se puede repetir las veces que sea necesario la opcional ELSEIF.

 Estructura iterativa

Un bucle iterativo o iteración de una secuencia de instrucciones, hace que se repita su ejecución mientras se cumpla una condición, el número de iteraciones normalmente está determinado por el cambio en la condición dentro del mismo bucle, aunque puede ser forzado o explícito por otra condición.
Ejemplo:
   a= 0
   b= 7
   DO WHILE b > a
      PRINT a
      a= a + 1
   LOOP
Esta instrucción tiene tres palabras reservadas WHILE, DO y LOOP.
  • DO WHILE: señala el comienzo del bucle ("haga mientras") y después de estas palabras se espera la condición lógica de repetición, si la condición es verdadera pasa el control al cuerpo del bucle, en caso contrario el flujo salta directamente al final de la estructura, saliendo de la misma.
  • LOOP: señala el final del cuerpo de la estructura de bucle.
El bucle mientras, se repite mientras la condición sea verdadera, esta condición se comprueba o chequea antes de ingresar al cuerpo del bucle, por lo que el mismo puede que no se ejecute nunca (cuando la condición es falsa desde un principio) o bien que se repita tantas veces como resulte y mientras la condición sea cierta.
En el ejemplo se tienen definidas dos variables a y b, que al iniciarse el bucle contienen los valores a=0 y b=7.
La condición del bucle es b > a.
Si a=0 y b=7. la condición es verdadera, en el cuerpo del bucle se escribe el valor de a en pantalla y luego se incrementa esa variable en una unidad. Entonces pasa a ser a=1 y b=7.
... (se repite la secuencia)
...
Cuando a=6 y b=7. la condición sigue siendo verdadera, se escribe el valor de a en pantalla y se incrementa en una unidad.
Cuando se llega a que a=7 y b=7. Entonces la condición ya resulta falsa y la instrucción WHILE finaliza, saliendo por LOOP.
La salida por pantalla de este ejemplo es 0 1 2 3 4 5 6, y se iteró 7 veces.
El lenguaje utilizado en el ejemplo (BASIC), además de tener otras del tipo iterativas, permite utilizar la misma estructura indicada, pero de la siguiente forma:
   a= 0
   b= 7
   WHILE b > a
      PRINT a
      a= a + 1
   WEND

No hay comentarios:

Publicar un comentario