Operadores Lógicos

Olá, gente doida,

 Nos algoritmos as tomadas de decisões muitas vezes são cruciais para concluir seu desfecho. A tomada de decisão pode ser feita utilizando operadores relacionais, ou até mesmo da própria lógica para testar os dados. Hoje trago um pouco sobre testes de  lógica, os quais utilizam operadores lógicos, e adiante apresentarei quatro tipos básicos e algumas combinações.

 O esquema para se usar operadores lógicos é parecido com o esquema de se usar operadores relacionais, contudo, a principal diferença entre eles é que operadores lógicos operam sob tipos de dados lógicos.

 Antes de continuar, vale lembrar, que como explicado em tipos de dados, os dados lógicos também podem ser representados por 1 e 0, ou Sim e Não, sendo 1 para Verdadeiro (Sim) e 0 para Falso (Não).

 O operador AND (operador binário de conjunção: E ), compara se o valor do dado_a E o valor do dado_b são Verdadeiros. O AND tem resultado Verdadeiro em casos onde todos os valores dos dados comparados são Verdadeiros, caso contrário seu resultado será Falso. O operador AND normalmente é representado por &&. Sua tabela da verdade fica:


[dado_a] Operador [dado_b] Resultado
1 && 1 1
1 && 0 0
0 && 1 0
0 && 0 0
Tabela 1: Operador "AND/E/&&". Fonte: Autoria própria.
 Um exemplo deste operador pode analisado na frase "Se possuir caro E combustível: viajarei", a qual o operador AND é utilizado, já que só é possível dirigir um carro comum quando se têm combustível. A partir da frase, pode-se montar o seguinte teste/pergunta:

-Possuo carro E combustível?;

 Analisa-se então as possibilidades, associando-as com a tabela verdade do operador utilizado:


Possuo veículo?  Operador  Possuo combustível?  Viajarei?
Sim E Sim Sim
Sim E Não Não
Não E Sim Não
Não E Não Não
Tabela 2: Exemplo - operador "AND/E/&&". Fonte: Autoria própria.


 O operador OR (operador binário de disjunção: OU ), compara se o valor do dado_a OU o valor do dado_b são Verdadeiros. O OU tem resultado Verdadeiro em casos onde qualquer um dos dados comparados possuem valores Verdadeiros, caso contrário seu resultado será Falso. O operador OR normalmente é representado por ||. Sua tabela da verdade fica:


[dado_a] Operador [dado_b] Resultado
1 || 1 1
1 || 0 1
0 || 1 1
0 || 0 0
Tabela 3: Operador "OR/OU/||". Fonte: Autoria própria.
 Um exemplo deste operador pode analisado na frase "Se eles tiverem suco OU refrigerante: comprarei uma bebida", a qual o operador OU é utilizado, já que comprarei bebida tanto se houver suco, quanto se houver refrigerante. A partir da frase, pode-ser montar o seguinte teste/pergunta:

-Têm suco OU refrigerante?;

 Analisa-se então as possibilidades, associando-as com a tabela verdade do operador utilizado:


Têm suco?  Operador  Têm refrigerante?  Comprarei bebida?
Sim OU Sim Sim
Sim OU Não Sim
Não OU Sim Sim
Não OU Não Não
Tabela 4: Exemplo - operador "OR/OU/||". Fonte: Autoria própria.


 O operador XOR (ou-exclusivo: OU... OU... ), compara se OU valor do dado_a OU o valor do dado_b é Verdadeiros. O XOR tem resultado Verdadeiro em casos onde somente um dos dados comparados possuem valor Verdadeiros, caso contrário seu resultado será Falso. O operador XOR normalmente é representado por ^. Sua tabela da verdade fica:


[dado_a] Operador [dado_b] Resultado
1 ^ 1 0
1 ^ 0 1
0 ^ 1 1
0 ^ 0 0
Tabela 5: Operador "XOR/OU...OU.../^". Fonte: Autoria própria.
 Um exemplo deste operador pode analisado na frase "Ou estou de olhos abertos, ou estou de olhos fechados", a qual o operador XOR é utilizado, já que só é possível estar ou de olhos fechados, ou de olhos abertos. A partir da frase, pode-se montar o seguinte teste/pergunta:

-Estou de olhos abertos OU estou de olhos fechados?;

 Analisa-se então as possibilidades, associando-as com a tabela verdade do operador utilizado:


Estou de olhos abertos?  Operador  Estou de olhos fechados?  Possível?
Sim OU... OU... Sim Não
Sim OU... OU... Não Sim
Não OU... OU... Sim Sim
Não OU... OU... Não Não
Tabela 6: Exemplo - operador "XOR/OU...OU.../^". Fonte: Autoria própria.


 O operador NOT (operador unário: NÃO ), inverte o valor do dado ou resultado, de Verdadeiro para Falso, ou de Falso para Verdadeiro. O operador NOT normalmente é representado por !. Sua tabela da verdade fica:


[dado_a] Operador Resultado
1 ! 0
0 ! 1
Tabela 7: Operador "NOT/NÃO/!". Fonte: Autoria própria.
 Um exemplo deste operador pode analisado na frase "Se NÃO for mulher é obrigatório o alistamento nas forças armadas", a qual o operador NOT é utilizado, já que o alistamento nas forças armadas só é obrigatório para o sexo masculino. A partir da frase, pode-se montar o seguinte teste/pergunta:

-É mulher?;

 Analisa-se então as possibilidades, associando-as com a tabela verdade do operador utilizado:


É mulher? Operador Alistamento é obrigatório?
Sim Não Não
Não Não Sim
Tabela 8: Operador "NOT/NÃO/!". Fonte: Autoria própria.


 O operador NOT também pode ser combinado com outros operadores lógicos, invertendo os resultados da tabela verdade do operador combinado (os resultados que seriam Verdadeiro se tornam Falso), podendo representar operadores como NAND, NOR e NXOR, como mostrado nas tabelas abaixo.


[dado_a] Operador [dado_b] Resultado
1 !(&&) 1 0
1 !(&&) 0 1
0 !(&&) 1 1
0 !(&&) 0 1
Tabela 9: Operador "NAND/NÃO(E)/!(&&)". Fonte: Autoria própria.

[dado_a] Operador [dado_b] Resultado
1 !(||) 1 0
1 !(||) 0 0
0 !(||) 1 0
0 !(||) 0 1
Tabela 10: Operador "NOR/NÃO(OU)/!(||)". Fonte: Autoria própria.

[dado_a] Operador [dado_b] Resultado
1 !(^) 1 1
1 !(^) 0 0
0 !(^) 1 0
0 !(^) 0 1
Tabela 11: Operador "NXOR/NÃO(OU...OU...)/!(^)". Fonte: Autoria própria.

 Utilizando operadores lógicos e operadores relacionais, como >= (maior OU igual) e <= (menor OU igual), estes também podem ser representados por expressões como:

[expressao_a] Operador [expressao_b] Resultado
(a > b) || (a == b) a >= b
(a < b) || (a == b) a <= b
Tabela 12: Operações lógicas com relacionais equivalentes. Fonte: Autoria própria.

Foi utilizado:

-https://pt.wikipedia.org/wiki/Operador_l%C3%B3gico

-http://www.cristiancechinel.pro.br/my_files/algorithms/bookhtml/node45.html


Até breve!

Comentários

Postar um comentário

Postagens mais visitadas deste blog

Estruturas Condicionais - If e If-Else

Fluxograma - resumidamente