viernes, 2 de mayo de 2008

ALMACENAMIENTOS DE DATOS

2.2.1 Instrucciones de decisión:

La instrucción If...Then: Permite ejecutar distintos bloques de código dependiendo de cuál sea la evaluación de un determinado enunciado. Si la condición es verdadera, se ejecuta el código que se encuentra a continuación de la instrucción If...Then. Si la condición es falsa, se ejecuta el código siguiente a la instrucción Else (si existiera).

Sintaxis:

if {enunciado} then
begin
{bloque de código}
end;

o bien:

if {enunciado} then
begin
{bloque de código}
end
else
begin
{bloque de código}
end;


Nota: Si el bloque de código es de una sola instrucción, los comandos begin y end pueden ser omitidos.

Ejemplos con estructuras de decisión:
- Calcular el mayor dado 2 numeros.


program ejemploDecision1;
var
a, b: integer;

begin
a := 8;
b := 2;

if a > b then
begin
writeln('a es el mayor');
end;
end.


program ejemploDecision2;
var
a, b: integer;


begin
writeln('Ingrese un número');
readln(a);
writeln('Ingrese otro número');
readln(b);

if a > b then
begin
writeln(a,' es mayor que ',b);
end

else

begin
if a <>If anidados: Son los if q estan uno dentro de otro if, ver el siguiente ejemplo, el programa distingue si el usuario es un niño, un joven o un adulto de acuerdo a la edad.

program niño_joven_adulto;
var
a: integer;

begin
writeln('¿Cuál es tu edad?');
readln(a);

if a <>= 0) AND ( a <= 12) then begin writeln('Sos un niño'); end; if (a >= 13) AND (a <= 21) then begin writeln('Sos un joven'); end; if a >= 22 then
begin
writeln('Sos un adulto');
end;
end.


Estructura de decisión Case: La instrucción case nos permite tomar distintos caminos en el flujo del programa teniendo en cuenta el valor de una variable de tipo integer o char.

Sintaxis:

case {miVariable} of
{caso 1}:
begin
{bloque de código}
end;

{caso 2}:
begin
{bloque de código}
end;

else:{opcional}
begin
{bloque de código}
end;
end;

Ejemplo de case: hacer un prograna que escriba en palabras el número ingresado por el usuario. Si es más grande que diez escribe: MUY GRANDE

program numero;
var
a: integer;

begin
writeln('Ingrese un número del 1 al 10');
readln(a);

case a of
1: writeln('UNO');
2: writeln('DOS');
3: writeln('TRES');
4: writeln('CUATRO');
5: writeln('CINCO');
6: writeln('SEIS');
7: writeln('SIETE');
8: writeln('OCHO');
9: writeln('NUEVE');
10: writeln('DIEZ');

else
writeln('MUY GRANDE');
end;
end.

Instrucciones de repetición:

While...Do: La instrucción while ... do nos permite repetir un bloque de código mientras se cumpla una condición determinada. Dicha condición también es conocida como "guarda". La sintaxis es la siguiente:

while {enunciado} do
begin
{bloque de código}
end;

La estructura while...do chequea la condición antes de entrar al ciclo. Puede suceder que la condición siempre sea falsa con lo cual nunca se ejecute el bloque interno.

El siguiente ejemplo muestra el resultado es: ¡hola! ¡hola! ¡hola! usando while..... do

program RepeticionHola;
var
i : integer;
begin
i := 1;

while i <= 3 do begin writeln('¡hola!'); i := i + 1; end; end. Repeat...Until: La instrucción Repeat...Until es similar a la instrucción While. La diferencia entre ambas es que en las estructuras while, la condición se evalúa al principio del ciclo y en las estructuras repeat..until, al final. En las estructuras while, si la condición es falsa cuando comienza el ciclo, éste no se ejecuta nunca. Como en repeat...until la condición se evalúa al final, el ciclo se ejecutará por lo menos una vez.

sintaxis:

repeat
{bloque de código}

until {enunciado};

Después de cada repetición del ciclo se evalúa la condición. Si la condición es verdadera, el ciclo termina y se sale de él, ejecutándose la instrucción siguiente al ciclo. Si la condición es falsa, el cuerpo del ciclo no se vuelve a ejecutar. Notar que la lógica es inversa a la de la instrucción while. La sintaxis no requiere begin y end.

El siguiente ejemplo muestra el resultado es: ¡hola! ¡hola! ¡hola! usando repeat..... until:

program RepeticionHolaCase;
var
i: integer;

begin
i := 1;
repeat
writeln('¡hola!');
i := i + 1;
until i >= 3;
end.


Repetición For...Do: La instrucción For...Do se utiliza para repetir una determinada cantidad de veces un bloque de código. La instrucción va incrementando una variable determinada dentro del rango de valores especificado.

Sintaxis:

for MiVar:= valorInicial to valorFinal do
begin
{bloque de código}
end;

La variable miVar se irá incrementando desde valorInicial hasta valorFinal, y tomará todos los valores enteros de dicho rango.

Análogamente se puede obtener el resultado inverso (decrementar la variable) modificando levemente la sintaxis:

for MiVar:= valorInicial downto valorFinal do
begin
{bloque de código}
end;


program RepeticionFor;
var
i: integer;
begin

for i := 1 to 5 do
begin
writeln(i);
end;
end.
{el programa muestra en pantalla: 1
2
3
4
5}









No hay comentarios: