sexta-feira, 14 de março de 2008

Qual a negação do OU?

Pense bem antes de responder!!!!
A negação da operação lógica OU não é a operação lógica E.
Vamos demonstrar por meio de um exemplo prático! Suponha a seguinte condição idade <= 10 || idade > 20 como necessária a uma pesquisa de opinião, que visa consultar pessoas fora da idade da adolescência.
A tabela verdade para a seguinte expressão é:
idade <= 10idade > 20idade <= 10 || idade > 20
FFF
FVV
VFV
VVV

Considerando idade uma variável inteira, para a primeira proposição temos valores de idade entre 10 e 19 anos, o que torna falso a expressão (condição de adolescentes).
Na segunda proposição temos valores de idade maiores que 20, ou seja, não existem (matematicamente falando) adolescentes cuja idade é superior a vinte anos.
Na terceira proposição temos valores de idade menores ou iguais a 10, ou seja crianças.
A quarta proposição é matematicamente impossível porque não existem valores de idade que satisfaçam a equação. Se você conhece um valor de idade que ao mesmo tempo é maior que 20 e menor ou igual a 10, por favor, me avise!
Agora vamos analisar a negação da expressão e ver o que acontece.
idade <= 10idade > 20!(idade <= 10 || idade > 20)
FFV
FVF
VFF
VVF

Como é de se esperar, o resultado final é invertido, em outras palavras, a negação é verdadeira para a faixa de idade que compreende a adolescência.
Comparando com a operação E, o resultado não é o mesmo! Veja a tabela verdade abaixo:
idade <= 10idade > 20idade <= 10 && idade > 20
FFF
FVF
VFF
VVV

Note que a primeira e a última linha da negação do OU e da operação E não coincidem, o que mostra que não são operações equivalentes. Uma outra curiosidade nesse caso, a operação E nunca será verdadeira porque não existe valor de idade que é menor ou igual a 10 E maior que 20.
Pelo exemplo, a negação da expressão limitou os valores que compreendem a adolescência, ou seja valores de idade maior que 10 E menor ou igual a 20, que expresso em linguagem C fica idade > 10 && idade <= 20
Vamos novamente recorrer a tabela verdade, considerando a nova expressão.
idade > 10idade <= 20idade > 10 && idade <= 20
VVV
VFF
FVF
FFF

Note o resultado dessa tabela verdade com a segunda... São iguais!!!
Agora note os operandos... Eles são os complementos lógicos dos operandos da segunda tabela!!!
O que ocorreu com a operação lógica? Veja que a operação lógica OU foi trocada pela E.
O que você acabou de verificar foi a aplicação da lei de De Morgan que diz:
!(A || B) == !A && !B
!(A && B) == !A || !B
Finalizando, a negação das operações lógicas E e OU é facilmente resolvida pela lei de De Morgan.

Nenhum comentário: