Você está na página 1de 72

Curso de Adaptação - CSE

"Lógica de Programação e Algoritmos"

Fátima Mattiello-Francisco – 3 aulas


Maurício G. V. Ferreira – 2 aulas

CSE/ETE – Jan 2022

Avaliação: próxima segunda-feira (17/01)


08:00 – 12:00h
FatimaMattiello2022
Objetivo do curso

Conceitos usados em computação

Variáveis e funções lógicas

Programação e Algoritmos

FatimaMattiello2022
Conceitos

Circuitos lógicos – base dos sistemas


computacionais digitais
As operações de um computador digital são combinações de
operações aritméticas simples e lógicas básicas:
• somar bits,
• complementar bits (para fazer subtrações),
• comparar bits,
• mover bits.

Fisicamente realizadas por


circuitos eletrônicos,
chamados circuitos lógicos
(ou gates - "portas" lógicas)
Conceitos

Computadores digitais (binários) –


construídos com circuitos lógicos

Os sistemas lógicos são estudados pela álgebra de


chaveamentos, um ramo da álgebra moderna ou
álgebra de Boole, conceituada pelo matemático inglês
George Boole (1815 - 1864).
.

Boole construiu sua lógica a partir de símbolos,


representando as expressões por letras e ligando-as
através de conectivos - símbolos algébricos.
Conteúdo
Álgebra das variáveis lógicas
• Variáveis e funções
• Implementação de sistema lógico
• Álgebra Booleana
• Teorema De Morgan
• Simplificação de expressões booleanas

Funções Lógicas
• Diagrama de Venn
• Formas Padrão
• Mintermos e Maxtermos
• Mapas de Karnaugh

Modelo do Computador

Exercícios em sala: tópicos cobertos na aula


Variáveis e funções lógicas

Variáveis:
• uma variável (do latim variabĭlis) é aquilo que
varia ou pode variar.

» representada por um nome


ex: variável x

» o campo de uma variável é o intervalo de valores


que pode ser assumido pela variável, ex:

x pode variar sobre o campo dos reais


x pode ser restrita ao intervalo de -17 a -4
x pode ser restrita a valores inteiros de 1 a 10
Variáveis e funções lógicas
Função:
• uma função é uma regra através da qual se determina o
valor de uma segunda variável y (dependente) do valor da
variável (independente) x

» Relação de dependência representada por y = f (x)

» ex: a relação funcional entre x e y


y = 5 x2 + 3
Quando o número de valores permitidos a x for finito
é possível especificar uma função construindo uma tabela

x y = f (x) x y = f (x)
0 3
Verde Prossiga Relação funcional
1 8 Função numérica Amarelo Devagar
2 23
Vermelho Pare
3 48

As variáveis dependente e independente não precisam ser numéricas!!!


Variáveis e funções lógicas
Variáveis Lógicas:
• uma variável lógica é uma variável que tem 3
propriedades distintas:

1. a variável só pode assumir um de dois valores possíveis

2. os valores são expressos por afirmações declarativas

3. os dois valores possíveis, expressos por afirmações


declarativas, devem ser mutuamente exclusivos

Exemplo do semáforo: a variável x seria uma variável lógica se


• Existissem apenas dois valores para x : verde ou vermelho
• Devido à mutua exclusividade: x = vermelho
poderia ser representado por x = não-verde

Assim: x = não-verde poderia ser escrito x = verde = vermelho


Variáveis e funções lógicas
Valores de uma variável lógica :
• no caso de um tipo arbitrário de variável, os valores
numéricos podem representar qualquer coisa
(temperatura, pressão, distância, velocidade ou tempo)

• do ponto de vista matemático, ao considerar a relação


entre função ( y = f (x) ) e variável (x) não interessa o que
é representado por elas – os valores assumidos são
ambos números.

Similarmente, se dermos a uma variável lógica ( A ) os dois


valores possíveis genéricos (Verdadeiro e Falso), podemos
considerar a variável independentemente do que ela representa.

Assim a função lógica: Z= f(A) poderia assumir os mesmos


valores genéricos e mutuamente exclusivos (Verdadeiro e Falso)
Variáveis e funções lógicas
Exemplo semáforo:
• usaremos a notação A e Z respectivamente para representar
as variáveis lógicas independente e dependente

• a relação de dependência é a relação funcional entre a cor do


semáforo e o comportamento do motorista
A Z = f (A)
Verde Prossiga Relação Funcional
Vermelho Pare

• Se atribuirmos arbitrariamente à variável lógica A o valor V


representando “o semáforo está Vermelho” (A = V )
Automaticamente, A = F representará a afirmação “o
semáforo está Verde”.
• Se atribuição similar for feita para Z associando o valor Z = V
à afirmação “o motorista prossegue” teremos a

A Z = f (A)
F V Tabela Verdade
V F
Variáveis e funções lógicas
Funções de UMA variável lógica:

• 2 valores possíveis (V e F) que podem ser colocados


• 2 linhas na coluna Z para os possíveis valores de entrada

A Z = f (A) A Z = f (A) A Z = f (A) A Z = f (A)


F F F V F F F V
V V V F V F V V

Z=A Z=A Z=F Z=V

Portanto, o número possível de funções diferentes é 2x2 = 4

O número de funções que as variáveis de entrada podem assumir pode


ser calculado por 2n, onde n é o número de variáveis de entrada
Variáveis e funções lógicas

Funções de DUAS variáveis lógicas:


A B Z = f (A, B)
• 2 valores possíveis (V e F) F F
• 2 variáveis (A e B) F V
• A tabela verdade tem 4 linhas (entradas) V F
V V
Variáveis e funções lógicas

Funções de DUAS variáveis lógicas:


A B Z = f (A, B)
• 2 valores possíveis (V e F) F F
• 2 variáveis (A e B) F V
• A tabela verdade tem 4 linhas (entradas) V F
V V

As funções Z = f (A, B) possíveis são 16

AND
Z =A.B
OR
A B Z=A.B Z = A + B A B Z=A+B
F F F
F F F
F V F
F V V
V F F
V F V
V V V
V V V
Implementação de um sistema lógico
Conceito de função lógica na prática:
Exemplo relacionado com a função AND

Projeto de uma máquina simples que DEDUZ


quando um avião com dois pilotos está sem nenhum a postos

• 2 chaves (1 e 2) colocadas nos assentos dos 2 pilotos (Pa e Pb),


(cada chave fecha quando o piloto deixar sua poltrona)
• Quando as chaves 1 AND 2 estiverem fechadas, o alarme toca

Chave Chave
1 2 A = V quando Pa não estiver na poltrona
A = F quando Pa estiver sentado
Bateria Campainha
de alarme
B = V quando Pb não estiver na poltrona
B = F quando Pb estiver sentado

Z = f( A. B) = V quando avião estiver sem piloto


Variáveis e funções lógicas

Notação 0 e 1:
• alternativa para A = V (verdadeiro) é A = 1
• alternativa para A = F (falso) é A = 0
• 0 e 1 não representam números mas valores lógicos de
uma variável

Tabelas Verdade

AND OR
A B Z=A.B A B Z=A+B
0 0 0 0 0 0
0 1 0 0 1 1
1 0 0 1 0 1
1 1 1 1 1 1
Álgebra booleana

• é a álgebra das variáveis lógicas

• conceito introduzido pelo matemático


George Boole por volta de 1850

• sua adaptação para sistemas digitais


foi introduzida por Claude Shannon
do Bell Laboratories, em 1938
George Boole 1815 - 1864

→ autodidata inglês, dedicou-se ao estudo da


matemática.

1844 – ganhou medalha de ouro da Royal Society pelo


trabalho sobre cálculo de operadores

1847 - publicou “ The Mathematical Analysis of Logic”


em que introduz os conceitos de lógica simbólica
demonstrando que a lógica pode ser representada por
equações algébricas → fundamental para a
construção e programação dos computadores
eletrônicos iniciada cerca de 100 anos mais tarde.
Álgebra de Boole (definida em 1847)

1937 - Claude Shannon do MIT estabeleceu a relação


entre a Álgebra de Boole e os circuitos eletrônicos:
transferindo os dois estados lógicos (SIM e NÃO)
para diferentes diferenças de potencial no circuito.
Computadores usam a Álgebra de Boole, a qual foi
materializada em microchips que contêm milhares
de interruptores miniaturizados combinados em
portas (gates) lógicas que produzem os resultados
das operações utilizando uma linguagem binária
(0s e 1s).

1985 – circuitos integrados FPGAs (Field Programmable


Gate Array, "Arranjo de Portas Programáveis em Campo")
consistem de um grande arranjo de unidades lógicas
configuráveis utilizadas para a implementação de
funções lógicas.
Operadores da Álgebra de Booleana

São basicamente três os operadores da álgebra


booleana:

AND, OR e NOT

→ Estes três operadores são as funções básicas


necessárias para efetuar operações lógicas.

(A título de comparação, cabe observar, que são 4 as operações


aritméticas básicas: soma, subtração, divisão e multiplicação).
Representação dos Operadores da
Álgebra de Booleana
Na literatura, podemos encontrar os operadores
booleanos representados por diferentes símbolos:
E OU NÃO
AND OR NOT
∧ ∨ ¬
^ v ~
. + traço sobre a expressão

sistemas digitais - valores lógicos de uma variável são geralmente


tensões elétricas mantidas entre um par de fios
Operadores da Álgebra de Booleana

Os operadores de ágebra booleana têm


sido usados na descrição de circuitos
eletrônicos. Neste uso, podem ser
aplicadas também as seguintes
operações booleanas:

NAND (NOT AND),


NOR (NOT OR) e
XOR (OR exclusivo).
Operação Lógica AND definição

A
A.B
B

Entrada Saída
A B X = A.B
0 0 0
0 1 0
1 0 0
1 1 1
Operação Lógica AND exemplo

Seja A = 0110 ; B = 1101

Então X = A.B = 0100

A B X = A.B
A = 0110 0 0 0
B = 1101 0 1 0
1 0 0
A.B= 0100 1 1 1
Operação Lógica OR definição

A A+B
B

Entrada Saída
A B X = A+B
0 0 0
0 1 1
1 0 1
1 1 1
Operação Lógica OR exemplo

Seja A = 0110 ; B = 1110

Então X = A+B = 1110

A B X = A+B

A = 0110
0 0 0
0 1 1
B = 1110 1 0 1
1 1 1
A+B= 1110
Operação Lógica NOT definição

A A

Entrada Saída
A B X=A
0 1
1 0
Operação Lógica NOT exemplo

Seja A = 0110 ; então X = A = 1001

A= 0110 A X=A
A= 1001 0
1
1
0
Operação Lógica NOT AND (NAND)
definição

A A.B
B

Entrada Saída
A BB X = A.B
0 0 1
0 1 1
1 0 1
1 1 0
Operação Lógica NOT AND (NAND)
exemplo

Exemplo: A = 0110 ; B = 1101

X = A.B = (0110 . 1101) = (0100) = 1011

A= 0110 A BB X = A.B
B= 1101 0 0 1
0 1 1
A.B = 0100 1 0 1

A.B = 1011
1 1 0
Operação Lógica NOT OR (NOR)
definição

A
B A+B

Entrada Saída
A BB X = A+B
0 0 1
0 1 0
1 0 0
1 1 0
Operação Lógica NOT OR (NOR)
exemplo

Exemplo: A = 0110 ; B = 1110

X = A+B = (0110 + 1110) = (1110) = 0001

A= 0110 A BB X = A+B
B= 1110 0 0 1
0 1 0
A+B = 1110 1 0 0

A+B = 0001 1 1 0
Operação Lógica Exclusive OR
(XOR) definição

A A B
B

Entrada Saída
A BB X=A B
0 0 0
0 1 1
1 0 1
1 1 0
Operação Lógica Exclusive OR
(XOR) exemplo

Exemplo: A = 11001 ; B = 11110

X=A B = 00111

A= 11001 A
0
BB
0
X=A
0
B

B= 11110 0 1 1
1 0 1
A B = 00111 1 1 0
Resumo das operações básicas da
Álgebra de Boole
Expressões Lógicas

Uma expressão lógica é uma expressão algébrica


formada por:
variáveis binárias,
por operadores lógicos (AND, OR, NOT, XOR,…),
por parênteses (às vezes)
e por sinal de igual.

Exemplo: A = ( B . C + D) + (B D)

Uma expressão algébrica é usada para representar uma constante, uma variável
ou uma combinação de variáveis e constantes relacionadas por um número finito
de operações (adição, subtração, multiplicação, divisão, radiciação, potenciação).
Exemplo: 3x+2y2
Expressões lógicas booleanas

