Expresiones lógicas

En esta lección aprenderás a codificar y evaluar expresiones  utilizando los operadores lógicos para realizar condiciones complejas  que  se requieran al  hacer en tus programas de Arduino.

Operadores lógicos

Los operadores lógicos nos sirven para comparar expresiones cuyo valor es TRUE o FALSE. Los operadores lógicos de Arduino que utilizaremos  se presentan en la Tabla 1

Operador lógicoDescripción Expresión lógicaSignificado
!NOT (no)! pnegación de p
&&AND (y)p && qp y q
||OR (o)p || qp o q
Tabla 1. Operadores lógicos

Expresiones lógicas

Las expresiones lógicas son aquellas que sólo pueden tomar dos valores: Falso y verdadero.  Se forman combinando constantes lógicas, variables, expresiones relacionales  y los operadores lógicos. Algunos ejemplos de expresiones lógicas  se muestran en la Tabla 2:

ExpresiónDescripciónExpresiónDescripción
! ( 6>10)NOT (6>10) (1>0) && (3==3)(1>0) AND (3==3)
(número ==5) || (9>=6)(número ==5) OR (9>=6)! (5>4 || 3<6)NOT ( 5>4 ) OR ( 3<6 )
Tabla 2. Expresiones lógic

Evaluación de expresiones lógicas

El resultado de evaluar una expresión lógica es un falso o un verdadero. Para realizar la evaluación se hace uso de las tablas de verdad, que nos muestran  las combinaciones de valores de verdad  que pueden asumir los operadores lógicos.  El valor TRUE está representado por un (1) y el FALSE por el número (0)

ValorValorTabla del ANDTabla del ORTabla del NOT
ABA && BA || B! A ! B
000011
010110
100101
111100
Solo que lo dos valores sean verdaderos, el resultado del && es verdaderoSólo que los dos valores sean falsos, el resultado es falsoLa negación de un verdadero es falsoLa negación de un falso es un verdadero
Tabla 2. Tabla de verdad de los operadores lógicos

El resultado de evaluar una expresión lógica es un falso o un verdadero. Para comprender cómo utilizan las tablas de verdad para evaluar  una expresión lógica, vamos a ver el siguiente video:

Operadores lógicos

Reglas de prioridad

La combinación de operaciones aritméticas, relacionales y lógicas  forman expresiones complejas. Para resolverlas se siguen ciertas  reglas que determinan el orden en el que se resuelven las expresiones.

  • Primero se resuelven las expresiones  entre paréntesis.
  • Se procede aplicando la jerarquía de operadores (Tabla 3).
PrioridadOperadorOperación
1( )Paréntesis
2* , /, %Multiplicación, división y residuo
3+, –Suma ,resta
4<, <=, >, >=menor qué, menor qué o igual, mayor qué, menor qué o igual
5==, !=igual a , no igual a
6!Not
7&&AND
8||OR
Tabla 3 de jerarquía de operadores
  • Al evaluar una expresión, si hay dos operadores con la misma jerarquía, se procede a evaluar de izquierda a derecha.
  • El orden correcto a seguir, es primero resolver operadores aritméticos, luego los relacionales y por último los lógicos.

Revisa el siguiente ejemplo donde se desglosan los pasos que se realizan para calcular las expresiones complejas (Tabla 4):

PasoOperación! ( 7*3 != 12/2) && (15 >= 7 || 8+3 > 16)
1Paréntesis! ( 7*3 != 12/2) && (15 >= 7 || 8+3 > 16)
2Operadores matemáticos con mayor jerarquía
* /
! (21 != 12/2) && (15 >= 7 || 8+3 > 16)
3Operadores matemáticos con menor jerarquía
+ –
! ( 21 != 6) && (15 >= 7 || 8+3 > 16)
4Operadores relacionales con mayor jerarquía
<, <=, >, >=
! ( 7*3 != 12/2) && (15 >= 7 || 8+3 > 16)
5Operadores relacionales con menor jerarquía
! =
! ( 21 != 6) && (Verdadero || Falso)
7Terminamos resolver paréntesis! (Verdadero ) && (Verdadero || Falso)
8Operado lógico !! (Verdadero) && Verdadero
9Operado lógico &&Falso && Verdadero
10Resultado Falso
Tabla 4. Evaluación de expresiones complejas

Cómo puedes observar, cuando se evalúan expresiones complejas solo hay operadores aritméticos, el resultado es un número. Si hay operadores aritméticos y relacionales, el resultado es un valor booleano (TRUE, FALSE).

logo-autoevaluación

Autoevaluación

Resuelve las siguientes expresiones lógicas

para aprender más

Para aprender más

Fernández B. (2015) ¡Elemental, querido Watson! La lógica booleana España. DIWO.  http://diwo.bq.com/bitbloq2-logica-booleana/

Itca Virtual. ( s/f). Tipos de datos y jerarquía de operadores. https://virtual.itca.edu.sv/Mediadores/dlp/13_tipos_de_datos_y_jerarqua_de_operadores.html.