ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Programación estructurada.


Enviado por   •  17 de Noviembre de 2016  •  Apuntes  •  3.612 Palabras (15 Páginas)  •  272 Visitas

Página 1 de 15

Tema 4.1 Programación estructurada

A finales de los años sesenta 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: la programación estructurada.

La programación estructurada es un modelo de programación que propone que todo programa puede escribirse utilizando únicamente las tres estructuras de control siguientes:

  • Secuencial.
  • Instrucción condicional.
  • Iteración, repetición o bucle de instrucciones.

Utilizando solamente estas tres estructuras se puede hacer cualquier programa informático.

Las ventajas que ofrece este modelo de programación son las siguientes:

  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 las fallas (debugging) se facilita debido a la lógica 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.
  5. Programas más sencillos y más rápidos.
  6. Los bloques de código son autoexplicativos, lo que apoya a la documentación.

Bajo el concepto del programa almacenado que se propone en la arquitectura Von Neumann, un programa se ejecuta repitiendo los siguientes pasos:

  1. Se toma una instrucción.
  2. Se procesa y ejecuta.
  3. Se incrementa un puntero interno para acceder a la siguiente instrucción.
  4. Se vuelve al primer paso.

Esta estructura de flujo secuencial es la estructura “natural” de ejecución de las instrucciones de un programa: una tras otra en el mismo orden en que aparecen en un programa. Esto da idea de una ejecución puramente secuencial; sin embargo, la mayoría de los programas requieren condicionales y bucles.

Estructuras condicionales 
En ocasiones es necesario o no ejecutar ciertas instrucciones dependiendo del cumplimiento de cierta condición; esta necesidad se implementa mediante las estructuras condicionales.

Condicional si() entonces ..finsi 
Esta estructura tiene la siguiente forma:
Que tiene la siguiente semántica: i) se evalúa la condición; ii) si es verdadera, se ejecutan secuencialmente las instrucciones 
instruccion1 .. instrucciónn.Si la condición es falsa no se ejecuta ninguna instrucción y el flujo de ejecución continúa con la instrucción que sigue al finsi. La siguiente figura ilustra esta estructura condicional.

[pic 1]

Condicional si() entonces .. sino .. finsi 
Esta estructura tiene la siguiente forma:

Que tiene la siguiente semántica: i) se evalúa la condición; ii) si es verdadera, se ejecutan secuencialmente las instrucciones instrucciónV1 .. instrucciónVn, después de lo cual la ejecución continúa con la instrucción que sigue al finsi; iii) si la condición es falsa, se ejecutan secuencialmente las instrucciones instrucciónF1 .. instrucciónFn, después de lo cual la ejecución continúa con la instrucción que sigue al finsi. La siguiente figura ilustra esta estructura selectiva.

[pic 2]

Estructuras repetitivas 

Las estructuras repetitivas se utilizan para definir un bloque de instrucciones que, dependiendo de cierta condición, deben ejecutarse varias veces. Esta estructura de control tiene una condición asociada de cuyo valor lógico, Falso o Verdadero, depende que el bloque de instrucciones se repita una vez más o termine el ciclo. En este curso veremos dos de estas estructuras:

  • mientras() .... fin_mientras
  • repite .... hasta ()

Estructura cíclica mientras () .... fin_mientras
Esta estructura tiene la siguiente forma:
mientras(condición)
    Instruc1
      :
    Instrucn
fin_mientras

Que tiene la siguiente semántica: i) se evalúa la condición; ii) si la condición es falsa, no se ejecuta nada y se salta a la instrucción siguiente al fin_mientras; iii) si la condición es verdadera, entonces se ejecuta una vez la secuencia de instrucciones Instruc1 .. Instrucn; iv) al final de la ejecución de esta secuencia se vuelve a evaluar la condición, como se muestra en la siguiente figura.

[pic 3]

Estructura repite ... hasta()
Es muy similar al mientras(); sin embargo, en esta estructura la condición se evalúa después de haber ejecutado una vez el bloque de instrucciones asociado. Esta estructura tiene la siguiente forma:

[pic 4]

Comparación entre mientras() y repite
En el ciclo mientras(), dado que la condición se evalúa antes de ejecutar el bloque de instrucciones, es posible que las instrucciones del ciclo no se ejecuten ni una sola vez.

En el repite, el bloque de instrucciones a repetir se ejecuta al menos una vez ya que la condición se evalúa al final del ciclo.


Programación estructurada. Disponible en:
http://es.wikipedia.org/wiki/Programaci%C3%B3n_estructurada

repite
    intruc1
      :
    instrucn
hasta(condición)

Que tiene la siguiente semántica: i) se ejecutan secuencialmente instruc1 .. instrucn; ii) se evalúa la condición; iii) si la condición es Verdadera, se ejecuta la instrucción que sigue al hasta(); iv) si la condición es Falsa, se vuelve a ejecutar el bloque de instrucciones. La siguiente figura ilustra esta estructura cíclica.

si(condición)
entonces 
    instrucciónV1
            :
    instrucciónVn
sino
    instrucciónF1
            :
    instrucciónFn
finsi
si(condición)
entonces 
   instrucción1
            :
   instrucciónn
finsi

Tema 4.2 Saltos incondicionales

Las instrucciones de salto incondicional ocasionan que el flujo de ejecución del programa se modifique incondicionalmente, de ahí su nombre. Los procesadores AVR manejan cuatro instrucciones de salto incondicional. Estas instrucciones se muestran en la siguiente tabla:

Mnenónico

Operandos

Descripción

Operación

rjmp

k

Salto relativo.

PC ← PC + k + 1

ijmp

Salto indirecto a (Z).

PC ← Z

rcall

k

Llamada relativa a subrutina.

PC ← PC + k + 1

icall

Llamada indirecta a subrutina en (Z).

PC ← Z

Instrucción rjmp

...

Descargar como (para miembros actualizados) txt (22 Kb) pdf (249 Kb) docx (875 Kb)
Leer 14 páginas más »
Disponible sólo en Clubensayos.com