Lógica y Tablas de Verdad
Lógica y Tablas de Verdad
Lógica y Tablas de Verdad
Tipos de Lenguajes:
(Sintaxis + Semntica)
Lenguaje Natural: Son los lenguajes usados por las personas para comunicarse. Son lenguajes
no diseados por las personas, sino que aparecieron con el uso. Aunque tienen algunas reglas
sintcticas, permiten expresiones confusas o incoherentes. Por ej: aunque una frase contenga
faltas de ortografa, se entiende el contenido.
Ej: La micro se est demorando mucho (El micro / Se est demorando / Mucho se est ).
Adems se puede decir lo mismo de otra forma: La micro est atrasada. / demasiado.
Lenguaje Formal: Son lenguajes diseados por las personas, para un propsito especfico. Por
ej: la notacin matemtica permite usa un lenguaje formal til para expresar las relaciones
entre nmeros y smbolos. Los qumicos usan un lenguaje para representar las estructuras
qumicas, etc.
Los lenguajes formales tienen reglas sintcticas rigurosas, que deben ser respetadas por
quienes los utilizan. Por ej: 3 + 3 = 6 (siempre). H2O = agua en cualquier parte.
Las reglas sintcticas se basan en dos elementos:
Smbolos: Son los elementos bsicos del lenguaje, como letras o palabras.
Estructura: Se refiere a la forma en que los smbolos se ordenan dentro de una sentencia.
Ejemplos:
Cuando se lee una sentencia o frase en castellano, hay que averiguar la estructura de esa
frase (en forma inconsciente). Esto se llama anlisis gramatical (parsing).
Por ej: la frase la micro est atrasada. La micro es el sujeto y est atrasada es el predicado.
Una vez que se ha analizado la frase, se puede entender su significado, o semntica de la
frase.
Tanto los lenguajes naturales como formales tienen reglas sintcticas, pero hay algunas
diferencias:
Ambigedad: El lenguaje natural (LN) est lleno de ambigedades que se entienden por el
contexto de la frase. Un lenguaje formal (LF) debe ser no ambiguo.
Redundancia: Un LN tiene muchos sinnimos, una misma cosa se puede decir de diferentes
formas. Un LF debe ser no redundante.
Sentido Literal: El LN contiene metforas y se dicen cosas sin sentido. Un LF expresa
claramente una idea.
Nivel de Lenguaje:
Estructuras de Programacin
Generaciones de Lenguajes de Programacin:
Traduccin de Programas:
El computador slo entiende su propio lenguaje de mquina. Luego los programas escritos en
lenguajes de alto nivel deben ser traducidos a lenguaje de mquina.
Existen diversas formas de traduccin:
Intrpretes: Un intrprete lee un programa con cdigo de alto nivel y lo ejecuta. Procesa el
programa de a poco (una lnea por vez). Lee la lnea, verifica la sintaxis, traduce a cdigo
de mquina y la ejecuta, luego contina con la lnea siguiente.
Compilador: Primero debe pasar por una etapa de revisin de la sintaxis y traduccin
completa del programa a cdigo de mquina. A partir de un cdigo fuente, genera un
cdigo objeto (ejecutable). Una vez que el programa est compilado, se puede ejecutar
repetidas veces sin tener que traducirlo nuevamente.
2 / 16
Estructuras de Programacin
Conceptos de Programacin:
Programa:
Secuencia de instrucciones usualmente llamadas sentencias, que especifican cmo ejecutar un
clculo determinado (resolver una ecuacin, ordenar una lista de objetos, etc.)
Cada lenguaje tiene caractersticas propias, pero en general un programa se compone de:
Entradas (input): Lee datos desde el teclado, un archivo, o similar.
Salidas (output): Enva datos a la pantalla, impresora, un archivo, o similar.
Clculos: Ejecuta operaciones matemticas como sumas o multiplicaciones.
Ejecucin condicional: Verifica ciertas condiciones y luego ejecuta una secuencia
apropiada de sentencias.
Ejecucin repetitiva: Ejecuta alguna accin repetitiva, usualmente con alguna variacin.
Qu es programar?
3 / 16
Estructuras de Programacin
4. LGICA Y TABLAS DE VERDAD.
4.1. Introduccin.
Un computador se puede programar para tomar decisiones basadas en ciertos enunciados, por
ejemplo: el resultado de un clculo es mayor que 100. Tales enunciados pueden ser verdaderos
o falsos, es decir contienen un valor de verdad; es decir un enunciado puede ser verdadero o
falso, pero no ambas cosas. Algunos enunciados son compuestos por axiomas, ms algunos
elementos de conexin entre ellos.
Ejemplo 1:
a) Las rosas son rojas y las violetas son azules, es un enunciado compuesto mediante la
conexin y
b) El es inteligente o estudia todas las noches, es un enunciado compuesto mediante la
conexin o.
c) Para dnde va?, no es un enunciado ya que no posee un valor de verdad.
La propiedad de un enunciado compuesto es que su valor de verdad est completamente
determinado por los valores de verdad de sus axiomas, junto con la forma en que estn
conectados. Para entender los valores de verdad es necesario entender los tipos de conexiones
entre enunciados. Se usarn las letras p, q, r, como identificadores de un enunciado cualquiera.
4.2. Conjuncin.
Dos enunciados cualquiera se pueden combinar con la palabra y para formar un enunciado
compuesto denominado conjuncin. La siguiente tabla muestra los valores de verdad de un
enunciado compuesto por una conjuncin:
p
p^q
V
V
F
F
V
F
V
F
V
F
F
F
El enunciado p ^ q es verdadero slo en el caso que los dos axiomas son verdaderos.
Ejemplo 2: Considerar los cuatro enunciados siguientes:
a)
b)
c)
d)
Pars
Pars
Pars
Pars
est
est
est
est
en
en
en
en
Francia
Francia
Inglaterra
Inglaterra
y
y
y
y
2
2
2
2
+
+
+
+
2
2
2
2
=
=
=
=
4.
5.
4.
5.
Slo el enunciado (a) es verdadero, puesto que los axiomas que lo componen son verdaderos.
4.3 Disyuncin.
Dos enunciados cualquiera se pueden combinar con la palabra o para formar un enunciado
compuesto denominado disyuncin. La siguiente tabla muestra los valores de verdad de un
enunciado compuesto por una disyuncin:
4 / 16
Estructuras de Programacin
pvq
V
V
F
F
V
F
V
F
V
V
V
F
El enunciado p v q es verdadero en el caso que cualquiera de los dos axiomas sea verdaderos.
Dicho de otra forma, el enunciado p v q es falso slo en el caso que los dos axiomas sean falsos.
Ejemplo 3: Considerar los cuatro enunciados siguientes:
a)
b)
c)
d)
Pars
Pars
Pars
Pars
est
est
est
est
en
en
en
en
Francia
Francia
Inglaterra
Inglaterra
o
o
o
o
2
2
2
2
+
+
+
+
2
2
2
2
=
=
=
=
4.
5.
4.
5.
Slo el enunciado (d) es falso. Cada uno de los otros enunciados es verdadero puesto que al
menos uno de sus axiomas que los componen es verdadero.
Observacin: la palabra espaola o se usa comnmente de dos formas. Algunas veces se usa en
el sentido de p o q o ambos, es decir, al menos una de las dos alternativas se cumple. Otras
veces se usa en el sentido p o q pero no ambos, es decir slo se debe cumplir una de las
alternativas. Por ejemplo la siguiente frase: El estudiar en la Universidad de Concepcin o en la
Universidad de la Frontera, en este caso el o se usa en el segundo sentido y se denomina
disyuncin exclusiva (XOR).
4.4 Negacin.
Dado cualquier enunciado p, se puede formar otro enunciado, denominado negacin de p, por
ejemplo escribiendo Es falso que ... antes de p, o insertando en p la palabra no. La notacin
simblica de esto puede tener dos formas:
~p
p
(se lee no p). Ambas formas se
pueden combinar dentro de un conjunto de enunciados.
La siguiente tabla muestra los valores de verdad de un enunciado compuesto por una negacin:
p
V
F
F
V
d) 2 + 2 = 5.
e) Es falso que 2 + 2 = 5.
f) 2 + 2 5.
Entonces (b) y (c) son c/u la negacin de (a). Por otro lado, (e) y (f) son c/u la negacin de (d).
Ya que (a) es verdadero, entonces (b) y (c) son falsos; y como (d) es falso, entonces (e) y (f) son
verdadero.
4.5. Proposiciones y Tablas de Verdad.
5 / 16
Estructuras de Programacin
Con el uso repetido de las conectiva lgicas: y, o, no, se pueden construir enunciados compuestos
que son ms elaborados. En el caso que los axiomas p, q, de un enunciado compuesto P(p, q,
) sean variables, el enunciado compuesto se denomina una proposicin.
El valor de verdad de una proposicin depende exclusivamente de los valores de verdad de sus
variables, es decir, el valor de verdad de una proposicin se conoce una vez que se conozcan los
valores de verdad de sus variables. Por ejemplo la tabla de verdad de la proposicin ~(p ^ q) se
construye de la siguiente forma:
p
p^q
~(p ^ q)
V
V
F
F
V
F
V
F
F
V
F
V
F
V
F
F
V
F
V
V
Observar que las primeras dos columnas de la tabla son las variables p, q, y que la tabla
contiene suficientes filas para permitir todas las combinaciones posibles de V y F para estas
variables (para 2 variables se requieren 4 filas, para 3 variables se requieren 8 filas, para 4
variables se requieren 16 filas), en general, para n variables se requieren 2n filas. Luego la tabla
contiene una columna para cada etapa elemental de la construccin del enunciado, el valor de
verdad de cada columna siguiente es determinado por las anteriores con las definiciones de las
conectivas lgicas ^ v ~. Finalmente en la ltima columna se obtiene el valor de verdad de la
proposicin completa. En rigor slo interesan las columnas que contienen las variables y la
columna que contiene la proposicin, el resto de columnas intermedias se utilizan solamente para
ayudar a construir la tabla de verdad.
4.6. Tautologas y Contradicciones.
Algunas proposiciones P(p, q, ) contienen slo valores V en la ltima columna de sus tablas de
verdad, es decir, son verdaderas para cualquier valor de verdad de sus variables. A tales
proposiciones se les denomina tautologas. Anlogamente, una proposicin P(p, q, ) se
denomina contradiccin si contiene slo valores F en la,ltima columna de su tabla de verdad, es
decir, es falsa para cualquier valor de verdad de sus variables. Por ej. la proposicin p o no p, es
decir p v p es una tautologa; y la proposicin p y no p, es decir p ^ p es una contradiccin.
Esto se puede verificar por sus tablas de verdad:
p
pvp
p^p
V
F
F
V
V
V
V
F
F
V
F
F
Se puede observar que la negacin de una tautologa es una contradiccin, ya que siempre ser
falsa. Por otro lado, la negacin de una contradiccin es una tautologa, ya que siempre ser
verdadera.
Sea P(p, q, ) una tautologa, y sean P1(p, q, ), P2(p, q, ) proposiciones cualesquiera. Como el
valor de verdad de P(p, q, ) no depende de los valores de verdad particulares de sus variables p,
q, entonces se puede reemplazar p por P1 , q por P2, en la tautologa P(p, q, ), es decir:
Principio de sustitucin: Si P(p, q, ) es una tautologa, entonces P(P1, P2, ) es una tautologa
para proposiciones cualquiera P1, P2,
6 / 16
Estructuras de Programacin
Ejemplo 5: La tabla de verdad (p v p) result ser una tautologa. Reemplazando p por q ^ r se
obtiene la proposicin (q ^ r) v ~(q ^ r), que por el principio de sustitucin tambin debera ser
una tautologa. Esto se puede verificar en la siguiente tabla de verdad.
q
q^r
V
V
F
F
V
F
V
F
V
F
F
F
~(q ^ r) (q ^ r) v ~(q ^ r)
F
V
V
V
V
V
V
V
p^q
~(p ^ q)
pvq
V
V
F
F
V
F
V
F
V
F
F
F
F
V
V
V
V
V
F
F
V
F
V
F
F
F
V
V
F
V
F
V
F
V
V
V
Las tabas de verdad son las mismas, es decir, ambas proposiciones son falsas en el primer caso y
verdaderas en los otros tres casos, luego ambas proposiciones son lgicamente equivalentes.
~(p ^ q) (p v q)
Ejemplo 6: Considerar el enunciado Es falso que las rosas son rojas y las violetas son azules.
Este enunciado se puede escribir de la forma ~(p ^ q), en donde p es las rosas son rojas y q es
las violetas son azules. Sin embargo por las tablas de verdad anteriores ~(p ^ q) es lgicamente
equivalente con (p v q), luego el enunciado original se puede expresar mediante otro enunciado
equivalente Las rojas no son rojas o las violetas no son azules. En general las proposiciones
satisfacen muchas equivalencias lgicas, o leyes, como las descritas en la tabla siguiente:
Leyes de idempotencia
1b. p ^ p p
Leyes asociativas
2a. (p v q) v r p v (q v r)
2b. (p ^ q) ^ r p ^ (q ^ r)
Leyes conmutativas
3a. p v q q v p
3b. p ^ q q ^ p
Leyes distributivas
4a. p v (q ^ r) (p v q ) ^ (p v r)
4b. p ^ (q v r ) (p ^ q) v (p ^ r)
Leyes de identidad
5a. p v F p
5b. p ^ V p
6a. p v V V
6b. p ^ F F
Leyes de complementos
7a. p v p V
7b. p ^ p F
8a. V F
8b. F V
Ley de involucin
9. ~p p
Leyes de Morgan
10a. ~(p v q) p ^ q
10b. ~(p ^ q) p v q
1a. p v p p
7 / 16
Estructuras de Programacin
pq
pq
V
V
F
F
V
F
V
F
V
F
V
V
V
V
F
F
V
F
V
F
V
F
F
V
Observar que el condicional p q es falso slo cuando de una verdad se desprende una falsedad,
por otro lado el condicional p q es verdadero cuando ambos axiomas son iguales, es decir,
ambos son verdaderos o ambos son falsos.
Considerar la siguiente proposicin: p v q:
p
pvq
V
V
F
F
V
F
V
F
F
F
V
V
V
F
V
V
Observar que la tabla de verdad es idntica a la tabla de verdad de p q. As que se puede decir
que p q es lgicamente equivalente a la proposicin p v q, es decir: p q p v q.
En otras palabras, el enunciado condicional Si p entonces q es lgicamente equivalente al
enunciado no-p o q.
Considerar la proposicin p q y las otras proposiciones condicionales simples que contienen p, q
qp
pq
qp
Estas proposiciones se denominan respectivamente: la recproca, inversa y contrarrecrpoca de la
proposicin p q. Las tablas de verdad respectivas son:
p
pq
qp
pq
qp
V
V
F
F
V
F
V
F
V
F
V
V
V
V
F
V
F
F
V
V
F
V
F
V
V
V
F
V
V
F
V
V
Estructuras de Programacin
q p: Si A es issceles, entonces A es equiltero.
En este caso p q es verdadero, pero su recproco q p es falso.
Ejercicios:
1) Sea p = Marcos es millonario y sea q = Marcos es feliz. Escribir las siguientes
proposiciones en forma simblica:
a) Marcos es pobre, pero feliz.
b) Marcos ni es millonario ni es feliz.
c) Marcos o es millonario o es infeliz.
d) Marcos es pobre o si no l es tanto millonario como infeliz.
2) Sea p = Ana habla francs y q = Ana habla dans. Formar una frase verbal sencilla que
describa las siguientes proposiciones: (a) p v q; (b) p ^ q; (c) p ^ ~q (d) ~p v ~q;
(e) ~~p; (f) ~(~p ^ ~q).
3) Encontrar las tablas de verdad de las siguientes proposiciones: (a) p v ~q; (b) ~p ^ ~q;
(c) ~(~p ^ q); (d) ~(~p v ~q).
4) Encontrar las tablas de verdad de las siguientes proposiciones: (a) (p ^ ~p) v r;
(b) ~p v (q ^ ~r); (c) (p v ~r) ^ (q v ~r).
5) Demostrar la ley de distribucin: p ^ (q v r) (p ^ q) v (p ^ r), construyendo las tablas
de verdad apropiadas.
6) Demostrar que p v (p ^ q) p, construyendo las tablas de verdad apropiadas.
7) Escribir la negacin de c/u de los siguientes enunciados, de la manera ms sencilla posible:
a) l es bajo pero inteligente.
b) Ella es rubia o de ojos azules.
c) El ni es rico ni es feliz.
d) El se retir o no fue a clases hoy.
e) Ni Marcos ni Pedro son infelices
f) Ana habla espaol o francs pero no alemn
8) Encontrar las tablas de verdad de las siguientes proposiciones: (a) (~p v q) p;
(b) q (~q ^ p)
9) Encontrar las tablas de verdad de las siguientes proposiciones: (a) (p ~q) (~p ^ q);
(b) (~q v p) (q ~p).
10)Determinar la contrarrecproca de cada enunciado: (a) Si l tiene coraje, l ganar;
(b) Slo si no est cansado, l ganar.
11)Encontrar:
a) La contrarrecproca de p q.
b) La contrarrecrpoca de ~p q.
c) La contrarrecproca de la recproca de p ~q.
d) La recproca de la contrarrecproca de ~p ~q.
9 / 16
Estructuras de Programacin
ANEXO: Pasos para armar la tabla de verdad de una proposicin, por ej: ~(p ^ ~q)
Paso usual:
p
~q
V
V
F
F
V
F
V
F
F
V
F
V
p ^ ~q ~(p ^ ~q)
F
V
F
F
V
F
V
V
Otra forma de armar la tabla de verdad para la misma proposicin, es armar una tabla slo con
los valores de las variables y usar columnas para cada nueva variable y conectivas lgicas de la
proposicin, por ejemplo:
p
V
V
F
F
V
F
V
F
(p
q)
Paso
A continuacin se copian los valores de verdad de las variables en las columnas que corresponda:
V
V
F
F
V
F
V
F
Paso
(p
q)
V
V
F
F
V
F
V
F
A continuacin de asignan los valores de verdad de los conectores lgicos, desde el ms interior
hasta el ms exterior (1 ~q).
p
V
V
F
F
V
F
V
F
Paso
(p
q)
V
V
F
F
F
V
F
V
V
F
V
F
V
V
F
F
V
F
V
F
Paso
(p
q)
V
V
F
F
F
V
F
F
F
V
F
V
V
F
V
F
10 / 16
Estructuras de Programacin
3 se deben definir los valores de la segunda negacin (ms exterior), que representa ~(p ^ ~q)
p
(p
q)
V
V
F
F
V
F
V
F
V
F
V
V
V
V
F
F
F
V
F
F
F
V
F
V
V
F
V
F
Paso
En cada paso se deben evaluar los valores de verdad del paso anterior.
11 / 16
Estructuras de Programacin
lgebra de Boole. Compuertas Lgicas.
Sea B un conjunto en el cual se han definido dos operaciones binarias, + y *, y una operacin
unitaria denotada '. Sean 0 y 1 dos elementos de B. Entonces la sextupla (B, +, *, ', 0, 1), si se
cumplen los siguientes axiomas para los elementos a, b, c, cualesquiera en el conjunto B.
1) Leyes conmutativas:
(1.a) a + b = b + a
(1.b) a * b = b * a
2) Leyes distributivas:
(2.a) a + (b * c) = (a + b) * (a + c)
(2.b) a * (b + c) = (a * b) + (a * c)
3) Leyes de identidad:
(3.a) a + 0 = a
(3.b) a * 1 = a
4) Leyes de complemento:
(4.a) a + a' = 1
(4.b) a * a' = 0
significa
a + (b * c)
Compuerta OR
La salida de la compuerta OR se denota: Y = A + B.
Su comportamiento es idntico al OR lgico
Desde el punto de vista elctrico, se puede considerar como un circuito con interruptores
paralelos.
Tabla de vedad de la compuerta OR:
12 / 16
Estructuras de Programacin
A+B
0
0
1
1
0
1
0
1
0
1
1
1
La
La
Compuerta AND.
La salida de una compuerta AND se designa como el producto de sus entradas: Y = A * B = AB
La salida de AND genera 1 slo cuando todas sus entradas tienen el valor 1
A*B
0
0
1
1
0
1
0
1
0
0
0
1
Estructuras de Programacin
Es equivalente a tener un circuito elctrico con dos interruptores en serie, todos deben estar
cerrados para que pase la corriente.
Una compuerta AND tambin puede tener ms de dos entradas, por ej. la figura sgte muestra
una compuerta AND con cuatro entradas. Y = A * B * C * D = ABCD.
Dibujar circuito equivalente...
Si
se
A
B
C
D
Tambin se denomina inversor. Tiene una sola entrada y genera una salida que es el
complemento de la entrada. Y = A.
El valor de salida de Y es el opuesta al valor de entrada.
0
1
1
0
Circuitos Lgicos.
Las tablas de verdad de las compuertas OR, AND y NOT son idnticas a las proposiciones de
disyuncin (p v q), conjuncin (p ^ q) y negacin (~p).
La diferencia es que en este caso se usan 1 y 0 en vez de V y F.
En general un circuito lgico L tiene varias entradas y una sola salida. Las entradas atraviesan
un conjunto de compuertas lgicas AND, OR, NOT, las cuales generalmente alimentan a una
compuerta final OR.
Dado un circuito lgico L, se desea conocer el efecto sobre L de cualquier entrada arbitraria.
Esto se hace definiendo una tabla de verdad para L. a partir de las tablas de verdad de las
compuertas que componen el circuito L. Esto se hace paso a paso.
Por ej: se tiene el sgte circuito L:
Hacer ejercicios ms simples previo a este
14 / 16
Estructuras de Programacin
Para determinar l tabla de verdad de Y, se debe partir con las tablas de verdad de las
compuertas lgicas
A*B*C
A*B*C
= A*B*C + A*B*C + AB
A*B
Ahora es posible ver las posibilidades para Y, recordando el comportamiento de las distintas
compuertas lgicas.
A*B*C = 00000001.
A*B*C = 00000100.
A*B
= 00110000.
Ahora, las salidas de las compuertas AND se deben combinar en la compuerta OR para hacer la
15 / 16
Estructuras de Programacin
tabla de verdad del circuito L.
Ahora el comportamiento de OR es 1 si cualquiera de las entradas es 1.
A*B*C
A*B*C
A*B
Ejercicios:
1. Dadas las siguientes sucesiones de bits, determinar las salidas generadas por (a) una
compuerta AND y (b) una compuerta OR:
(a)
A=110001
B=101101
(b)
A=10001111
B=00111100
(c)
A=101100111000
B=000111001101
2. Dada las siguientes sucesiones de bits, determinar las salidas generadas por una compuerta
NOT.
(a) A=110001
(b) A=10001111
(c) A=101100111000
3. Dadas las siguientes sucesiones de bits, encontrar las tablas de verdad indicadas:
A=1100110110
B=1110000111
C=1010010110
(a) A+B+C
(b) A*B*C
(c) C*(A+B)
(d) A*(B+C)
A*B*C
A*B*C
A*B*C
A*B*C
A*B*C
A*B*C
16 / 16
A*B*C