Fundamentos da Informática – Lógica Booleana – 1

A lógica booleana é a base de toda a informática.

Na álgebra booleana não existem números: Existem variáveis lógicas, que podem ser ou Verdadeiras, representadas por 1, ou Falsas, representadas por 0. .

Como dito nos artigos anteriores, computadores só entendem se algo esta ligado ou desligado  (1 e 0). Se considerarmos o valor de “ligado” como sendo verdadeiro, e o “Desligado” como sendo falso, podemos criar uma máquinas capazes de tomar decisões.

Existem 3 operações booleanas: A função AND (e), a OR (ou) e a NOT (negação).

A função AND e a OR recebem 2 valores lógicos, retornando um valor lógico.

A função AND retorna verdadeiro se os dois valores recebidos forem verdadeiros. Caso um dos valores, ou os 2 valores seja falso, seu resultado será falso.

A função OR retorna falso se os dois valores de entrada forem falsos. Se qualquer valor de entrada for verdadeiro, ou se os 2 valores forem verdadeiros, seu resultado será verdadeiro.

A função NOT recebe somente um valor. Sua resposta será sempre o oposto da entrada: ou seja: NOT 1 =0, e NOT 0 = 1.

Complicado? As seguintes tabelas ajudarão a explicar:

tabela-verdade-funcao-andtabela-verdade-funcao-ortabela-verdade-funcao-not

É importante saber de cor estas tabelas – o que não é dificil né?

Existe uma precedência de operadores: Primeiro calcula-se o NOT. O resto dos operadores calcula-se na ordem que esta escrito. Se alguma operação estiver entre parentes, calcula-se ela antes… exatamente como na matematica convencional que todos aprenderam na escola.

Vamos calcular umas operações simples:

por exemplo:

Calculando 1 AND 0.

O valor1 é 1. O valor 2 é 0. Olhando na tabela verdade da função AND, veremos que para valor1 como 1 e valor 2 com 0, o resultado é 0.

Portanto:

1 AND 0 = 0.

Calculando 0 OR 1.

Olhando na tabela verdade da funcao OR, veremos que para valor1 como 0 e valor2 como 1, o resultado é 1.

e NOT 1? O resultado é 0 (olhe na tabela verdade…)

Agora, a grande pergunta: Para que isto pode ser util para nossa vida? Simples:

Imagine que alguem esteja desenvolvendo um mecanismo para manter a agua aquecida. O circuito é composto por 2 sensores (A e B )e uma resistencia (C).

O sensor A mede a temperatura da agua. Sempre que a temperatura estiver abaixo de 50 graus, este sensor envia um sinal elétrico. Quando a agua ultrapassa os 50 graus, o sensor para de enviar o sinal.

O sensor B mede o nivel de agua, enviando sinal elétrico se o nivel está abaixo da metade do recipiente. Quando a agua estiver acima da metade, ele para de enviar sinal.

Desejamos um circuito que ligue a resistência (seja 1) sempre que a água estiver abaixo de 50 graus E o nível de água estiver acima da metade. (para simplificar, considere que a água nunca vai ficar exatamente na metade do recipiente: Ou esta acima, ou esta abaixo da metade).

Observe o enunciado: A palavra E indica que as DUAS condições precisam ser verdadeiras, logo, usaremos uma função AND.

No momento, nossa equação está desta forma:

<condição1> AND <condição2>.

Vamos determinar que elementos servem para nossas condições 1 e 2. Primeiro pela condição 1:
A condição 1 diz que: “A agua deve estar abaixo de 50 graus”.

Sabemos que as seguintes afirmações são verdadeiras:

1) O sensor A será verdadeiro se a agua estiver abaixo de 50 graus.
2) O sensor B será verdadeiro se a agua estiver abaixo da metade.

A primeira afirmação (sobre o sensor A) é verdadeira e funciona para nossa primeira condição. Como o sinal enviado por A serve para a nossa condição 1, usaremos ele na equação.
Nossa equação agora está desta forma:

A AND <condição2>.

Vamos determinar a condição 2

A condição diz que:

“E o nível de água estiver acima da metade.”

Não existe um sensor que retorne verdadeiro se a água estiver acima da metade, porém, o sensor B retorna verdadeiro se a agua estiver abaixo da metade. É Obvio que, se a agua está abaixo da metade, é porque não está acima da metade. Assim como se a agua não está acima da metade, é porque ela esta abaixo da metade. Portanto, dizer que “E o nivel da agua estiver acima da metade”, é o mesmo que dizer “E o nivel da agua NÃO estiver abaixo da metade”.

Como o sensor B é verdadeiro se a agua estiver abaixo da metade, ao negarmos o sensor, obteremos um valor verdadeiro quando a agua estiver acima da metade, portanto, a condição 2 é NOT B.

Portanto, a equação que resolve o nosso problema de aquecimento da água é a seguinte:

A AND NOT B.

Vamos verificar?

Se a agua estiver abaixo de 50 graus e o nivel da agua estiver abaixo da metade: Ou seja: A=1 e B=1.

A AND NOT B.

1 AND NOT 1

Calculando NOT 1, obtemos 0.

1 AND 0.

O resultado de 1 AND 0 é 0, portanto, a resistencia NÃO ligará.

E se a agua estiver acima de 50 graus e o nivel estiver acima da metade? Ou seja, A=0, B=0

A AND NOT B.

0 AND NOT 0

calculando o NOT 0, obtemos 1:

0 AND 1. Que é igual a 0. A resistencia não ligará.

E se a agua estiver abaixo de 50 graus e o nivel acima da metade? Ou seja, A=1, B=0?

A AND NOT B

1 AND NOT 0

calculando o NOT 0, obtemos 1.

1 AND 1, que é igual a 1, ou seja, a resistencia ligará.

E, finalmente: E se a agua estiver acima de 50 graus e o nivel abaixo da metade? A=0, B=1

A AND NOT B

1 AND NOT 1

1 AND 0, que é 0. A resistência não ligará.

Como podemos observar, a equação realmente resolveu nossos problemas.

É claro que ficar interpretando texto para chegar a uma conclusão é meio complicado, existe métodos para resolver isto de forma mais simples e objetiva.

No proximo artigo veremos algumas regrinhas e propriedades destas estas operações.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: