¿Qué son los operadores relacionales y cuál es su utilidad?
Los operadores relacionales son herramientas fundamentales en la programación que nos permiten establecer relaciones entre dos valores numéricos. En el contexto de la robótica y en toda ciencia computacional, estos operadores son esenciales para desarrollar funciones lógico-matemáticas. Permiten efectuar comparaciones que van más allá de verdadero o falso, identificando relaciones cuantitativas entre números. Por ejemplo, podríamos determinar si un sensor de temperatura ha superado un umbral definido, lo cual podría activar un sistema de enfriamiento, como un ventilador. Como ves, son la clave para implementar comportamientos condicionados en sistemas autónomos.
¿Cómo se usan en C#?
Para poner en práctica los operadores relacionales en C#, crearemos una aplicación de consola usando Visual Studio Code. Utilizaremos la declaración var para gestionar nuestras variables. Aquí un ejemplo básico de cómo declarar tres variables y asignarles valores.
var valor1 =10;var valor2 =1;var valor3 =2;
Con estos números podemos ejecutar diversas comparaciones utilizando los operadores relacionales básicos:
Igual (==)
Diferente (!=)
Mayor que (>)
Menor que (<)
Mayor o igual que (>=)
Menor o igual que (<=)
Estos operadores resultan en un valor booleano (true o false), dependiendo de si la relación es cierta o no.
¿Cómo implementar estas comparaciones?
Procedemos a implementar una serie de comparaciones entre las variables numéricas que hemos declarado. Creamos variables booleanas para almacenar el resultado de estas comparaciones. Aquí un ejemplo de comparación de igualdad:
bool resultado1 = valor1 == valor2;// Retorna falso porque 10 no es igual a 1Console.WriteLine("El resultado de valor1 == valor2 es: "+ resultado1);
Cada comparación arrojará un resultado que podemos utilizar para determinar qué acción seguirá nuestro programa, como encender un ventilador si cierta condición de temperatura se cumple.
¿Cómo se puede aplicar a problemas del mundo real?
Los operadores relacionales tienen aplicaciones más allá de simples ejemplos numéricos; su poder reside en su capacidad para interactuar con datos en tiempo real. Imagina una aplicación donde un sistema automatizado de accesos solo permita la entrada a usuarios mayores de cierta edad. Aquí, el operador mayor o igual que (>=) sería crucial para evaluar si un usuario tiene la edad mínima requerida para el acceso:
int edadUsuario =16;bool accesoPermitido = edadUsuario >=18;Console.WriteLine("Acceso permitido: "+ accesoPermitido);// Retorna falso porque la edad es inferior a 18
Con esta lógica, puedes desarrollar soluciones automatizadas que mejoren la eficiencia y seguridad de muchos sistemas cotidianos.
Además, los operadores relacionales son herramientas versátiles y fundamentales para todo aquel que quiera entender y fortalecer sus conocimientos en programación y desarrollo de software eficiente. ¡No dudes en explorar más allá y aplicar estos conceptos en tus propios proyectos! Es un mundo lleno de posibilidades esperando ser descubierto.
Un atajo para escribir mucho mas rapido el Console.WriteLine(); es simplemente escribir cw + dos veces tab
Excelente, muchas gracias!!!!
Trucaso
Operadores Relacionales
Los operadores relacionales en C# se utilizan para comparar valores y determinar si una relación es verdadera o falsa. Los operadores relacionales disponibles en C# incluyen:
== (igual a): Devuelve verdadero si los operandos son iguales.
!= (no igual a): Devuelve verdadero si los operandos son diferentes.
> (mayor que): Devuelve verdadero si el operando de la izquierda es mayor que el de la derecha.
< (menor que): Devuelve verdadero si el operando de la izquierda es menor que el de la derecha.
>= (mayor o igual que): Devuelve verdadero si el operando de la izquierda es mayor o igual que el de la derecha.
<= (menor o igual que): Devuelve verdadero si el operando de la izquierda es menor o igual que el de la derecha.
int x =5;int y =10;bool a =(x == y);// a es falsebool b =(x != y);// b es truebool c =(x > y);// c es falsebool d =(x < y);// d es truebool e =(x >= y);// e es falsebool f =(x <= y);// f es true
Es importante recordar que para comparar strings se utiliza el metodo .Equals() o el operador == y ≠
string s1 ="Hello";string s2 ="World";bool a = s1.Equals(s2);// a es falsebool b =(s1 == s2);// b es false
Gracias!
La actitud del profe lo es todo, me gusta ver las clases con este entusiasmo
Se puede aplicar un formateo de strings y que sea mas legible el codigo de la siguiente manera:
Console.WriteLine($" Los valores son los siguientes: { valor1}, { valor2}, { valor3}");
Queda mejor.
El término sería interpolación de strings
Uno de los ejemplos podría ser cuando estamos hablando de un retiro en un cajero electronico, para validar que el saldo que tiene en la cuenta es mayor o igual al que desea retirar
Yo en mi casa inteligente (HomeKit) si tengo esa validación. Cuando hace más de 24° de calor, prende el ventilador.
Ahí también debes tener en cuenta que tu HomeKit usa una condiconal que en programación conocemos como IF:
if(calor > 24) Console.WriteLine("Prende el ventilador")
Pero eso ya lo veremos luego en el curso.
Tambien existe otro que es === este lo que hace es compara estrictamente las dos variables y tienen que ser iguales no pueden ser diferentes sino mandara un error
Esto es verdad en javascript,
no hay operador === en C#
Duda: como hizo el profe para que VS pusiera espacios entre los signos + y cada variable de forma automatica, hay algun atajo para estilizacion o algo asi?
Por costumbre suelo usar prettier en el FE y en el BE lo hago manual porque me es más cómodo.
Sin embargo, vi que como opción tenés ReSharper que es de JetBrains y cuenta con integración con vs 2022
var(valor1, valor2, valor3)=(10,10,2);Console.WriteLine("Los valores son: "+ valor1 +" "+ valor2 +" "+ valor3);/*
== igual a
!= diferente a
> mayor que
< menor que
>= mayor o igual
<= menor o igual
*/bool resultado1 = valor1 == valor2;Console.WriteLine("El resultado de la comparacion valor1 == valor2: "+resultado1);bool resultado2 = valor1 != valor2;Console.WriteLine("El resultado de la comparacion valor1 != valor2: "+ resultado2);bool resultado3 = valor1 > valor2;Console.WriteLine("El resultado de la comparacion valor1 > valor2: "+ resultado3);bool resultado4 = valor1 < valor2;Console.WriteLine("El resultado de la comparacion valor1 < valor2: "+ resultado4);bool resultado5 = valor1 >= valor2;Console.WriteLine("El resultado de la comparacion valor1 >= valor2: "+ resultado5);bool resultado6 = valor1 <= valor2;Console.WriteLine("El resultado de la comparacion valor1 <= valor2: "+ resultado6);
¿Qué otros ejemplos se les ocurren?
En una tienda virtual se pueden ordenar los productos, comparando su precio y de esta forma mostrar primero los más económicos.
Leccion sobre OPERADORESRELACIONALES<code>var(valor1, valor2, valor3)=(10,10,2);Console.WriteLine("Los valores son: "+ valor1 +" "+ valor2 +" "+ valor3);/*
== igual a
!= diferente a
> mayor que
< menor que
>= mayor igual
<= menor igual
*/bool resultado1 = valor1 == valor2;Console.WriteLine("El resultado de la comparacion valor1 == valor2: "+ resultado1);bool resultado2 = valor1 != valor2;Console.WriteLine("El resultado de la comparacion valor1 != valor2: "+ resultado2);bool resultado3 = valor1 > valor2;Console.WriteLine("El resultado de la comparacion valor1 > valor2: "+ resultado3);bool resultado4 = valor1 < valor2;Console.WriteLine("El resultado de la comparacion valor1 < valor2: "+ resultado4);bool resultado5 = valor1 >= valor2;Console.WriteLine("El resultado de la comparacion valor1 >= valor2: "+ resultado5);bool resultado6 = valor1 <= valor2;Console.WriteLine("El resultado de la comparacion valor1 <= valor2: "+ resultado6);
++OPERADORES RELACIONALES++
Los operadores son simbolos especiales que ejecutan ciertas acciones sobre los operandos.
Operadores de comparacion
Tambien tenemos los operadores de comparacion que basicamente comparan dos operandos numericos y devuelven un valor booleano (verdadero o falso).
OperadosExample< x < y
> x > y
<= x <= y
>= x >= y
Operadores de igualdad
Tambien tenemos los operadores de igualdad que asicamente se encargan de determianr si dos operandos son iguales o no.
OperadosExample== x == y
!= x != y
Algunos ejemplos y su respuesta en consola:
Buen aporte
excelente clase
Console.WriteLine(" Practica Operadores Relacionales");var(valor1, valor2, valor3)=(10,10,20);Console.WriteLine($"los valores son {valor1},{valor2}, {valor3}");// con los operadores realacionales siempre se obtendra un resultado tipo booleano bool resultadoIgual = valor1 == valor2;// Debe resultar Truebool resultadoDiferente = valor1 != valor3;//Debe resultar Truebool resultadoMayor = valor1 > valor2;//Debe resultar falsebool resultadoMenor = valor1 < valor2;//Debe resultar falsebool resultadoMayorIgual = valor1 >= valor2;//Debe resultar truebool resultadoMenorIgual = valor1 <= valor2;//Debe resultar trueConsole.WriteLine($"Igual {resultadoIgual}, Diferente a {resultadoDiferente}, Mayorque {resultadoMayor}, menorque {resultadoMenor}, mayorIgual {resultadoMayorIgual}, menorIgual {resultadoMenorIgual}");
Console.WriteLine("El resultado de la comparación valor1 == valor2: " + resultado1);
bool resultado2 = valor1 != valor2;
Console.WriteLine("El resultado de la comparación valor1 != valor2: " + resultado2);
bool resultado3 = valor1 > valor2;
Console.WriteLine("El resultado de la comparación valor1 > valor2: " + resultado3);
bool resultado4 = valor1 < valor2;
Console.WriteLine("El resultado de la comparación valor1 < valor2: " + resultado4);
bool resultado5 = valor1 >= valor2;
Console.WriteLine("El resultado de la comparación valor1 >= valor2: " + resultado5);
bool resultado6 = valor1 <= valor2;
Console.WriteLine("El resultado de la comparación valor1 <= valor2: " + resultado6);
esta forma de concatenar (interpolación) es mucho mas limpia y mejor que cuando se usa +
Quiero compartirles este ejemplo práctico que preparé. Me pareció interesante relacionar lo que estamos viendo con el mundo de los drones y las misiones de vuelo, que es un área muy cercana a mi trabajo y donde la lógica de programación se vuelve vital.
Estamos programando el software de navegación de un dron de entrega. El dron debe tomar decisiones autónomas basadas en su altitud, su batería y la distancia al objetivo.
// Variables de estado del dronint altitudActual =15;// metrosint altitudSeguridad =10;// metrosint bateriaPorcentaje =15;// %int bateriaMinima =20;// %int distanciaDestino =0;// metros (0 significa que ya llegó)Console.WriteLine("--- TELEMETRÍA DEL DRON ---");// 1. ¿El dron está por encima de la zona de árboles? (Mayor que)bool estaSeguro = altitudActual > altitudSeguridad;Console.WriteLine($"¿Altitud de seguridad superada?: {estaSeguro}");// 2. ¿La batería es suficiente para continuar? (Menor o igual que)bool alertaBateria = bateriaPorcentaje <= bateriaMinima;Console.WriteLine($"¿Activar alerta de batería baja?: {alertaBateria}");// 3. ¿El dron llegó exactamente a la base? (Igual a)bool haLlegado = distanciaDestino ==0;Console.WriteLine($"¿Misión completada?: {haLlegado}");// 4. ¿El dron está fuera de la zona de aterrizaje? (Diferente a)bool fueraDeRuta = altitudActual !=0;Console.WriteLine($"¿El dron sigue en el aire?: {fueraDeRuta}");
¿Por qué es útil esto?
Sin operadores relacionales, el dron sería 'ciego'. No podría saber si tiene suficiente energía para volver o si está volando a una altura peligrosa. Estos operadores transforman números fríos (como el 15%) en decisiones inteligentes (como aterrizar de emergencia).
He utilizado interpolación en la cadena de salida, para obtener el valor de la variable, en vez del nombre de la variable. Por si les resulta más útil: