LENGUAJES DE PROGRAMACIÓN  
 
 
FreePascal

PASCAL CON FREE PASCAL

 
 

 

3.5. Operadores de relación.

 

anterior :: indice :: siguiente

 

Operan con Números enteros, carácter, enumerado, subrango, y el tipo de dato string. Pero siempre dan como resultado un valor Booleano. Estos operadores nos permiten comprobar las relaciones de igualdad o desigualdad entre los tipos de datos antes mencionados. Los operadores son:

 

Operador Nombre Ejemplo Resultado
< Menor que. c:=a < b ; Da como resultado verdadero, si la variable de la derecha es mayor.
> Mayor que. c:=a > b; Da como resultado verdadero, si la variable de la izquierda es mayor.
<> Desigualdad. c:=a <> b; Da como resultado verdadero, si ambos son distintos.
= igual. c:=a = b; Da como resultado verdadero, si las dos variables son iguales.
<= Menor o igual que. c:=a <= b; Da como resultado verdadero, si la variable de la derecha es mayor o igual.
>= Mayor o igual que. c:=a >= b; Da como resultado verdadero, si la variable de la izquierda es mayor o igual.

 

A continuación un ejemplo:

 

 
{$codepage UTF8}

TYPE
  Numeros=(Cero,Uno,Dos,Tres,Cuatro);

VAR
  N1,N2:Numeros;
  a:Boolean;
  j,h:longint;
  c1,c2:char;

BEGIN
  Writeln('ENTEROS');
  Write('j = ');
  Readln(j);
  Write('h = ');
  Readln(h);
  Writeln('j > h es  : ',j>h);
  Writeln('j < h es  : ',j<h);
  Writeln('j <> h es : ',j<>h);
  Writeln('j <= h es : ',j<=h);  
  Writeln('j >= h es : ',j>=h);
  Writeln('j = h es  : ',j=h);
  Writeln('CARACTER');
  Write('c1 = ');
  Readln(c1);
  Write('c2 = ');
  Readln(c2);
  Writeln('c1 > c2 es  : ',c1>c2);
  Writeln('c1 < c2 es  : ',c1<c2);
  Writeln('c1 <> c2 es : ',c1<>c2);
  Writeln('c1 <= c2 es : ',c1<=c2);
  Writeln('c1 >= c2 es : ',c1>=c2);
  Writeln('c1 = c2 es  : ',c1=c2);
  Writeln('ENUMERADOS');
  N1:=Dos;
  N2:=Cuatro;
  Writeln('N1 = Dos');
  Writeln('N2 = Cuatro');
  Writeln('N1 > N2 es  : ',N1>N2);
  Writeln('N1 < N2 es  : ',N1<N2);
  Writeln('N1 <> N2 es : ',N1<>N2);
  Writeln('N1 <= N2 es : ',N1<=N2);
  Writeln('N1 >= N2 es : ',N1>=N2);
  Writeln('N1 = N2 es  : ',N1=N2);
  Readln
END.
 

Código fuente 7: Ejemplo del uso de los operadores relacionales.

 

Cuando comprobamos las relaciones de igualdad o desigualdad, sólo se deben usar estas comprobaciones con variables del mismo tipo de dato (Enteros, carácter, enumerado, subrango, string).

Al comparar variables con tipos de datos string, las variables se comparan de izquierda a derecha, revisando el código que tiene cada carácter, hasta que se encuentren dos caracteres diferentes. Por ejemplo, si la variable cad1 tiene asignado el nombre antonio, y la variable cad2 tiene asignado el nombre alberto, la comparación se hará con los caracteres n y l, con los resultados que se muestran a continuación:

 

cad1:='antonio' cad2:='alberto'
110 es el código de la letra n, y 108 es el código de la letra l, para las codificaciones de caracteres ASCII y UTF8.
Operación Resultado
cad1 < cad2 Da como resultado falso, porque 110 no es menor que 108.
cad1 > cad2 Da como resultado verdadero, porque 110 es mayor que 108.
cad1 <> cad2 Da como resultado verdadero, porque 110 es diferente a 108.
cad1 = cad2 Da como resultado falso, porque 110 no es igual a 108.
cad1 <= cad2 Da como resultado falso, porque 110 no es menor que 108.
cad1 >= cad2 Da como resultado verdadero, porque 110 es mayor que 108.

 

Ejemplo:

 

 
{$codepage UTF8}

VAR
  cad1,cad2:string;

BEGIN
  cad1:='antonio';
  cad2:='alberto';
  Writeln('cad1:=',cad1);
  Writeln('cad2:=',cad2);
  Writeln('ordinal n = ',ord('n'));
  Writeln('ordinal n = ',ord('l'));
  Writeln('cad1<cad2=',cad1<cad2);
  Writeln('cad1>cad2=',cad1>cad2);
  Writeln('cad1<>cad2=',cad1<>cad2);
  Writeln('cad1=cad2=',cad1=cad2);
  Writeln('cad1<=cad2=',cad1<=cad2);
  Writeln('cad1>=cad2=',cad1>=cad2); 
  Readln
END.
 

Código fuente 8: Ejemplo del uso de los operadores relacionales con el tipo de dato string.

 

Si deseamos comparar determinados caracteres directamente, cómo los siguientes caracteres en UTF8: ② y ⑨, entonces el compilador convertirá los caracteres de UTF8 a BMP, y evaluará sus códigos correspondientes en BMP. Ejemplo:

 

 
{$codepage UTF8} 

BEGIN   
  Writeln(Ord('②'));
  Writeln(Ord('⑨')); 
  Writeln('②'<'⑨');
  Writeln('②'>'⑨');
  Writeln('②'<>'⑨');
  Writeln('②'='⑨');
  Writeln('②'<='⑨');
  Writeln('②'>='⑨');
  Readln
END.
 

Código fuente 9: Ejemplo del uso de los operadores relacionales con el tipo de dato string.

 

Debe tener en cuenta que si se asignan estos caracteres a una variable de tipo char entonces lo que se podría evaluar serían signos de interrogación, y lo que se asigne a una variable de tipo char dependerá mucho del administrador de caracteres y la codificación de caracteres que esté usando el Sistema operativo.

 

anterior :: indice :: siguiente

 

 
 

  SUGERENCIAS