¿Qué son los operadores lógicos en programación?
Los operadores lógicos son elementos utilizados en
programación para evaluar y combinar expresiones lógicas,
como la que utilizamos con el condicional
Si-Entonces
(if
) anteriormente.
Hay tres operadores lógicos principales: AND
,
OR
y NOT
.
Espacio publicitario
Gracias a estos operadores lógicos, podrás combinar varias
expresiones lógicas a la vez. Por ejemplo,
edad >= 1 and edad <= 17
.
Estos operadores lógicos se suelen utilizar en las estructuras de control de flujo como los condicionales, para formar expresiones más complejas como la del ejemplo que verás a continuación.
Ejemplo con el operador Y (AND) de PSeInt
El operador Y
de PSeInt es el equivalente al
operador AND
que se suele utilizar en programación.
La traducción de and al español es y (conjunción).
Para que el conjunto de una expresión con
Y
dé VERDADERO
, deben ser ambas
verdaderas. De lo contrario, PSeInt producirá un
FALSO
. Veamos un ejemplo de ello:
Algoritmo colores
// Variables del algoritmo
Definir color1 Como Cadena
Definir color2 Como Cadena
color1 <- "rojo"
color2 <- "verde"
// Evaluamos si la mezcla es amarilla o no
Si color1 == "rojo" Y color2 == "verde" Entonces
Escribir "El color formado por la mezcla es amarillo."
SiNo
Escribir "El color formado por la mezcla no es amarillo."
Fin Si
FinAlgoritmo
En este ejemplo, se evalúa con una expresión a la
izquierda que si color1
es igual a
"rojo"
y si color2
es igual a
"verde"
.
Para que se cumpla la condición conjunta, se tiene que
cumplir tanto lo del primer color, como lo del segundo.
Anatomía de las comparaciones con operadores lógicos
Este tipo de expresiones comparativas con los operadores lógicos, añaden al juego las siguientes partes:
expresión_izquierda | operador_lógico | expresión_derecha
Cada una de las expresiones, tanto izquierda como derecha son expresiones simples como las vistas hasta los capítulos anteriores.
Con el operador lógico entre ellas, podemos relacionarlas, pasando a crear una expresión compleja, con dos expresiones simples.
Espacio publicitario
Los intérpretes o compiladores resuelves estas expresiones de la siguiente forma:
Primero se resuelve la primera expresión, la de la
izquierda. Esta podrá dar VERDADERO
o
FALSO
. Después, se evalúa la segunda
expresión, la de la derecha.
Finalmente, se evalúa un valor final que sale de ambos
resultados. La forma de resolver el resultado final
dependerá del operador lógico usado.
El operador Y de este capítulo solo evaluará
VERDADERO
si ambas expresiones simples son
verdaderas.
Veamos la resolución paso a paso de la comparación
utilizada en el condicional Si-Entonces
del
código anterior (línea 11):
Los valores utilizados son los siguientes:
color1 <- "rojo"
color2 <- "verde"
La expresión es esta:
color1 == "rojo" Y color2 == "verde"
-
Se evalúa la expresión de la izquierda, si
color1
tiene el valor"rojo"
; evalúaVERDADERO
. -
Se evalúa la expresión de la derecha, si
color2
tiene el valor"verde"
; evalúaVERDADERO
. -
Finalmente, se evalúan los dos valores obtenidos con el
operador
Y
. Ambos valores comoVERDADERO
se resuelven comoVERDADERO
.
En la siguiente tabla puedes ver las posibilidades con el
operador Y
. Esta tabla te sirve exactamente
igual para el operador equivalente llamada
AND
que tienen la mayoría de los lenguajes de
programación.
Tabla de posibles resultados con el operador AND (Y)
Expresión izquierda | Operador | Expresión derecha | Resultado final |
---|---|---|---|
VERDADERO | Y | VERDADERO | VERDADERO |
FALSO | Y | VERDADERO | FALSO |
VERDADERO | Y | FALSO | FALSO |
FALSO | Y | FALSO | FALSO |
Encadenando más expresiones
Las expresiones comparativas no tienen límite, puedes encadenar más expresiones utilizando más operadores lógicos. A continuación tienes un ejemplo:
color1 == "rojo" Y color2 == "verde" Y color3 == "azul" Y color4 == "amarillo"
La resolución de esta expresión compleja es la misma, solo
ves resolviendo las expresiones de izquierda a derecha.
Supongamos que los dos primeros colores (color1
y color2
) son verdaderos, y que los otros dos
falsos.
Siguiendo paso a paso, tenemos que comparar cada una de
las variables con el valor que se espera que tengan,
evaluando cada comparación de manera individual y luego
combinando los resultados usando el operador
and
(que en este caso es el operador
Y
).
Estos son los valores que tendrá cada variable en esta comparación:
color1 <- "rojo"
color2 <- "verde"
color3 <- "morado"
color4 <- "marrón"
Según el fragmento con la expresión de un poco más arriba, los dos primeros colores coinciden con los valores de las variables, pero los dos últimos, no. Entonces ya sabes lo que va a evaluar cada uno en las expresiones resueltas que tienes a continuación:
1: Evaluar color1 == "rojo"
En este caso, como color1
tiene el valor
"rojo"
, esta comparación evalúa como
VERDADERO
.
2: Evaluar color2 == "verde"
color2 == "verde"
En este caso, como color2
tiene el valor
"verde"
,esta comparación evalúa como
VERDADERO
.
3: Evaluar color3 == "azul"
Aquí color3
tiene el valor
"morado"
, que no es igual a
"azul"
, por lo tanto, esta comparación evalúa
como FALSO
.
4: Evaluar color4 == "amarillo"
color4
tiene el valor "marrón"
,
que no coincide con el valor esperado
"amarillo"
. Por lo tanto, esta comparación
evalúa como FALSO
.
5: Combinar los resultados con Y (AND)
Los resultados obtenidos fueron:
-
color1 == "rojo"
esVERDADERO
-
color2 == "verde"
esVERDADERO
-
color3 == "azul"
esFALSO
-
color4 == "amarillo"
esFALSO
Al combinar todos los resultados con
Y
tenemos la siguiente operación:
VERDADERO Y VERDADERO Y FALSO Y FALSO
VERDADERO Y VERDADERO
=
VERDADERO
FALSO Y FALSO
= FALSO
VERDADERO Y FALSO
=FALSO
Por lo tanto, la evaluación resuelta es que es
FALSO
.
Esto demuestra que abusar de los operadores lógicos para hacer expresiones booleanas, puede volver tu código complicado y poco intuitivo. No abuses de estos nuevos operadores y utilízalos solo si es necesario.
Espacio publicitario
Espacio publicitario
Ejercicios de programación para resolver
Para los siguientes ejercicios, tienes este código:
Algoritmo colores
Definir color1 Como Cadena
Definir color2 Como Cadena
Definir color3 Como Cadena
color1 <- "rojo"
color2 <- "verde"
color3 <- "azul"
Si CONDICIÓN Entonces
Escribir "Se ejecuta el Si."
SiNo
Escribir "Se ejecuta el SiNo."
Fin Si
FinAlgoritmo
Fíjate en la línea 11.
Voy a cambiar la parte que pone CONDICIÓN
,
por diferentes condiciones. Me tienes que responder,
VERDADERO
o FALSO
, con cada
expresión, teniendo en cuenta los valores de las tres
variables de colores.
Estas son las condiciones que hay que sustituir:
26.
color1 == "rojo" Y color3 == "azul"
27.
color1 == "rojo" Y color1 == "rojo"
28.
color1 == "verde" Y color2 == "azul"
29.
color1 == "rojo" Y color2 == "azul" Y color3 ==
"verde"
Prueba a resolver las expresiones paso a paso en una libreta, esto te ayudará a resolverlas más fácilmente.
VERDADERO
VERDADERO
FALSO
FALSO
Espacio publicitario
Espacio publicitario