Los operadores relacionales son símbolos que se usan para comparar dos valores. Si el resultado de la comparación es correcto la expresión considerada es verdadera, en caso contrario es falsa. Por ejemplo, 8>4 (ocho mayor que cuatro) es verdadera, se representa por el valor true del tipo básico boolean, en cambio, 8<4 (ocho menor que cuatro) es falsa, false.
También denominados operadores binarios lógicos y de comparación, se utilizan para comprobar la veracidad o falsedad de determinadas propuestas de relación (en realidad se trata respuestas a preguntas). Las expresiones que los contienen se denominan expresiones relacionales. Aceptan diversos tipos de argumentos, y el resultado, que es la respuesta a la pregunta, es siempre del tipo cierto/falso, es decir, producen un resultado booleano.
Si la propuesta es cierta, el resultado es true (un valor distinto de cero), si es falsa false (cero). C++ dispone de los siguientes:
< Menor que> Mayor que<= Menor o igual que>= Mayor o igual que== Igual que (identidad)!= Desigual que (desigualdad)
§2 Sintaxis
expresión-relacional < shift-expresion
expresión-relacional > shift-expresion
expresión-relacional <= shift-expresion
expresión-relacional >= shift-expresion
expresión-de-igualdad == expresión-relacional
expresión-de-igualdad != expresión-relacional
Como puede verse, todos ellos son operadores binarios (utilizan dos operandos), de los cuales, dos de ellos son de igualdad: == y !=, y sirven para verificar la igualdad o desigualdad entre valores aritméticos o punteros. Estos dos operadores pueden comparar ciertos tipos de punteros, mientras que el resto de los operadores relacionales no pueden utilizarse con ellos.
Observe que los operadores == y != tienen una menor precedencia que el resto de los operadores relacionales < y >, <= y >=.El operador de desigualdad != tiene otra forma estándar de designación mediante la palabra clave not_eq
Cualquiera que sea el tipo de los operandos, por definición, un operador relacional, produce un bool (true o false) como resultado, aunque en determinadas circunstancias puede producirse una conversión automática de tipo a valores int (1 si la expresión es cierta y 0 si es falsa).
Ejemplo de comprobación:
#include <iostream.h>
int main() {
float f = 12.1, g = 12.2;
cout << "Tipo: " << typeid(f < g).name() << endl;
}
int main() {
float f = 12.1, g = 12.2;
cout << "Tipo: " << typeid(f < g).name() << endl;
}
En las expresiones relacionales E1 <operador> E2, los operandos deben cumplir alguna de las condiciones siguientes:
- E1 y E2 son tipos aritméticos.
- E1 y E2 son punteros a versiones cualificadas o no cualificadas de tipos compatibles.
- Uno de ellos es un puntero a un objeto, mientras que el otro es un puntero a una versión cualificada o no cualificada de void.
- Uno de los dos es un puntero, mientras que el otro es un puntero nulo constante.
FUNCIÒN "SI"
La estructura de la fución es:
=SI(Prueba_logica;Valor_si_verdadero;Valor_si_falso)
Veamos cómo funciona con un ejemplo:
Supongamos tenemos un cuadro como el de la derecha, con el detalle de Ejecutivos de venta, las ventas realizadas así como el objetivo y queremos ver si cumplió o no con él.
En esta instancia es donde realizamos la “función_lógica“.
Una función lógica es una comparación cuyo resultado es Verdadero o Falso.
En este caso necesitamos comparar si las ventas superan (o igualan) al objetivo. O, alternativamente, si las resta de las ventas – el objetivo es mayor que cero. Cuestión de gustos.
Se dieron cuenta como en la redacción escrita del problema a resolver utilizamos la palabra “si”?
Por lo tanto, la función lógica será simplemente:
Función lógica:
Ventas >= Objetivo
En este caso usamos la combinación de signos “>=” para indicar que el valor de las ventas debe ser mayor o igual. Igualmente funciona a la inversa “<=”. Para el caso de “diferente de”, debemos utilizar “<>”.
Si efectivamente las Ventas superan el Objetivo (Ventas>=Objetivo es VERDADERO), queremos que la celda (de la columna D) nos muestre “Cumplió”. Y, en caso que no se cumpla (es decir, Ventas>=Objetivo es FALSO), nos muestre “No cumplió”.
Ya tenemos entonces las tres partes:
- La función lógica: Ventas>=Objetivos
- Valor si Verdadero: Mostrar “Cumplió”
- Valor si Falso: Mostrar “No cumplió”.
La fórmula, para la celda D2 será entonces:
=SI(B2>=C2;”Cumplió”;”No Cumplió”)
Es totalmente equivalente escribirla de la forma:
=SI(B2<C2;”No Cumplió”;”Si Cumplió”) => SI las Ventas son menores al Objetivo entonces mostrar “No Cumplió”, en caso contrario (es decir, si es FALSA la comparación Ventas<Objetivo), mostrar “Sí Cumplió”).
Función SI anidada
Se dice que una función está anidada cuando se utiliza una función dentro de si misma.
Haciendo un poco más complicado el ejemplo anterior, queremos saber si superó el objetivo y si la diferencia fue mayor de $5.000.
Esto es, tenemos que hacer DOS comparaciones: Si supera el objetivo y si lo supera por más o menos de $5.000
Empezamos con la función:
=SI(Ventas<Objetivo) Entonces (caso VERDADERO) => “No Cumplió”
De lo contrario (caso FALSO)
=SI(Ventas-Objetivo<5000) Entonces (caso Verdadero) => “Pasó menos de $5.000″
De lo contrario (caso FALSO) => “Pasó más de 5.000″.
La fórmula completa quedaría para el ejemplo anterior:
=SI(B2<C2;”No Cumplió”;SI(B2-C2<5000;”Pasó menos de $5.000″;”Pasó más de $5.000″)).
Ejemplo de operación: Si el numero que tenemos en la columna A es mayor que 5 la columna B debe decir “MAYOR”, de lo contrarioen B debe decir “NO ES MAYOR”
La función quedaría de la siguiente forma:
=SI(A1>5,"MAYOR","NO ES MAYOR")
Como se aprecia en la imagen.
Posteriormente la función se debe repetir para cada valor que tengamos en “A” como se muestra en la imagen.
Finalmente tenemos el resultado.
REFLEXIÒN:EL USO DE LOS OPERADORES Y LA FUNCIÒN SI ES MUY BUENO POR UNA PARTE LOS OPERADORES RELACIONALES NOS AYUDAN A TENER EN CUENTA SO EL TERMINO ES VERDADERO O FALSO SI NOS ENCONTRAMOS EN LO CORRECTO O EN UNA EQUIVOCACIÒN ESTO ES MUY BUENO YA QUE EVITA QUE COMETAMOS ERRORES CON ESTOS OPERADORES SE PUEDE SABER SI ES MAYOR QUE, MENOR QUE, IGUAL QUE, ENTRE OTROS, POR OTRO LADO LA FUNSIÒN SI ES UNA HERRAMIENTA VERDADERAMENTE UTIL QUE ME PERMITE SACAR RESULTADOS CON EL SINPLE HECHO DE ESTABLECER UNA CONDICIÒN Y ME PERMITE REALIZAR MAS RAPIDOS LOS CALCULOS QUE TENGA QUE REALIZAR.
No hay comentarios:
Publicar un comentario