(Consulta) Operadores logicos en C - And - Or- Negado -etc.

Iniciado por palacio29, 25 Julio 2016, 21:19 PM

0 Miembros y 1 Visitante están viendo este tema.

palacio29

Hola

Tengo una consulta sobre este tipo de operadores. Por ejemplo en el siguiente codigo

int main()
{
int x;
if (!(!(2<x) || (x>7)))
{
    printf ("Excelente");
}

}


Este codigo lo que hace es que si x es mayor  o igual a 3 y x es menor o igual a 7, que entre al if y que imprima la palabra "Excelente".
Lo que no entiendo es en que momento del codigo, el || se vuelve un && y en que momento del codigo los <> se vuelven >= o <=.
Que es lo que hace el negado exactamente este tipo de situaciones?



class_OpenGL

El negado lo único que hace es que si una operación daba como resultado 'true', entonces pasa a ser 'false' y viceversa.

Si no entiendes por qué al convertir el and (&&) a or (||) se invierte lo que se invierte, entonces es que no conoces las leyes de De Morgan. Una de estas leyes dice que si tienes dos operandos en disyunción  (or) y la expresión está negada, puedes expresarla de la siguiente forma:

!(OperandoA o Operando B) <=> !OperandoA and !OperandoB

Si no se ha entendido muy bien, aquí dejo un link de la wikipedia donde se explica:
https://es.wikipedia.org/wiki/Leyes_de_De_Morgan

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL