Você está na página 1de 13

Introdução aos Sistemas

Computacionais
Disciplina: 113468

Prof. Marcus Vinicius Lamar


Álgebra Booleana
UnB CIC0003 – Introdução aos Sistemas Computacionais

Álgebra Booleana
◼ Desenvolvida por George Boole por volta
de 1847, numa tentativa de formalizar o
pensamento humano
Reino Unido, 2/11/1815
Irlanda, 8/12/1864

 Na álgebra Booleana, variáveis podem assumir


apenas os valores 1 (verdadeiro) e 0 (falso)

 Define as operações lógicas básicas AND, OR e NOT

3
UnB CIC0003 – Introdução aos Sistemas Computacionais

Principais Operações...
 Operação AND (E) ou Produto Lógico
Tabela Verdade
Equação Lógica: y=a∙b a b y=a AND b
0 0 0
0 1 0
Em C: y=a&&b; #bitwise y=a&b
1 0 0
Em Python: y=a and b #bitwise y=a&b 1 1 1

Resultado 1ª condição 2ª condição


Exemplo: Irei à festa se eu tiver convite E a Ana for.
Y=1 irei à festa Y=0 não irei à festa
a=1 tenho convite a=0 não tenho convite
b=1 Ana vai à festa b=0 Ana não vai à festa
Y=a.b
4
UnB CIC0003 – Introdução aos Sistemas Computacionais

Principais Operações...
 Operação OR (OU) ou Soma Lógica
Tabela Verdade
Equação Lógica: y=a+b a b y=a OR b
0 0 0
0 1 1
Em C: y=a||b; #bitwise y=a|b
1 0 1
Em Python: y=a or b #bitwise y=a|b 1 1 1

Resultado 1ª condição 2ª condição


Exemplo: Irei à festa se eu tiver convite OU a Ana me convidar.
Y=1 irei à festa Y=0 não irei à festa
a=1 tenho convite a=0 não tenho convite
b=1 Ana me convidou b=0 Ana não me convidou
Y=a+b
5
UnB CIC0003 – Introdução aos Sistemas Computacionais

Principais Operações...
 Operação NOT (NÃO) ou Complemento
Tabela Verdade
a y=NOT a
Equação Lógica: y=തa
0 1
1 0
Em C: y=!a; #bitwise y=~a
Em Python: y= not a #bitwise y=~a

Resultado Condição
Exemplo: Irei à festa se o Gabriel não for.
Y=1 irei à festa Y=0 não irei à festa
a=1 Gabriel vai à festa a=0 Gabriel não vai à festa
Y=a
ത = a’ (forma preguiçosa de escrever!)

6
UnB CIC0003 – Introdução aos Sistemas Computacionais

Precedência dos Operadores Booleanos


 1. ( ) → avalia primeiro conteúdo dos parênteses
 2. NOT (’)
 3. AND (.) avaliados da esquerda para a direita
 4. OR (+)
y=a∙b+c y=a+b∙c
1º: a.b 1º: b.c
2º: a.b + c 2º: a + b.c

y= a+bത ∙c+dത ത c+dത


y=a+b∙
1º: b’ 1º: d’
2º: a + b’ 2º: c+d’
3º: (a + b’).c 3º: b’.(c+d’)
4º: (a + b’).c + d’ 4º: a+ b’.(c+d’)
7
UnB CIC0003 – Introdução aos Sistemas Computacionais

Axiomas da Álgebra Booleana...


 Identidade: a⋅1 = a a.0 = 0
a+0 = a a+1 = 1

 Complemento: aത ⋅a = 0
aത +a = 1

 Associatividade: a⋅ b⋅c = a⋅b ⋅c


a+ b+c = a+b +c

 Comutatividade: a⋅b = b⋅a


a+b = b+a

 Distributividade: a⋅ b+c = a⋅b + a⋅c


a+ b⋅c = a+b ⋅ a+c
8
UnB CIC0003 – Introdução aos Sistemas Computacionais

Operações Derivadas...
a b y=a NAND b
 Operação NAND (NÃO E) 0 0 1
Equação Lógica: y=a⋅b 0 1 1
1 0 1
1 1 0
Em C: y=!(a&&b); #bitwise y=~(a&b)
Em Python: y=not(a and b) #bitwise y=~(a&b)

a b y=a NOR b
 Operação NOR (NÃO OU) 0 0 1

Equação Lógica: y=a+b 0 1 0


1 0 0
1 1 0
Em C: y=!(a||b); #bitwise y=~(a|b)
Em Python: y=not(a or b) #bitwise y=~(a|b)

10
UnB CIC0003 – Introdução aos Sistemas Computacionais

Operações Derivadas...
 Operação XOR (OU EXCLUSIVO) a b y=a XOR b
0 0 0
Equação Lógica: y=a⨁b 0 1 1
1 0 1

Em C: y=(a!=b); #bitwise y=a^b 1 1 0

Em Python: y=(a!=b) #bitwise y=a^b

a b y=a XNOR b
 Operação XNOR (COINCIDÊNCIA) 0 0 1
0 1 0
Equação Lógica: y=a⊕b=a⨀b 1 0 0
1 1 1
Em C: y=(a==b); #bitwise y=~(a^b)
Em Python: y=(a==b) #bitwise y=~(a^b)

11
UnB CIC0003 – Introdução aos Sistemas Computacionais

Teoremas de De Morgan

Augustus De Morgan
(Índia, 27/06/1806 — Londres, 18/03/1871)

◼ O complemento do produto lógico das variáveis a e b


corresponde à soma lógica do complemento das variáveis
a ∙ b = aത + bത

◼ O complemento da soma lógica das variáveis a e b


corresponde ao produto lógico do complemento das variáveis
a + b = aത ∙ bത

Exercício provar 12
UnB CIC0003 – Introdução aos Sistemas Computacionais

Avaliando Expressões
Booleanas
◼ Fazer uma tabela verdade a b c y
com todas as possíveis 0 0 0 1
combinações das variáveis 0 0 1 0
de entrada: 0 1 0 1
0 1 1 0
1 0 0 0
◼ y= a∙bത +c
1 0 1 0
1 1 0 1
1 1 1 0

14
UnB CIC0003 – Introdução aos Sistemas Computacionais

Formulando Expressões Booleanas


◼ O alarme de um carro deve tocar a buzina se ele (o alarme)
estiver ligado e o carro for sacudido ou um dos 4 sensores de
janela for acionado

Deve-se atribuir variáveis Booleanas a cada condição e elaborar a


expressão que indica quando a buzina deve tocar
◼ Alarme (a=1 : alarme ligado a=0 : alarme desligado)
◼ Sensores das janelas j1, j2, j3 e j4, (j=1:acionado j=0:não acionado)

◼ Sensor de movimento do carro que indica se ele é movido ou


sacudido (m=1:acionado m=0:não acionado)
◼ Buzina (y =1: a buzina deve ser acionada y=0:não acionar a buzina)

◼ y = a AND (m OR j1 OR j2 OR j3 OR j4)
◼ y=a∙(m+j1 +j2 +j3 +j4 )
15

Você também pode gostar