Sendo a, b, c e d variáveis do tipo boolean, qual dos comand...

Próximas questões
Com base no mesmo assunto
Q491585 Algoritmos e Estrutura de Dados
Sendo a, b, c e d variáveis do tipo boolean, qual dos comandos abaixo NÃO é equivalente aos demais?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa Correta: D

Vamos entender por que a alternativa D é a que NÃO é equivalente aos demais comandos.

Para resolver essa questão, é necessário ter um bom entendimento sobre álgebra booleana e como as expressões lógicas podem ser simplificadas ou reescritas.

Vamos analisar cada uma das alternativas:

A - if ( b && !(!a && !c)) d = true;

A expressão dentro do if pode ser simplificada. O termo !(!a && !c) é equivalente a a || c pelo teorema de De Morgan. Então temos:

if ( b && (a || c)) d = true;

Isso significa que d será true se b for verdadeiro e a ou c forem verdadeiros.

B - if (! (!a || !b) || (b && c) ) d = b;

Simplificando a expressão, ! (!a || !b) é equivalente a a && b. Então temos:

if (a && b || (b && c)) d = b;

Isso significa que d será igual a b se a && b ou b && c forem verdadeiros.

C - if ( ( a && b ) || ( !a && b && c) ) d = b;

Não há necessidade de simplificação maior aqui. Isso significa que d será igual a b se a && b ou !a && b && c forem verdadeiros.

D - if ( ( a && b && !c ) || ( !a && b && c)) d = true;

Essa expressão significa que d será true se a && b && !c ou !a && b && c forem verdadeiros.

Note que não há condição que cubra todas as situações onde b é verdadeiro. Apenas quando !c e c são considerados, o que é uma contradição.

E - if ( ( a || c) && b ) d = a || c;

Isso significa que d será igual a a || c se (a || c) && b forem verdadeiros.

Analisando todas as expressões, percebemos que a alternativa D é a única que se comporta de maneira diferente das demais. As outras alternativas garantem que d será definido de acordo com o valor de b e outras condições lógicas, enquanto a alternativa D apresenta uma condição específica que não cobre todas as possibilidades para b.

Resumo:

  • A, B, C, e E são logicamente equivalentes e cobrem as situações onde b é verdadeiro sob diferentes condições.
  • D não cobre todas as situações onde b é verdadeiro, sendo assim, é a resposta correta como a expressão que NÃO é equivalente.

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

Para resolver essa questão é necessário fazer uma tabela verdade para as variáveis A, B e C.

Perceba que não precisa fazer isso com a variável D, pois ela não é utilizada dentro das validações nos IFs.

 

Como a tabela ficaria imensa, coloquei em vermelho a relação inicial das variáveis a, b e c.

Em seguida, coloquei em azul as respostas de cada alternativa.

Somente a alternativa D ficou com o resultado diferente na situação em que todas as variáveis estão com o valor verdadeiro.

 

a   b    c   A   B   C   D   E

V   V   V   V   V   V   F   V

V   V   F   V   V   V   V   V

V   F   V   F    F   F   F   F

V   F   F   F    F   F   F   F

F   V   V   V   V   V   V   V

F   V   F   F    F   F   F   F

F   F   V   F    F   F   F   F

F   F   F   F    F   F   F   F

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo