Enunciado: Verifique se a produção ( P ) é maior que 1000 kg OU a área ( A ) é menor que 2 ha, mas não ambos.

Entradas e Saídas:

Entrada: P=1200, A=3 Saída: True
Entrada: P=800, A=1 Saída: True

Passo 1

Então, o que o enunciado quer? Precisamos checar se
  1. a produção é maior que 1000 kg
    OU
  2. a área é menor que 2 ha
    MAS não os dois ao mesmo tempo.
    Isso é exatamente um “OU exclusivo” (XOR) em lógica booleana. Para resolver, vamos usar conceitos básicos de lógica: operador OR ( ), AND ( ) e NOT ( ), e mostrar como construir o XOR.

Passo 2

Teoria rapidinha:
  • OR ( X oplus Y ;=; (X lor Y);land;lnot(X land Y) ) é verdadeiro se ao menos uma das condições for verdadeira.
  • AND ( ) é verdadeiro só se as duas forem verdadeiras.
  • NOT ( ) inverte valor lógico.
    O XOR de duas proposições e pode ser expresso como
Ou seja, “um ou outro, mas não os dois”.

Passo 3

Vamos definir as duas condições:
C1: P > 1000, C2: A < 2
Então a expressão que queremos é
C1 oplus C2 ;=; (C1 lor C2);land;lnot(C1 land C2)

Passo 4

Avaliação para C1 lor C2 = V lor F = V, C1 land C2 = V land F = F, lnot(C1 land C2) = lnot F = V e C1 oplus C2 = V land V = V :
  1. : → verdadeiro.
  2. : → falso.
    Agora
Logo

Passo 5

Avaliação para C1 lor C2 = F lor V = V, C1 land C2 = F land V = F, lnot(C1 land C2) = lnot F = V, e C1 oplus C2 = V land V = V :
  1. : → falso.
  2. : → verdadeiro.
    Então
e de novo

Resposta

Para as duas entradas dadas a saída é True.

Exercícios relacionados