São expressões que contém


operações lógicas entre valores
binários de entrada e, que têm
como resultado um único valor
binário (saída da função).
Cálculo de Expressões Lógicas

Para o cálculo de expressões lógicas booleanas é


preciso saber a prioridade dos operadores.

A prioridade dos operadores lógicos é:

MAIS prioritário
NÃO
E
menos prioritário OU (XOR)

→ ordem de precedência do “ou exclusivo” em relação ao “ou” :


alguns autores consideram que ambos possuem a mesma precedência (já que o “ou
exclusivo” pode ser decomposto em uma operação “ou” de duas entradas). Possuindo a
mesma precedência, a operação localizada mais a esquerda é realizada primeiro.
outros autores consideram que OU precede XOR
→ expressões entre parêntesis são resolvidas primeiro
Cálculo de Expressões Lógicas - exemplo

Sejam as variáveis A=1; B=0; C=1; D=1.


Calcule o valor de X na expressão:

X =(A + B . C) D (X = 0)

X =(1 + 0.1) 1

Solução (1 + 0) 1
passo a
passo (1 + 1) 1

1 1 =0
Cálculo de Expressões Lógicas – exercício

Sejam as variáveis:
A=1001; B=0010;
C=1110; D=1111.

Calcule,

X=A ( B . C + D) + (B D)
Solução

A=1001; B=0010; C=1110; D=1111.

X =(A ( B . C + D)) + (B D)

1001 (0010. 1110 + 1111) + (0010 1111)


1101 0000
1001 (1101 + 1111) +(0010 0000)

1001 (1111) + (0010)


0110 + 0010 = 0110
Diagrama Lógico de uma estrutura de
portas – gera função lógica

F=X.Y.Z+X.Y.Z +X.Z
Diagrama Lógico de uma estrutura de
portas – gera função lógica
1 0
Seja:
0 0
X=1 0
Y=0
Z=0 0 0
0
0 1
1 0
0

F=X.Y.Z+X.Y.Z +X.Z
? simplificação
Simplificação de expressões booleanas

Teoremas e propriedades da
álgebra booleana podem ser
aplicados para simplificar
funções lógicas e, com isso,
reduzir o número de
operações.
Teoremas ou Leis da Álgebra de Boole

O complemento do complemento
t1 A =A de uma variável lógica é a própria variável.
Muito importante,
embora evidente por si só!

0 =1
Nos leva às EQUAÇÕES DUAIS
1 =0
Aplicando-se o princípio da dualidade,
temos 8 teoremas envolvendo uma única variável
Listados na forma de pares duais
Teoremas ou Leis da Álgebra de Boole

8 teoremas envolvendo uma única variável

OR AND
t2a A+0=A (identidade) A.1=A t2b
t3a A+1=1 (elemento nulo) A.0=0 t3b
t4a A+A=A (equivalência) A.A=A t4b
t5a A+A=1 (complemento) A.A=0 t5b

sob a forma de pares duais


Teoremas ou Leis da Álgebra de Boole

8 teoremas envolvendo uma única variável

OR AND
t2a A+0=A (identidade) A.1=A t2b
t3a A+1=1 (elemento nulo) A.0=0 t3b
t4a A+A=A (equivalência) A.A=A t4b
t5a A+A=1 (complemento) A.A=0 t5b

sob a forma de pares duais


Teoremas ou Leis da Álgebra de Boole

8 teoremas envolvendo uma única variável

OR AND
t2a A+0=A (identidade) A.1=A t2b
t3a A+1=1 (elemento nulo) A.0=0 t3b
t4a A+A=A (equivalência) A.A=A t4b
t5a A+A=1 (complemento) A.A=0 t5b

sob a forma de pares duais


Teoremas ou Leis da Álgebra de Boole

8 teoremas envolvendo uma única variável

OR AND
t2a A+0=A (identidade) A.1=A t2b
t3a A+1=1 (elemento nulo) A.0=0 t3b
t4a A+A=A (equivalência) A.A=A t4b
t5a A+A=1 (complemento) A.A=0 t5b

sob a forma de pares duais


Teoremas ou Leis da Álgebra de Boole
Alguns teoremas envolvendo duas e três variáveis
sob a forma de pares duais

t6a A + AB = A A (A+B)= A t6b


