Expressões lógicas são frequentemente utilizadas em linguage...
if not (A and B)
pode ser reescrito, para quaisquer valores lógicos de A e B, com a expressão:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a B - not A or not B.
Vamos entender o porquê dessa escolha detalhadamente.
O tema da questão aborda expressões lógicas, que são fundamentais em diversas linguagens de programação. No contexto apresentado, a questão exige o reconhecimento e a aplicação das leis de De Morgan, que são usadas para simplificar expressões lógicas complexas.
As leis de De Morgan são duas transformações úteis na lógica proposicional e na teoria de conjuntos. Elas afirmam que:
- not (A and B) é equivalente a not A or not B
- not (A or B) é equivalente a not A and not B
Na expressão fornecida if not (A and B), queremos reescrevê-la de uma forma equivalente. Aplicando a primeira lei de De Morgan:
not (A and B) é equivalente a not A or not B
Portanto, a expressão correta para reescrever if not (A and B) é not A or not B. Logo, a alternativa B está correta.
Agora, vamos analisar por que as outras alternativas estão incorretas:
- A - A or B: Esta alternativa não é equivalente a not (A and B). Na verdade, A or B é a negação de not A and not B, o que é diferente.
- B - not A or not B: Esta é a alternativa correta, como discutido acima, por aplicação direta da lei de De Morgan.
- C - not A or B: Esta alternativa não segue corretamente a lei de De Morgan. Para que a expressão seja equivalente a not (A and B), ambas as partes A e B devem ser negadas.
- D - not (not A or not B): Esta expressão complica a lógica inicial e, ao expandi-la, resulta em uma expressão original não simplificada.
- E - A and B: Esta alternativa é exatamente a expressão que estamos tentando negar, então claramente não é correta.
Espero que esta explicação tenha esclarecido suas dúvidas. Entender e aplicar as leis de De Morgan é fundamental para simplificar e manipular expressões lógicas, especialmente em contextos de programação.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
if not (A and B) <-> ~ ( A ^ B) <-> ~ A V ~B ( not A or not B )
Para resolver basta assumir valores:
A ^ B - Tabela Verdade.
V V V
V F F
F V F
F F F
Negação ta tabela verdade: F V V V
Tenso esse resultado, basta substiruir nas opções e ver qual tem valor igual:
A) A or B ---> Saída: V V V F
B) not A or not B:
~ A v ~B
F F F
F V V
V F V
V V V
Gabarito: B
Conceituando: not (A and B)
Esse "not" fora do parênteses vai distribuir para todo mundo dentro do parênteses (distributiva), ou seja, irá negar o conectivo "and" e as variáveis "A" e o "B". Temos aqui uma aplicação da lei de Morgan.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Aplicando na questão
- O que é a lei de Morgan? R: Negação Conectivo "e" vira "ou".
- Como fazer? 2 regras básicas:
R: (1) Nega as duas proposições e (2) troca o conectivo e pelo "ou" ou vice-versa
Ex.: not (A and B) <=> not A or not B.
Apenas reforçando para não ter dúvidas: como a questão pediu uma forma de reescrever a expressão "not (A and B)", eu vou ter que negar tudo dentro parênteses, (1º) pois apliquei a distributiva e (2º) para negar o conectivo "and", tive que usar a lei de Morgan, chegando assim ao GABARITO B.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Dica bizurada:
Viram que eu destaquei as letras "e" e "o" na frase acima? Pois bem, não foi à toa. Depois que eu fiz isso, nunca mais me esqueci de como aplicar a lei de Morgan.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
"Pra cima deles" - Delegado da Cunha
Força Guerreiro!!!!!!
~(a^b) => ~a \/ ~b
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo