UNIDAD 5: ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS
5.1 Instrucciones de decisión en Turbo Pascal:
Son estructuras de control condicional que permiten llevar a cabo una acción, si una condición (expresión lógica) dada tiene un valor específico (verdadero o falso). Existen dos tipos de condicionales; la condicional simple y la condicional compuesta.
- Estructura condicional simple:
program SimpleConditional;
var
money: Double;
begin
Write ('Enter money: '); ReadLn (money);
if money > 3000 then
begin
Write ('You have a lot of money!');
end;
end.
Es indispensable que las instrucciones a ejecutar en caso que la condición sea verdadera estén encerradas entre las palabras claves "begin" y "end", con ellas marcamos el comienzo y el fin del conjunto de instrucciones que se ejecutan si la condición se cumple.
- Estructura condicional compuesta:
Cuando se presenta la elección tenemo la opción de realizar una actividad u otra. Es decir, si se cumple la condición o no, tendremos lineas de código por ejecutar. Lo más importante que hay que tener en cuenta es que se realizan las instrucciones de la rama del verdadero o del falso, pero nunca se realizan ambas instrucciones. Ejemplo:
program CompoundConditional;
var
num1, num2 : Integer;
begin
Write ('Enter first value: '); ReadLn (num1);
Write ('Enter second value: '); ReadLn (num2);
if num1 > num2 then
begin
Write (num1);
end
else
begin
Write (num2);
end;
end.
Es igual que la estructura condicional simple salvo que aparece la palabra clave "else" y posteriormente un bloque "begin/end" con una o varias instrucciones. Si la condición del "if" es verdadera se ejecuta el bloque begin y end que aparece después del then, en caso que la condición resulte falsa se ejecuta la instrucción o bloque de instrucciones que indicamos después del else.
Después de la palabra clave "then" no debe haber punto y coma. Tampoco disponemos un punto y coma antes de la palabra clave "else".
Después de la palabra clave "then" no debe haber punto y coma. Tampoco disponemos un punto y coma antes de la palabra clave "else".
Operadores:
En una condición deben disponerse únicamente variables, valores constantes y operadores relacionales. Aquí los operadores relacionales:
< (menor)
>= (mayor o igual)
<= (menor o igual)
= (igual)
<> (distinto)
5.2 Instrucciones de repetición en Turbo Pascal:
En muchas ocasiones, podemos ver situaciones de la vida real en donde las mismas acciones se realizan repetidas veces; por ejemplo, un operario de una fábrica de partes mecánicas repetirá varias veces el mismo proceso de corte y mecanizado de cada pieza que elabora hasta que completa toda su orden de producción. Así mismo, ocurre con la mayoría de programas, los cuales requieren que una o más instrucciones se repitan un determinado número de veces hasta completar una tarea específica.
Tomemos como ejemplo el programa a continuación, en el cual se repiten varias veces las mismas instrucciones; ya que dicho programa solicita cinco veces un número y luego muestra al final la suma total y el valor promedio:
uses
Crt;
var
num1, num2, num3, num4, num5: INTEGER;
sum: REAL;
average: REAL;
begin
CLRSCR;
WRITE ('Digite un número: ');READLN (Num1);
WRITE ('Digite un número: '); READLN (Num2);
WRITE ('Digite un número: '); READLN (Num3);
WRITE ('Digite un número: '); READLN (Num4);
WRITE ('Digite un número: '); READLN (Num5);
sum:= num1 + num2 + num3 + num4 + num5;
avarage := sum / 5; WRITELN ('total sum: ', sum: 0:2);
WRITELN ('Avarage: ', avarage: 0:2);
READKEY;
end.
La escritura de este programa resulta demasiado tediosa, ya que se debe escribir cinco veces el mismo mensaje y la misma sentencia de lectura; empeora más aun, sí hay que repetir muchísimas veces las mismas sentencias. Para hacer más sencillos este tipo de programas, podemos utilizar las estructuras o instrucciones repetitivas que nos brinda el Lenguaje Pascal. Mediante cada una de las estructuras que veremos a continuación, daremos una solución más práctica al programa del ejemplo anterior.
- Estructura repetitiva FOR... TO/DOWN
Esta estructura o sentencia permite ejecutar un bucle repetitivo de instrucciones, a medida que va modificando automáticamente el valor una variable de control; el cual se detiene cuando dicha variable llega a un valor máximo (o mínimo) especificado. La variable de control se debe establecer con un valor inicial y un valor final, los cuales deben ser del mismo tipo ordinal. La estructura For presenta dos variantes, una es en modo ascendente y la otra es en modo descendente, tal como se describe a continuación:
En el modo ascendente, se utiliza la palabra To cuando se requiere que la variable de control se incremente gradualmente hasta un valor máximo; en ese caso, a medida que se ejecuta el bucle se va incrementando el valor la variable de control. Cuando el valor de esta variable es mayor que el valor final, se da por terminada la ejecución del bucle. La sintaxis para este modo es:
FOR [VariableControl] := [ValorInicial] TO [ValorFinal] DO
En el modo ascendente, se utiliza la palabra To cuando se requiere que la variable de control se incremente gradualmente hasta un valor máximo; en ese caso, a medida que se ejecuta el bucle se va incrementando el valor la variable de control. Cuando el valor de esta variable es mayor que el valor final, se da por terminada la ejecución del bucle. La sintaxis para este modo es:
FOR [VariableControl] := [ValorInicial] TO [ValorFinal] DO
BEGIN
Instrucción 1
Instrucción 2
Instrucción N
END;
El modo descendente es opuesto al modo ascendente; en este caso, se utiliza la palabra DownTo cuando se requiera que la variable de control disminuya su valor gradualmente hasta un valor mínimo. La sintaxis para este modo es:
El modo descendente es opuesto al modo ascendente; en este caso, se utiliza la palabra DownTo cuando se requiera que la variable de control disminuya su valor gradualmente hasta un valor mínimo. La sintaxis para este modo es:
FOR [VariableControl] := [ValorInicial] DOWNTO [ValorFinal] DO
BEGIN
Instrucción 1
Instrucción 2
Instrucción N
END;
Hay tres cosas muy importantes que se debe tener en cuenta; la primera, que las sentencias dentro del bucle no deben modificar la variable de control; la segunda, que la comprobación de la variable de control se realiza antes de ejecutarse la sentencia For, por tanto, es posible que el bucle no se ejecute sí no se establece correctamente los valores inicial y final de la variable de control; y la tercera, que al igual que otras estructuras de control, si el ciclo For contiene solamente una instrucción pueden omitirse las palabras delimitadoras Begin y End.
- Estructura repetitiva WHILE... DO
La estructura o sentencia While... Do (que en español traduce, Mientras que... haga), permite ejecutar un bloque de instrucciones un número repetido de veces mientras se cumpla una condición establecida; aunque, también se puede hacer que trabaje de manera similar a la sentencia For.
En una sentencia While primero se evalúa la expresión que controla el ciclo y después se ejecutan sus instrucciones. Si ésta contiene más de una instrucción, deberán delimitarse entre las palabras Begin y End, en caso contrario pueden omitirse. La sintaxis de esta estructura es la siguiente:
WHILE (Expresión) DO
BEGIN
Instrucción 1
Instrucción 2
Instrucción N
END;
Donde: Expresión es la proposición lógica que representa la condición que se desea evaluar. Sí el valor de la expresión es True (Verdadero, en español), el ciclo continúa su ejecución. Es importante tener en cuenta, que las variables de la expresión se deben modificar durante el ciclo para que este pueda finalizar en algún momento dado, de lo contrario el ciclo se tornará infinito.
- Estructura repetitiva REPEAT... UNTIL
La estructura o sentencia Repeat… Until (que en español traduce, Repetir... Hasta que) actúa de manera similar al ciclo While; con la diferencia de, que aquí primero se ejecutan las instrucciones y después se evalúa la expresión que controla el ciclo. Esta instrucción no necesita las palabras delimitadoras Begin y End, aunque no genera ningún problema si estas se colocan. La sintaxis de esta estructura es como sigue:
REPEAT
Instrucción 1
Instrucción 2
Instrucción N
UNTIL (Expresión)
Donde: Expresión es la proposición lógica que representa la condición que se desea evaluar. A diferencia del ciclo While, sí el valor de la expresión es True (Verdadero, en español), el ciclo detiene su ejecución.
Comentarios
Publicar un comentario