As proposições:
Os átomos, na lógica, são representado como letras minusculas do alfabeto. Já a proposição total a ser analisada pode ser representada por uma letra maiúscula. Veja o exemplo:
A água do chuveiro está fria: Acabou o gás, ou aquecedor está no mínimo.
A proposição a ser analisada é: "Acabou o gás, ou aquecedor está no mínimo". Temos dois átomos:
a = "Acabou o gás"
b = "aquecedor está no minimo"
A proposição então pode ser representada como:
A = a OU b
Conectores:
O conector "E" é escrito na lógica matemática como "Λ". Porém, como estamos focados na área informática, usaremos "&" e "&&". O primeiro está ao nível de bits o segundo de conjunção lógica. Explicarei a diferença quando for conveniente, até lá vamos ignorar essa diferença.
Já o conector "OU" é escrito como um "V" na lógica matemática. Da mesma forma, vamos preferir a notação informática que é "|" e "||". O ou exclusivo, ou "XOR" é representado como um "V" na lógica matemática e como um "^" na informática, ao nível de bits.
O sinal de negação é, tanto na lógica matemática, quanto na informática, ao nível de bits, representado por um "~" e no nível lógico por um "!".
Exemplos:
A = a || b (a OU b)
B = a && b (a E b)
C = !a (não a)
Hierarquia das operações:
Assim como na aritmética as operações obedecem uma ordem de resolução a lógica e suas operações tem sua hierarquia.
Primeiramente são resolvidas as operações entre parênteses () , depois as entre colchetes [], as entre chaves {} e por fim as externas. No entanto, em algoritmos computacionais, os colchetes e as chaves, em geral tem outras funções e por motivos de sintaxe só usamos os parênteses. Por isso a regra é resolver primeiro as operações nos parênteses mais internos e depois os mais externos. Ou seja, a operação:
!{a & [(b | c) | (a &d)]}
Ficaria:
!(a & ((b | c) | (a&d)))
E a ordem de operação seria:
1º) b | c
2º) a & d
3º) (b | c) | (a & d)
4º) a & ((b | c) | (a&d))
5º) !(a & ((b | c) | (a&d)))
Dentre as operações, as de negação são executadas em primeiro lugar as negações (! ou ~) e em seguida as conexões E, OU e OU exclusivo (&, | e ^). Sempre da esquerda para a direita.
Não estamos tratando delas aqui agora, mas só por curiosidade, as implicações SE e SE E SOMENTE SE, são tratadas por último.
Tabela verdade:
A tabela verdade é uma poderosa ferramenta para analisar o valor lógico de uma proposição. Ela é simplesmente uma tabela (ou matriz) onde as colunas são constituídas pelos átomos, moléculas e finalmente a proposição inteira e as linhas são preenchidas pelos valores lógicos que os mesmos podem assumir.
Vejamos este exemplo:
A = (a||b)&&(a&&c)
A tabela deverá ter nas 3 primeiras colunas os valores dos átomos a,b,c. Na 4ª e na 5ª coluna as moléculas (a||b) e (a&&c) e por fim a proposição em si.
Como temos 3 átomos e cada um pode assumir apenas dois valores (verdadeiro ou falso), então para cobrir todas as combinação possíveis teremos 2x2x2, ou 2³, ou seja, 8 linhas. Com isso, podemos construir a seguinte tabela:
Tabela verdade |
Vamos preencher a primeira linha, supondo que todos os átomos são verdadeiros:
Agora percebam: como "a" é verdadeiro e "b" é verdadeiro, "a || b" só poderá ser verdadeiro. Da mesma forma, como "a" e "c" são verdadeiros "a && c" será verdadeiro:
Como as duas moléculas são verdadeiras, a conexão das duas pelo conector "E" será verdadeira e a proposição por fim será verdadeira.
A próxima linha será "a" e "b" verdadeiros e "c" falso, a terceira "a" e "c" verdadeiros e "b" falso e assim por diante, até cobrir todas as possibilidades. A análise das moléculas e da proposição vai variar, obviamente de acordo com o valor lógico dos átomos.
Ao final, nossa tabela ficará assim:
E com ela podemos analisar todos os resultados possíveis da proposição e a probabilidade de conseguirmos um valor verdadeiro.
Algumas tabelas verdade analisando conectores:
a E b |
a OU b |
a OU exclusivo b |
não a |
Exercícios:
"Muito que bem", vou a partir de agora passar alguns exercícios por postagem, para ajudar a fixar o conteúdo passado. As respostas aos exercícios serão postados juntos com o próximo item da série e eu estarei atento aos comentários para tirar eventuais dúvidas.
1) Se uma proposição tem "n" átomos, quantas linhas sua tabela verdade deverá ter?
2) A proposição P = (a || b) && ((a&&b)||(c||d)) gerará uma tabela verdade com quantas linhas? E quantas colunas ela deverá ter?
3) Monte as tabelas verdade das seguintes proposições:
P = (a||b) && c
Q = a || (~a)
R = a || b || c
S = a || b && c
T = a && b || c
U = a && b && c
V = (a||b) && ( b||c)
X = ((a&&b)||c)&&((a||d)&&(b||d))
Z = !(a||b)
A= !(a&&b)
B=!(a^b)
4) Identifique os átomos e moléculas, monte a expressão lógica usando a simbologia adequada e faça a tabela verdade das seguintes proposições:
P = Ou ela, ou eu!
Q = Aceite eu e o cachorro, ou vá dormir fora de casa.
R = Dê um jeito naquele ninho de metralhadoras e naquele cara com o lança foguetes, ou dê a volta no morro e ataque o inimigo por trás.
S = Não bocejarás e nem arrotarás!
Considerações finais:
Mais uma vez ressalto que o conteúdo aqui é adaptado. Posso ter omitido e até distorcido alguns conceitos da lógica matemática para facilitar o entendimento do leitor. Por isso se você tiver interesse em se aprofundar no assunto de fato, sugiro que procure apostilas na internet.
Na nossa próxima "aula" (prevista para 19/09), exploraremos as funções lógicas do BrOffice Calc/ MS Office Excel para construir pequenos programas.
Até mais ver.
Nenhum comentário:
Postar um comentário