'
Operan con Números enteros, Reales, 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:
Operadores de relación
A continuación un ejemplo:
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:
Si deseamos comparar determinados caracteres directamente, cómo los siguientes caracteres en UTF8: ② y ⑨, entonces el compilador convertirá los caracteres de UTF8 a UTF16, y evaluará sus códigos correspondientes en UTF16. Ejemplo:
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, esto dependerá mucho del administrador de caracteres y la codificación de caracteres que esté usando el Sistema operativo.
Al comparar números reales se debe tener mucho cuidado, por ejemplo veamos el siguiente programa y el resultado que se obtiene:
Como podemos observar, la comparación con 1/3, no es igual al valor almacenado en la variable a. Que sucede, la razón esta en como se almacenan los números reales. Primero debemos observar que se compara la variable a con el valor 1/3, pero este 1/3 se interpreta por el compilador como un número de tipo extended, que es un tipo de dato real de mayor precisión, y la fracción almacenada en la variable a es de menor precisión, porque es un tipo de dato double, haciendo que la comparación sea falsa. Dicho de otro modo es como comparar 0.33 con 0.3333, o 0.33333 con 0.333333333333, en donde obviamente el que puede interpretar o almacenar la mayor cantidad de números decimales será siempre el mayor.