lunes, 25 de noviembre de 2013

Programación Estructurada

La Programación Estructurada.

La programación estructurada se refiere al control de ejecución. El control de su ejecución es una de las cuestiones más importantes que hay que tener en cuenta al construir un programa en un lenguaje de alto nivel. La regla general es que las instrucciones se ejecuten sucesivamente una tras otra, pero diversas partes del programa se ejecutan o no dependiendo de que se cumpla alguna condición. Además, hay instrucciones (los bucles) que deben ejecutarse varias veces, ya sea en número fijo o hasta que se cumpla una condición determinada.

Sin embargo, algunos lenguajes de programación más antiguos (como Fortran) se apoyaban en una sola instrucción para modificar la secuencia de ejecución de las instrucciones mediante una transferencia incondicional de su control (con la instrucción goto, del inglés "go to", que significa "ir a"). Pero estas transferencias arbitrarias del control de ejecución hacen los programas muy poco legibles y difíciles de comprender. A finales de los años sesenta, surgió una nueva forma de programar que reduce a la mínima expresión el uso de la instrucción goto y la sustituye por otras más compresibles.

Teoremas

Esta forma de programar se basa en un famoso teorema, desarrollado por Edsger Dijks-
tra, que demuestra que todo programa puede escribirse utilizando únicamente las tres
estructuras básicas de control siguientes:

Secuencia: el bloque secuencial de instrucciones, instrucciones ejecutadas sucesivamente, una detrás de otra.

•  Selección: la instrucción condicional con doble alternativa, de la forma "if condición then instrucción -1 else
instrucción-2".

  Iteración: el bucle condicional "while condición do instrucción", que ejecuta la instrucción repetidamente mientras la condición se cumpla.

Los programas que utilizan sólo estas tres instrucciones de control básicas o sus variantes (como los bucles for, repeat o la instrucción condicional switch-case), pero no la instrucción goto, se llaman estructurados. Ésta es la noción clásica de lo que se entiende por programación estructurada (llamada también programación sin goto) que hasta la aparición de la programación orientada a objetos se convirtió en la forma de programar más extendida. Esta última se enfoca hacia la reducción de la cantidad de estructuras de control para reemplazarlas por otros elementos que hacen uso del concepto de polimorfismo. Aun así los programadores toda vía utilizan las estructuras de control ( if, while, for, etc.) para implementar sus algoritmos porque en muchos casos es la forma más natural de hacerlo.

Una característica importante en un programa estructurado es que puede ser leído en secuencia, desde el comienzo hasta el final sin perder la continuidad de la tarea que cumple el programa, lo contrario de lo que ocurre con otros estilos de programación. Este hecho es importante debido a que es mucho más fácil comprender completamente el trabajo que realiza una función determinada si todas las instrucciones que influyen en su acción están físicamente contiguas y encerradas por un bloque. La facilidad de lectura, de comienzo a fin, es una consecuencia de utilizar solamente tres estructuras de control, y de eliminar la instrucción de transferencia de control goto.



Estructuras de Control 



ESTRUCTURAS DE DECISIÓN

 Estas permiten seleccionar la próxima sentencia a ejecutarse sobre la base de una decisión expresión lógica o variable lógica).

Los tipos de estructuras de decisión que podemos encontrar son:

● Simples
● Dobles
● Múltiples

ESTRUCTURAS DE DECISION SIMPLE

La estructura de decisión más sencilla, es la llamada simple, Si-Entonces Su efecto es el de ejecutar una determinada acción cuando se cumpla una cierta condición y en caso contrario seguir el orden secuencial.
La selección Si-Entonces evalúa la condición y de acuerdo a los resultados:
  • Si es verdadero, ejecuta una o varias opciones
  • Si es falsa, entonces no hace nada y sigue la ejecución normal del programa

EJEMPLO:
  ● En Pseudocódigo

Si (condición) entonces             Si (A>B) entonces                              Si (hora <12)
entonces
sentencias...                       Escribir ('El mayor es A')                   Escribir ('buenos dias')

fin si                                             Fin si                                                   Fin si



 

ESTRUCTURAS DE DECISION DOBLES

Permiten ejecutar dos conjuntos de sentencias alternativos en función del resultado de la evaluación de una condición lógica.


Si el resultado es “cierto” se ejecuta un grupo de sentencias.
Si el resultado es “falso”se ejecuta otro grupo de sentencias.


EJEMPLO
  • En Pseudocodigo
Si ( decisión ) entonces            Si (edad < 18) entonces


    Sentencias....                           Escribir ('no puede votar')

Si no                                       Sino

    Sentencias....                           Escribir ('Si puede Votar')

fin si                                        Fin si


  Ejemplo Programación Estructurada de Decisión



ESTRUCTURAS DE CONTROL ITERACTIVAS

Las estructuras de control iterativas o de repetición, inician o repiten un bloque de instrucciones si se cumple una condición o mientras se cumple una condición.

Do-While

Artículo principal: Bucle do
Mientras la condición sea verdadera, se ejecutarán las sentencias del bloque.
   DO WHILE (Condición)
      (Bloque de sentencias)
   LOOP
que también puede expresarse:
   WHILE (Condición)
      (Bloque de sentencias)
   WEND

Do-Until

Se ejecuta el bloque de sentencias, hasta que la condición sea verdadera
   DO
      (Bloque de sentencias)
   LOOP UNTIL (Condición)

For-Next
Artículo principal: Bucle for
La sentencia For da lugar a un lazo o bucle, y permite ejecutar un conjunto de sentencias cierto número de veces.
  • Primero, se evalúan las expresiones 1 y 2, dando como resultado dos números.
  • La variable del bucle recorrerá los valores desde el número dado por la expresión 1 hasta el número dado por la expresión 2.
  • El bloque de sentencias se ejecutará en cada uno de los valores que tome la variable del bucle.
   FOR (Variable) = (Expresión1) TO (Expresión2) STEP (Salto)
      (Bloque de sentencias)
   NEXT

Ejemplo Programación Estructurada de Iteractivas



No hay comentarios:

Publicar un comentario