Navigation


Aula Extra 3: Lógica Booleana

06:33, Postado por: Anderson Porto, Sem comentários


Quem é George Boole?
"Matemático inglês (2/11/1815-8/12/1864). Considerado o pai da lógica moderna. Suas teorias têm implicações no desenvolvimento do computador, baseado em dígitos binários. Nasce em Lincoln, em família pobre, e estuda por conta própria, dedicando-se ao latim e ao grego. Aos 16 anos, começa a trabalhar como professor de escolas elementares.

Quatro anos mais tarde, funda um colégio particular, que dirige por vários anos. Interessa-se por matemática e, depois de ler obras de franceses como Laplace e Legendre, passa a redigir artigos para o Jornal de Matemática da Universidade de Cambridge.

Em 1847, no artigo Análise Matemática da Lógica, introduz o uso de símbolos para expressar processos lógicos que podem então ser lidos com o mesmo rigor de uma equação algébrica. Com isso, dá origem à lógica moderna.

É condecorado pela Royal Society, em 1844, por suas contribuições ao desenvolvimento da análise matemática. Em 1848 publica Os Cálculos da Lógica e, em 1854, Uma Investigação das Leis do Pensamento."


Iniciando:
Lógica é a área da matemática que estuda as relações entre proposições.

Para ser uma proposição eu devo poder dar o valor de verdadeiro ou falso por exemplo:
2+2=5 Isto é uma proposição, pois eu sei o valór lógico dela: falso
O dia esta bonito. isto não é uma proposição pois não é possível estabelecer o valor lógico, já que tal afirmação é relativa.

O Que Interessa
Para a informática, interessa a lógica na hora de programar, para entender as relações, vamos conceituá-las...

CONJUNÇÃO: relação lógica que se admite o valor verdadeiro caso as partes em questão sejam verdadeiras.
Símbolo matemático: ^ (na escrita 'e')
Símbolo em programação: and ou &&
Tabela Verdade:
V ^ V = V (se as duas são verdadeiras dá verdadeiro)
V ^ F = F (se uma for falsa da falso)
F ^ F = F (se as duas forem falsas da falso)
V = proposição verdadeira
F = Proposição falsa
Exemplos:
1:
Escrita: Dois mais dois é quatro e três mais 1 é seis
Símbolo: 2 + 2 = 4 ^ 3 + 1= 6
Programação: 2 + 2 == 5 and 3 + 1 == 6
Valor Lógico: falso, pois 3 + 1 = 4 e não 6, como uma das proposições é falsa e estamos na conjunção, a outra não importa, fica tudo falso.
2:
Escrita: Dois mais dois é cinco e três mais 1 é 4
Símbolo: 2 + 2 = 4 ^ 3 + 1 = 4
Programação: 2 + 2 == 4 and 3 + 1== 4
Valor Lógico: como 2 + 2 é 4 e 3 + 1 é 6, esta proposição é verdadeira.

DISJUNÇÃO: relação lógica que se admite o valor verdadeiro se pelo menos uma das proposições forem verdadeiras
Símbolo matemático: v (na escrita 'ou')
Símbolo em programação: or ou ||
Tabela Verdade:
V v V = V (se as duas são verdadeiras dá verdadeiro)
V v F = V (se uma for verdadeiro, dá verdadeiro)
F v F = F (se as duas forem falsas da falso)
V = proposição verdadeira
F = Proposição falsa
Exemplos:
Escrita: Dois mais dois é quatro ou três mais 1 é seis
Símbolo: 2+2=4 v 3+1=6
Programação: 2+2==5 or 3+1==6
Valor Lógico: verdadeiro, pois mesmo 3+1 diferente de 6, 2+2 é 4 e só precisamos de uma proposição verdadeira para dar tudo V.

NEGAÇÃO: operador lógico que muda o valor de uma proposição
Símbolo matemático: ! (na escrita 'não')
Símbolo em programação: not ou !
Tabela Verdade:
!V = F (contrario de verdadeiro é falso)
!F = V (contrario de falso é verdadeiro)
V = proposição verdadeira
F = Proposição falsa
Exemplos:
Escrita: b não é 4
Símbolo: !b=4
Programação: !b==4
Valor Lógico: impossível determinar, o exemplo não é uma proposição da forma que está, coloquei só pra dar uma idéia.

CONDICIONAL: a principal das relações lógicas, possui um antecedente e um consequente.
Símbolo matemático: -> (na escrita 'se..então')
Símbolo em programação: if
Tabela Verdade:
V -> V = V (se verdadeiro então verdadeiro, então verdadeiro)
V -> F = V (se verdateiro então falso, enão verdadeiro)
F -> F = V (se falso então falso, então verdadeiro)
F -> V = F (se falso então verdadeiro, então falso)
V = proposição verdadeira
F = Proposição falsa
Exemplos:
vou pular logo para a parte de programação para deixar tudo mais explícito.

APLICAÇÕES
1:
em rgss:

if rand(2) == 1 and 3 > 4
l = 3
elsif rand(2) == 0 or rand(2) == 2
l=4
else
l=9
end

em linguagem corrente:

se um número qualquer de 0 a 2 for 1 e tres maior que 4
a variável l é 3
mas se um número qualquer de 0 a 2 for 0 ou um número qualquer de 0 a 2 for 2
a variável l é 4
em quaiquer outra hipótese
a variável l é 9

Em caso de dúvidas é só perguntar

No Comment