t7a AB + AB = A (A + B) (A + B) = A t7b
t8a A + AB = A + B A(A + B) = AB t8b
Teoremas ou Leis da Álgebra de Boole
Alguns teoremas envolvendo duas e três variáveis
sob a forma de pares duais

t6a A + AB = A A (A+B)= A t6b


t7a AB + AB = A (A + B) (A + B) = A t7b
t8a A + AB = A + B A(A + B) = AB t8b
Teoremas ou Leis da Álgebra de Boole
Alguns teoremas envolvendo duas e três variáveis
sob a forma de pares duais

t6a A + AB = A A (A+B)= A t6b


t7a AB + AB = A (A + B) (A + B) = A t7b
t8a A + AB = A + B A(A + B) = AB t8b
Teoremas ou Leis da Álgebra de Boole
Alguns teoremas envolvendo duas e três variáveis
sob a forma de pares duais

t6a A + AB = A A (A+B)= A t6b


t7a AB + AB = A (A + B) (A + B) = A t7b
t8a A + AB = A + B A(A + B) = AB t8b

t9a A+BC = (A+B)( A+C) A(B+C) = AB +AC t9b


t10a A B+A C = (A+C)( A +B) (A+B)(A+C)= AC + AB t10b
t11a A B+A C+BC = AB+AC
(A+B)(A+C)(B+C) = (A+B)(A + C) t11b
Verificação do Teorema - exemplo

Comparando expressões por meio de Tabelas Verdade:

t8a A + AB = A + B Será que é memo?

A B Z1 = A + AB Z2 = A + B
0 0 0 + 1 .0 = 0 0+0=0
0 1 0 + 1 .1 = 1 0+1=1
1 0 1 + 0 .0 = 1 1+0=1
1 1 1 + 0 .1 = 1 1+1=1
Verificação do Teorema - exemplo

Por comparação das Tabelas Verdade:

t8a A + AB = A + B

A B Z1 = A + AB Z2 = A + B
0 0 0 + 1 .0 = 0 0+0=0
0 1 0 + 1 .1 = 1 0+1=1
1 0 1 + 0 .0 = 1 1+0=1
1 1 1 + 0 .1 = 1 1+1=1
Verificação do Teorema - exemplo

Por comparação das Tabelas Verdade:

t8a A + AB = A + B

A B Z1 = A + AB Z2 = A + B
0 0 0 + 1 .0 = 0 0+0=0
0 1 0 + 1 .1 = 1 0+1=1
1 0 1 + 0 .0 = 1 1+0=1
1 1 1 + 0 .1 = 1 1+1=1
Verificação do Teorema - exemplo

Por comparação das Tabelas Verdade:

t8a A + AB = A + B

A B Z1 = A + AB Z2 = A + B
0 0 0 + 1 .0 = 0 0+0=0
0 1 0 + 1 .1 = 1 0+1=1
1 0 1 + 0 .0 = 1 1+0=1
1 1 1 + 0 .1 = 1 1+1=1

Z1 = Z2 para todos os valores


possíveis de A e B

Está provado que a equação é correta!


Teoremas ou Leis da Álgebra de Boole
Alguns teoremas envolvendo duas e três variáveis
sob a forma de pares duais

t6a A + AB = A A (A+B)= A t6b


t7a AB + AB = A (A + B) (A + B) = A t7b
t8a A + AB = A + B A(A + B) = AB t8b

t9a A+BC = (A+B)( A+C) A(B+C) = AB +AC t9b


t10a A B+A C = (A+C)( A +B) (A+B)(A+C)= AC + AB t10b
t11a A B+A C+BC = AB+AC
(A+B)(A+C)(B+C) = (A+B)(A + C) t11b
Propriedades da Álgebra de Boole

• A álgebra de variáveis lógicas é Distributiva

A(B+C) = AB +AC t9b

• Fatoração Similar à álgebra comum


AB+AC = A( B+C)

Propriedade distributiva para seu DUAL


t9a A+BC = (A+B)( A+C)

Nem tão intuitivo


Propriedade Comutativa

Sejam A, B e C variáveis boleanas.


Na propriedade comutativa temos que,

A. B=B. A

A+B=B+A

AB=BA
Propriedade Associativa

Sejam A, B e C variáveis booleanas.


Na propriedade associativa, temos que:

(A.B).C=A.(B.C)=A.B.C

