Programación estructurada en Pascal

La programación estructurada es el tipo de programación al que pertenecen Pascal, C, Phyton… Basicamente dicta que el lenguaje se resume en 3 tipos de instrucciones:
Sentencias: una instrucción sencilla
Decisiones (selectores): se toma un camino u otro de acuerdo a una condición que puede ser verdadera o falsa (IF…THEN…ELSE…, CASE)
Bucles (iteradores): repetición de sentencias (WHILE, FOR, REPEAT)
Una sentencia normal y corriente en Pascal puede ser
writeln ('hola mundo');
Si quisiésemos decidir si mostrarla o no de acuerdo a, por ejemplo, que una variable i valiese 1 usaríamos el IF:
if i = 1 then writeln ('hola mundo') else ('adios mundo');
Si quisiésemos repetir la instruccion un numero determinado de veces (por ejemplo tres):
for i := 1 to 3 do writeln ('hola mundo');
Otras posibilidades…
Si en vez de decidir entre dos caminos (IF…THEN…ELSE…) nuestra intención es distinguir varios, disponemos del CASE.
case i of
      1: writeln ('hola mundo');
      2: writeln ('adios mundo');
      3: ...
      ...
      otherwise: writeln ('cualquier otro caso no contemplado antes');
end;

En el caso de los bucles, las tres posibilidades se distinguen porque:
REPEAT: comienza ejecutándose. Tras la ejecución, comprueba si se da la condición para terminar. Si es falsa, vuelve a ejecutar las instrucciones que contenga. Si es verdadera, acaba el bucle y el programa continua a partir de ese punto. Por eso se ejecuta siempre al menos una vez.
WHILE: antes de ejecutarse por primera vez evalúa la condición. Si es verdadera, ejecuta las instrucciones de su interior y luego vuelve al principio si la condicion sigue siendo verdadera o continua a partir de ese punto si es falsa. Puede que no se ejecute nunca.
FOR: es el bucle más seguro de todos pues no conduce a la creación de bucles infinitos. Utiliza una variable de control (en el ejemplo anterior i) a la que asigna un valor inicial. Luego toma todos los valores intermedios hasta llegar a un valor final establecido. Para cada uno de esos pasos, ejecuta las instrucciones que contiene. Se ejecuta siempre al menos una vez y la variable se avanza de forma automática.
Si tomamos el ejemplo puesto antes, vemos cómo se puede escribir con cualquiera de los bucles:
Con FOR:
for i := 1 to 3 do writeln ('hola mundo');
Con WHILE:
i := 1;
while i < = 3 do begin
      writeln ('hola mundo');
      i := i+1;
end;

Con REPEAT:
i := 1;
REPEAT
      writeln ('hola mundo');
      i := i +1;
UNTIL i > 3;

Además el bucle FOR permite usar una secuencia decreciente (útil para ordenar arrays, por poner un ejemplo):
for i:= 3 downto 1 do writeln ('hola mundo');

He subido un pequeño programa de ejemplo (if_for.pas.tar.gz) para ver en funcionamiento la sentencia IF y los diferentes bucles. Se compila con:
gpc --extended-pascal if_for.pas

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s