Curso de programación en C++. Cap 2: tabla de verdad
En el anterior capítulo del curso de programación, abarcamos las proposiciones, los tipos de proposiciones, una definición de los conectores lógicos y algunos ejemplos dinámicos. En este segundo capítulo usaremos lo aprendido anteriormente para demostrarlo en las tablas de verdad y, de esta manera, comprender una de las herramientas más importantes de la programación y la ingeniería como tal: los circuitos lógicos.
Por si aún no la has visto:
Contenido
¿Qué es una tabla de verdad?
Una tabla de verdad no es más que un mecanismo gráfico que nos permite comprobar el valor de verdad de una proposición compuesta, a través del análisis de cada una de las proposiciones simples que la conforman.
¿Cómo se hace una tabla de verdad?
Para realizar una tabla de verdad, es necesario tener en cuenta las variables que componen la proposición que se quiere evaluar. De esta manera, armaremos las filas y columnas
- El numero de columnas es determinado por el numero de proposiciones que haya.
- Para determinar la cantidad de filas se usa 2n, donde n es el número de variables.
Veámoslo en un ejemplo.
Si tengo la proposición p ∨ q:
Primero me fijo en la cantidad de proposiciones que la componen. En este caso son 3: p, q y (p ∨ q). Ese será el número de columnas.
Lo siguiente es determinar las filas. Como hay solo dos variables, tendríamos 2^2 = 4. Ese sería el número de filas.
Ahora, para asignar los valores de falso (F) y verdadero (V) a la tabla de verdad hay que tener en cuenta el siguiente diagrama de árbol.
Diagrama de árbol de decisión

Como vemos, de izquierda a derecha, la mitad del diagrama inicia con un falso y un verdadero y de ahí en adelante cada resultante (F o V) tendrá su propio valor de verdad.
Hagamos nuestra primera tabla de verdad:
Tabla de verdad de una conjunción
«Más tarde iré al gimnasio y luego al estadio a ver al Real Madrid«.
Primera proposición, que llamaremos «p«: Iré al gimnasio.
Segunda proposición, que llamaremos «q«: Iré al estadio.
La proposición compuesta es p ∧ q: Iré al gimnasio y luego iré al estadio. Una conjunción.
Vemos que la tabla de verdad tendrá 3 columnas y 4 filas (sin contar los títulos).
p | q | p ∧ q |
F | F | F |
F | V | F |
V | F | F |
V | V | V |
Como podemos notar en la tabla de arriba, una conjunción solo es verdadera cuando ambas premisas son ciertas. O sea, si yo digo que haré dos cosas (ir al gimnasio y al estadio) estoy afirmando que realizaré ambas, no una u otra, ambas. Así que si yo no voy al gimnasio, automáticamente estoy mintiendo. Eso se conoce en programación como un cortocircuito.
Tabla de verdad de una disyunción
p ∨ q: «me comeré una manzana o una naranja».
p: me comeré una manzana.
q: me comeré una naranja.
p | q | p ∨ q |
F | F | F |
F | V | V |
V | F | V |
V | V | V |
A diferencia de la conjunción, una disyunción solo es falsa cuando ambas proposiciones son falsas. Si yo digo que comeré una manzana o una naranja, estoy expresando que consumiré al menos una de las dos frutas, no necesariamente ambas.
Tabla de verdad de un condicional
p→q: «si mañana es día soleado, entonces iré al parque».
p: hay día soleado.
q: voy al parque.
Nota: en el condicional, la proposición antes del conector (→) se llama antecedente y la que está después se llama consecuente.
p | q | p→q |
F | F | V |
F | V | V |
V | F | F |
V | V | V |
Como no se especificó qué pasará si el día no es soleado, entonces podemos afirmar que solo una de las combinaciones nos da un valor de Falso.
Por lo tanto, en efecto, un condicional solo es falso cuando el antecedente es verdadero y el consecuente es falso. ¿Por qué? Pues porque en un inicio estoy asegurando que si el día es soleado voy al parque y en caso de que sí sea soleado pero yo no vaya, es una mentira.
Tabla de verdad de un bicondicional
p⟷q : «me compraré una pizza si y solo si es viernes».
p: compraré una pizza.
q: es viernes.
p | q | p⟷q |
F | F | V |
F | V | F |
V | F | F |
V | V | V |
Con un bicondicional estoy diciendo que mi proposición compuesta solo será verdadera cuando las proposiciones que la componen tengan el mismo valor de verdad. O sea, si no es viernes y no compro la pizza, no estaré mintiendo. De igual modo, si es viernes y compro la pizza, también estoy diciendo la verdad.
Un bicondicional es lo mismo que tener la conjunción de dos condicionales, pero organizados de la siguiente forma: (p→q)∧ (q→p). O sea, la expresión normal y su recíproca.
Tabla de verdad de una negación
p: me compré un auto.
¬p: no es cierto que compré un auto.
p | ¬p |
F | V |
V | F |
Jerarquía de operaciones
Como en la aritmética, en la lógica proposicional también hay jerarquía para cada operación. Las dejaremos resumidas en la siguiente tabla para mayor practicidad.
Jerarquía de operaciones |
( ), [ ], { } |
¬ |
∧, ∨ |
→, ⟷ |
Conclusiones
Lo que acabas de aprender es muy importante para nuestro curso y para el lenguaje de máquinas en general. Ten en cuenta que en las distintas áreas de la ingeniería encontrarás estas mismas herramientas, pero a veces con diferentes nombres. Por ejemplo, en C++ y otros lenguajes, la «Y» o la conjunción se llama «And«, el «O» o la disyunción se llama «Or«, y el condicional lo encontrarás combinando dos palabras «if-else«.
De igual forma, como mencionamos al inicio de este capítulo, esta es la lógica base para los circuitos, solo que ya en niveles más avanzados en lugar de verdaderos o falsos se usan «1» y «0«. 1 para indicar el paso de corriente y 0 para indicar «sin corriente»