(A+B)+C=A+(B+C)=A+B+C

(AB)C=A(BC)=ABC
Leis de absorção

• Teoremas da álgebra de Boole


conhecidos como Leis da Absorção

t6a A + AB = A A (A+B)= A t6b

t7a AB + AB = A (A + B) (A + B) = A t7b
Exercícios

• Provar as Leis da Absorção


t6a A + AB = A A (A+B)= A t6b
Exercícios (solução)

• Provar as Leis da Absorção


t6a A + AB = A A (A+B)= A t6b

A B Z1 = A + AB Z2 = A (A+ B)
0 0 0 + 0 .0 = 0 0(0 + 0) = 0
0 1 0 + 0 .1 = 0 0(0 + 1) = 0
1 0 1 + 1 .0 = 1 1(1 + 0) = 1
1 1 1 + 1 .1 = 1 1(1 + 1) = 1
Exercícios

• Provar as Leis da Absorção

t7a AB + AB = A (A + B) (A + B) = A t7b
Teorema de “De Morgan”
Augustus De Morgan (1806-1871)

O complemento de um
1) A . B = A + B produto de variáveis é a
soma dos complementos
de cada variável
2) A + B = A . B

Muda-se o operador sem alterar a função.

Aplica-se a um número arbitrário de variáveis!!!


Exemplo de simplificação

Dada a expressão
X = A (A + B)

Simplificando... aplicamos à expressão:

(1) Propriedade distributiva


X = A.A + A.B
(2) Lei de complemento
X= 0 + A.B X = AB
(3) Lei de identidade
X = A.B
Exercícios
(1)Prove que a seguinte simplificação é possível:

w = x ( x + y) temos w = xy

(2)Dados os valores A= 10, B= 11, C=01 e D=01,


calcule o valor das expressões e desenhe seus
diagramas lógicos

(a) X = B.C.A + C D. A

(b) X = B C . A + B . A + (C.D.D.A) (B + C)
Solução (1)
(1)Prove que a seguinte simplificação é possível:

w = x ( x + y) temos w = xy

w = x ( x + y) = xy A(A+B) = AB t8b

ou, alternativamente

w = x ( x + y) = xx + xy A(B+C) = AB+AC t9b


= 0 + xy AA = 0
= xy A+0 = A

complemento distributiva
identidade
Solução (2a)
(2) A= 10, B= 11, C=01 e D=01
Mais prioritário NOT
X = B.C.A + C D. A AND
11.10.10 + 01 01.10 OR (XOR)
menos prioritário
10 + 01 00
11 00 = 11

A BCA
C B
C

X
DA
D
Solução (2b)
Mais prioritário NOT
AND
OR (XOR)
(2) A= 10, B= 11, C=01 e D=01
menos prioritário

X=B C.A + B. A + (C.D.D.A) (B + C)


01.00.10
00 01.10 + 11.10 + 00 (11+01)
00 00 + 01 + 00 11
00 + 01 +00 11
01 +00 11
01 11 = 10
Solução (2b)
Mais prioritário NOT
AND
OR (XOR)
(2) A= 10, B= 11, C=01 e D=01
menos prioritário

X=B C.A + B. A + (C.D.D.A) (B + C)


A 00

X
C

00
B
C
Mais informações em:
TAUB, H. Circuitos Digitais e Microprocessadores. McGraw-Hill,
1982.
Idoeta, I.V.; Capuano, G.F – Elementos de Eletrônica Digital –
40ª. Edição – Flavio Zandonatto- UFSM
https://www.academia.edu/36261173/ELEMENTOS_DE_ELETR
%C3%94NICA_DIGITAL_CAPUANO_E_IDOETA_pdf
Mecatrônica Industrial -
https://www.academia.edu/36166655/Sistemas_Digitais_Fund
amentos_e_Aplica%C3%A7%C3%B5es_pdf
Álgebra Booleana e Circuitos Lógicos - Introdução aos Sistemas
Digitais - José Luís Güntzel e Francisco Assis do Nascimento
www.inf.ufsc.br/~guntzel/isd/isd2.pdf

http://www.decom.fee.unicamp.br/~cardoso/ie344b/Introducao_
FPGA_Fluxo_de_Projeto.pdf
http://pt.wikipedia.org/wiki/Teoremas_de_De_Morgan

Você também pode gostar