jueves, 10 de febrero de 2011

CLASE 5

LA SENTENCIA IF

+DADO QUE LAS EXPRESIONES LOGICAS TOMAN EL VALOR VERDDERO O FALSO, ES NECESARIO UNA SENTENCIA DE CONTROL QUE DIRIJA A LA COMPUTADORA PARA EJECUTAR UNA SENTENCIA SI LA EXPRESION ES VERDADERO YOTRA EN CASO DE SER FALSA. PARA ELLO EXISTE EN PASCAL LA SENTENCIA DE CONTROL CONDICIONAL if-then-else, O ESTRUCTURA SELECTIVA.

DIAGRAMA DE FLUJO

ESCRITURA DEL if

if expresion logica

then

sentencia A

else

sentencia B

DIAGRAMA DE SINTAXIS


EJEMPLO:

program numeros;

var

numero: real;

begin

writeln (´introduzca un numero´);

read (numero); . end.

if numero > 0.0

then

writeln (´el numero intro es positivo´);

else

writeln (´el numero intro es positivo´);

write (´esto se imprime si numero es positivo o negativo´);

end.

NOTA: SI SOLO SE DESEA QUE UNA DETERMINADA ACCION SOLO SE EJECUTE SI UNA CONDICION ES VERDADERA Y NO REALIZAR NINGUNA OTRA SI LA CONDISION ES FALSA, SE OMITE DEL FORMATO LA CLAUSULA else.

SENTENCIAS COMPUESTAS

+EN LUGAR DE REALIZAR SOLO UNA ACCION, CUANDO SE CUMPLA O NO UNA CONDICION, SE PODRA DESEAR REALIZAR VARIAS ACCIONES. ESTO SE HACE MEDIANTE SENTENCIAS COMPUESTAS.

+UNA SENTENCIA COMPUESTA ES UN CONJUNTO DE SENTENCIAS SEPARADAS POR PUNTOS Y COMAS Y ENCERRADAS POR LAS PALABRAS begin y end.

+FORMATO DE UNA SENTENCIA COMPUESTA:

begin

sentencia 1;

sentencia 2;

sentencia n

end (no punto)


begin

Read (Numero);

N:= N+1;

Write ( ´El numero es´, Numero :4 );

Bandera=1.

end

EJEMPLO:

program Numeros;

var

x:integer;

begin

Read (x);

if x > o

then

begin

WriteLn (x,´es positivo´);

WriteLn (´en esta ocasion´, x, ´es positivo´)

end

else

begin

WriteLn ( x, ´es negativo´);

WriteLn (´o bien es cero´)

end;

end.

LA SENTENCIA VACÍA

+PASCAL TIENE UNA SENTENCIA QUE NO HACE ABSOLUTAMENTE NADA, ESTA ES LA SENTENCIA NULA O VACÍA.LOS PUNTOS Y COMAS SEPARAN SENTENCIAS EN PASCAL.

+SUPONGAMOS QUE SE ESCRIBE PUNTO Y COMA AL FINAL DE LA SENTENCIA DE ASIGNACIÓN .


begin

ReadLn (x);

Total:= Total + x; {sentencia vacía}

end

+COMO END NO ES UNA SENTENCIA, EL NUEVO PUNTO Y COMA NO APARECE COMO SEPARACIÓN DE DOS SENTENCIAS. EL COMPILADOR DECIDE QUE HAY UNA SENTENCIA ENTRE LA SENTENCIA DE ASIGNACIÓN Y END, ES DECIR, LA SENTENCIA NULA QUE NO PRODUZCA NINGUNA ACCIÓN NI CAMBIO.

SENTENCIAS if ANIDADAS

+LA SENTENCIA QUE SIGUE A LA PALABRA RESERVADA THEN O ELSE PUEDE SER CUALQUIERA, INCLUSO OTRA SENTENCIA if-then-else. CUANDO UNA O AMBAS BIFORCACIONES DE UNA SENTENCIA if-then-else CONTIENEN TAMBIÉN UNA SENTENCIA if-then-else, SE DICE QUE DICHAS SENTENCIAS if ESTÁN ANIDADAS Y AL PROCESO ANIDAMIENTO. EL ANIDAMIENTO SE PUEDE UTILIZAR PARA CONSTRUIR DECISIONES CON DIFERENTES ALTERNATIVAS.

Modelo 1

if CONDICIÓN 1

then

sentencias x

else

if condición 2

then

sentencias y

else

sentencias z

Modelo 2

if CONDICIÓN 1

then

sentencias x

else if condición 2

then

sentencias y

else if...

EJEMPLO: SE DESEA HACER UN PROGRAMA QUE LEA UN NUMERO Y DETERMINE SI ÉSTE ES POSITIVO, NEGATIVO, O CERO.

program IdentificadordeNumeros;

var

Numero: integer;

begin

WriteLn (´Introduzca un numero´);

read (Numero);

if (Numero <>

then

WriteLn (´El numero´, Numero,´es positivo´)

else

if (Numero <>

then

WriteLn (´El numero´, Numero,´es negativo´)

else

WriteLn (´El numero es cero´);

end.


EJEMPLO 2:

DADOS TRES NUMEROS ENTEROS, DETERMINAR CUÁL ES EL MAYOR (LOS TRES NUMEROS SE SUPONEN DISTINTOS)

program MayorNumero ;

var

Num1, Num2, Num3: integer; {valores de entrada}

El mayor : integer; {valores de salida}

begin

{ introducción de los datos en memoria}

WriteLn (´Introduzca tres numeros enteros´);

ReadLn ( Num1,Num2,Num3);

{determinar el numero mayor}

if Num1 > Num2

then

if Num1 > Num3

then

El mayor := Num1

else

El mayor := Num3

else

if Num2 > Num3

then

El mayor := Num 2

else

El mayor := Num3;

{visualizacion del numero mayor}

WriteLn (´El numero mayor es : ´, El mayor es : ´, El mayor);

end.





No hay comentarios:

Publicar un comentario