aula 39

Operadores lógicos Conjunção, Disjunção e Negação

Nós já aprendemos como funciona a estrutura de decisão se/senao. No exemplo: se fizer sol irei a praia, senão ficarei em casa lendo um livro.

Vimos que ele pode ser reorganizada assim:
se (fizer sol)
irei a praia.
senão
ficarei em casa lendo um livro.

Assim fica fácil perceber que é realizado um teste (está fazendo sol?) e que temos duas ações possíveis mas apenas uma será realizada. Se o teste for verdadeiro a ação a ser realizada é ir a praia. Contudo, se o teste for falso a ação a ser realizada será ficar em casa lendo um livro.

Mas, só podemos fazer um teste dentro da nossa estrutura de decisão?

Não. Podemos fazer vários testes. Contudo, para fazer isso nós precisamos dos operadores lógicos.

São 3 os operadores lógicos:

  • Disjunção (OU)
  • Conjunção (E)
  • Negação (!)

Operador Lógico de Disjunção (OU)

Para entender esse operador vamos imaginar o seguinte exemplo: Imagine que há gratuidade no transporte público para crianças com até 5 anos de idade e idosos a partir de 60 anos. Peça a idade do usuário e diga se ele tem direito ou não a gratuidade.

É fácil perceber que existem duas possibilidades para a existência da gratuidade, ter menos de 6 anos OU ter mais de 59 anos. Assim, temos a seguinte tabela verdade para o operador lógico OU:

teste 1teste 2teste 1 OU teste 2
vvv
vfv
fvv
fff
Tabela verdade para a Disjunção.

Perceba que com o operador lógico OU o resultado apenas é falso quando os dois testes são falsos. Essa ideia pode ser expressa assim:

se (idade menor que 6 OU idade maior que 59)
tem direito a gratuidade.
senão
não tem direito a gratuidade.

Operador Lógico de Conjunção (E)

Perceba que nosso problema pode ser avaliado de outro ponto de vista. Não tem direito à gratuidade quem tem:

  • idade maior que 5 e,
  • idade menor que 60.

Observe que agora mudamos nosso ponto de referência. Não estamos testando para descobrir quem tem gratuidade mas para descobrir quem não tem gratuidade.

Podemos representar isso da seguinte forma:

se (idade maior que 5 E idade menor que 60)
não tem direito a gratuidade.
senão
tem direito a gratuidade.

Nosso resultado final será um pouco diferente. A tabela verdade da Conjunção é:

teste 1teste 2teste 1 E teste 2
vvv
vff
fvf
fff
Tabela verdade para a Conjunção.

O ponto importante aqui é perceber que com o operador lógico E o resultado final será verdadeiro apenas quando os dois testes individualmente forem verdadeiros.

Operador Lógica de Negação (!)

Por fim, nosso último operador lógico é o de negação normalmente representado pelo sinal de exclamação (!).

Sua tabela verdade é mais simples como vemos a seguir:

teste! teste
vf
fv
Tabela verdade para a Negação.

Este operador é mais simples. Basicamente ele nega o resultado de algum teste, ou seja, se o resultado lógico de um teste for verdadeiro, ao negar teremos como resultado falso. De forma semelhante, se o resultado de um teste for falso, ao negar, teremos como resultado verdadeiro.

A princípio talvez não fique tão evidente onde a negação pode ser útil. Darei um exemplo aqui mas isso ficará mais claro conforme você for aprimorando seus conhecimentos em programação.

Ainda com nosso exemplo da gratuidade, temos nossos dois testes:

  • idade maior que 5 e,
  • idade menor que 60.

Ao fazer estes testes podemos negar o resultado final, assim:
se ( ! (idade maior que 5 E idade menor que 60) )
tem direito a gratuidade.
senão
não tem direito a gratuidade.

Dessa forma, se o usuário tiver 40 anos por exemplo, os dois testes serão verdadeiros, como vimos na tabela do operador lógico E.

Contudo, o resultado final está sendo negado, tornando então o verdadeiro em falso, imprimindo assim a mensagem dizendo que o usuário não tem direito a gratuidade. Observe que neste caso a par de parênteses interno é obrigatório, uma vez que desejamos negar o resultado final dos dois testes e não apenas do teste à esquerda.



Deixe um comentário

2 × dois =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.