+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
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiEdbhawGTLT5W_BosjpAHQf2Cl6SblSbMHJpkiaFlDhTSCQbZIIeG4YzFrK2gskvf8IObEGGv1EWwgAwpNTyIN2uoSb9x60oAU5HNYCfGbJmlhHjhw7DsHuZrrmhYxPwGEg8DuKrt9mDR/s320/diagramaflujo.jpg)
ESCRITURA DEL if
if expresion logica
then
sentencia A
else
sentencia B
DIAGRAMA DE SINTAXIS
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJBkgajjjfb6yltmoJDG2M1ZVtAgPgJIjGaOdBc-8yS9q-B2d_ub6y2pVWODmFWrzg9Yus1NBi4enk_eA9GKkBNHF4JBaRo5rph9KUPpXm3qQ-kzWIuCLp-pQPkUDCZ_y7pFJGlh3aLW1h/s320/sintaxis.jpg)
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 .
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.