Buscar

Livro de Lógica da Computação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 71 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 71 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 71 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

LÓGICA DA 
COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA 
BAGAGI JUNIOR
“A Faculdade Católica Paulista tem por missão exercer uma ação integrada de suas atividades educacionais, visando à 
geração, sistematização e disseminação do conhecimento, 
para formar profissionais empreendedores que promovam 
a transformação e o desenvolvimento social, econômico e 
cultural da comunidade em que está inserida.
Missão da Faculdade Católica Paulista
 Av. Cristo Rei, 305 - Banzato, CEP 17515-200 Marília - São Paulo.
 www.uca.edu.br
Nenhuma parte desta publicação poderá ser reproduzida por qualquer meio ou forma 
sem autorização. Todos os gráficos, tabelas e elementos são creditados à autoria, 
salvo quando indicada a referência, sendo de inteira responsabilidade da autoria a 
emissão de conceitos.
Diretor Geral | Valdir Carrenho Junior
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
SUMÁRIO
AULA 01
AULA 02
AULA 03
AULA 04
AULA 05
AULA 06
AULA 07
AULA 08
AULA 09
AULA 10
AULA 11
AULA 12
AULA 13
AULA 14
AULA 15
AULA 16
LÓGICA PROPOSICIONAL 
CONECTIVOS LÓGICOS - CONJUNÇÃO
CONECTIVOS LÓGICOS - DISJUNÇÃO
CONECTIVOS LÓGICOS - NEGAÇÃO
CONECTIVOS LÓGICOS - CONDICIONAL
CONECTIVOS LÓGICOS - BICONDICIONAL
CONECTIVOS LÓGICOS - FÓRMULAS 
TEORIA DOS CONJUNTOS - CONJUNTOS
TEORIA DOS CONJUNTOS - PERTINÊNCIA E 
CONTINÊNCIA
TEORIA DOS CONJUNTOS - DIAGRAMA DE VENN
TEORIA DOS CONJUNTOS - OPERAÇÕES NÃO 
REVERSÍVEIS
TEORIA DOS CONJUNTOS - OPERAÇÕES REVERSÍVEIS
RELAÇÕES E FUNÇÕES - CONCEITOS 
RELAÇÕES E FUNÇÕES - TIPOS
RELAÇÕES E FUNÇÕES - BANCO DE DADOS 
RELACIONAL
REVISÃO
05
10
13
16
19
23
26
31
35
38
43
47
52
55
58
62
FACULDADE CATÓLICA PAULISTA | 4
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
INTRODUÇÃO
O pensamento lógico sobre situações do nosso dia a dia é algo mais comum do que 
imaginamos, sempre que pensamos em lógica associamos a cálculos matemáticos e 
desenvolvimento de software. Porém, o pensamento lógico é algo que utilizamos naturalmente 
durante as nossas vidas para tomar decisões assertivas durante o dia, sempre que precisamos 
tomar uma decisão racional, ou seja, que seja verdade ou falso, sobre algo que impacta o 
nosso cotidiano.
No desenvolvimento de software, a lógica e os conceitos matemáticos são itens importantes, 
pois o computador precisa de instruções e condicionais lógicas para realizar o processamento 
de informações e entregar o comportamento esperado.
Nesta disciplina iremos nos aprofundar nos conceitos de lógica proposicional, conectivos 
lógicos e teoria dos conjuntos e suas relações e funções, sempre traçando um paralelo de 
como esses conceitos são usados na computação e no desenvolvimento de software.
FACULDADE CATÓLICA PAULISTA | 5
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
AULA 1
LÓGICA PROPOSICIONAL
1.1 Lógica
Chamamos de lógica proposicional ou lógica formal os princípios e métodos de pensarmos de 
maneira organizada sobre determinadas situações, quando precisamos analisar racionalmente 
sobre qual a melhor ação a tomar em cada situação. Utilizamos esse tipo de raciocínio 
diariamente de forma natural avaliando algumas situações do cotidiano, mas principalmente 
em atividades que temos que julgar algum princípio de valor, como uma investigação criminal, 
estudos científicos, tomadas de decisões racionais e na programação de softwares.
Segundo Daghlian (2015, p. 17), o pensamento lógico teve início há muitos anos, já com 
os filósofos que a utilizavam em suas discussões:
A Lógica começou a desenvolver-se com Aristóteles (384-322 a.C.) e os 
antigos filósofos gregos passaram a usar em suas discussões sentenças 
enunciadas nas formas afirmativa e negativa, resultando assim grande 
simplificação e clareza, com efeito de grande valia em toda a Matemática.
 
E foi aprofundado por diversos estudos ao longo do tempo, até chegarmos no conceito 
da lógica booleana ou lógica de Boole do estudo de George Boole (inglês, 1815-1864) sobre 
os princípios e métodos para distinguir sentenças verdadeiras e falsas.
Neste estudo, temos dois princípios fundamentais da lógica matemática que consideramos 
sempre:
Princípio da Não-contradição
Nenhuma proposição pode ser simultaneamente “verdadeira e falsa”. 
Dessa forma, considerando o exemplo de proposição: “Está chovendo agora”, este tipo de 
afirmação não pode ter 2 respostas simultâneas, ou está chovendo ou não está. 
FACULDADE CATÓLICA PAULISTA | 6
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Princípio do terceiro excluído
Uma proposição só pode ter duas respostas possíveis, sendo VERDADEIRA ou FALSA, 
não existe uma terceira resposta possível.
Pensando no mesmo exemplo “Está chovendo agora”, não existe uma terceira resposta 
possível, ou está chovendo ou não está.
1.2 Proposições
Podemos definir Proposição (ou Declaração) como uma sentença na qual possamos definir 
se a mesma é VERDADEIRA ou FALSA. Este tipo de sentença nunca poderá ser ambas as 
opções ao mesmo tempo.
Exemplo de Proposições:
A. Porto Alegre é a capital do Rio Grande do Sul. 
B. 2 + 3 = 5
C. 5 + 4 = 10
D.O João tem 18 anos
Note que todas as sentenças acima são realmente proposições, pois a resposta para cada 
uma delas só podem ser VERDADEIRO ou FALSO, mesmo no exemplo “C” que coloquei um 
cálculo errado propositalmente o resultado da mesma será FALSO.
Exemplo de não proposições
A. Que horas são?
B. Vá tomar banho.
C. Ele é muito talentoso.
D. x + 2 = 4.
Já nestes exemplos, não podemos responder simplesmente com VERDADEIRO ou FALSO. 
No exemplo “A” a pergunta está aberta, o que permite várias respostas invalidando assim o 
conceito de proposição. No exemplo “C” a informação “ele” não especifica quem estamos 
avaliando, o que não nos permite responder apenas com VERDADEIRO ou FALSO. Na opção “D” 
FACULDADE CATÓLICA PAULISTA | 7
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
como não conhecemos o valor de “x”, não conseguimos afirmar se a mesma é VERDADEIRO 
ou FALSO.
1.3 Proposições compostas e conectivos lógicos
 
Além de proposições simples que acabamos de ver também podemos analisar proposições 
compostas com mais de uma sentença ou condição para avaliarmos se a mesma é 
VERDADEIRA ou FALSA, nestes casos de proposições compostas, cada sentença terá seu 
resultado VERDADEIRO ou FALSO, porém o resultado da proposição composta dependerá 
dos conectivos lógicos envolvidos na sentença completa.
Exemplo de Proposições compostas:
A. “O Palmeiras é um time de futebol” E “um clube do estado de São Paulo”.
B. “São Paulo é um estado na Argentina” OU “São Paulo é um estado do Brasil”
C. Linux NÃO é um software livre.
D. SE “o aluno acertou mais de 70% da prova” ENTÃO “será aprovado”.
E. “Windows é um sistema operacional” SE E SOMENTE SE “Pascal é uma linguagem de 
programação”
Nas proposições compostas poderemos utilizar os seguintes conectivos lógicos:
• E (Conjunção)
• OU (Disjunção)
• NÃO (Negação)
• SE … ENTÃO … (Condicional)
• SE E SOMENTE SE (Bicondicional)
Iremos nos aprofundar mais nos conectivos lógicos nas próximas aulas e qual o resultado 
que cada conector aplica nas proposições compostas.
1.4 Tabela Verdade
A tabela-verdade nos ajuda a mapear todas as possibilidade de resposta de uma proposição 
composta, de acordo com o número de sentenças e conectivos lógicos utilizados.
FACULDADE CATÓLICA PAULISTA | 8
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Nos exemplos que veremos daqui pra frente iremos representar as proposições com 
letras maiúsculas (Exemplo: P, Q, R) e as letras “V” e “F” para VERDADEIRO ou FALSO, para 
simplificar os exemplos nas tabelas-verdade.
Considerando que temos duas proposições “P” e “Q”, e lembrando do princípios do terceiro 
excluído, cada proposição só tem duas respostas possíveis (VERDADEIRO/FALSO)
 
Agora, caso precisemos representar uma proposição composta, exemplo: “P ^ Q”, onde “^” 
representa umaconjunção “E”, no qual a proposição composta somente será VERDADEIRA 
caso sejam verdadeiras as duas proposições. Neste cenário a tabela-verdade ficará da seguinte 
forma:
Note que nesta tabela-verdade foi gerada todas as combinações possíveis entre as 
proposições “P” e “Q”, e na coluna do resultado “P ˆ Q”, apenas a primeira linha teve o 
resultado “VERDADEIRO” onde as duas opções atenderam o critério de serem verdadeiras.
FACULDADE CATÓLICA PAULISTA | 9
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Isto acontece na prática
Um exemplo atual de estudo científico utilizando conceitos lógicos para tomada de 
uma decisão, foi a aprovação do uso emergencial de vacinas contra a COVID-19 no 
Brasil, além de diversos fatores analisados pela ANVISA, o principal critério que iria 
decidir se a vacina seria aprovada ou não era uma recomendação da OMS (Organização 
Mundial de Saúde) que recomenda que eficácia das vacinas sejam superior a 50% para 
aprovação. Neste caso, ambas as vacinas avaliadas foram aprovadas seguindo esse 
critério, a vacina do Instituto Butantan atingiu a eficácia de 50,38%, enquanto a vacina 
da Fiocruz atingiu a eficácia de 70,40%.
FACULDADE CATÓLICA PAULISTA | 10
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
AULA 2
CONECTIVOS LÓGICOS - 
CONJUNÇÃO
2.1 Conjunção
Agora iremos nos aprofundar nas possibilidades de aplicação dos conectivos lógicos 
para composição de proposições mais complexas e qual o comportamento cada conectivo 
aplica sobre a proposição e seu resultado.
O primeiro conectivo que iremos abordar será a conjunção, representada pela expressão “A ⋀ 
B” na qual devemos ler da seguinte forma: “A e B”, onde o “e” da expressão é o conectivo lógico 
de conjunção, ou seja, ele une as duas proposições simples (A, B) resultado na proposição 
composta “A e B”.
Ao utilizar o conectivo de conjunção “e” a expressão composta “A e B” somente será 
VERDADEIRA quando as duas proposições simples envolvidas (A, B) forem VERDADEIRAS 
simultaneamente.
 
Observando a tabela-verdade referente à proposição “A e B”, notamos que representamos 
todas as possibilidades de combinação entre as variáveis (A, B) sendo necessárias 4 linhas 
neste exemplo. Essa quantidade de possibilidades irá variar de acordo com a quantidade 
de proposições envolvidas na proposição composta.
FACULDADE CATÓLICA PAULISTA | 11
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Outro fato importante é que apenas na primeira linha o resultado da expressão “A e B” é 
VERDADEIRA, pois ambas as proposições (A, B) são verdadeiras neste cenário atendendo 
o conceito de conjunção.
2.1.1 Exemplos
Exemplos de proposições utilizando o conectivo lógico de conjunção “E”:
→ “(Brasil fica na América do Sul” E (2 + 2 = 4) [VERDADEIRA]
→ “China fica na Europa” E (2 + 2 = 4) [FALSO]
→ “O Palmeiras é um time de futebol” E “um clube do estado de São Paulo”. [VERDADEIRA]
Vamos praticar mais sobre o conectivo de conjunção, porém agora analisando uma 
proposição do nosso dia a dia. 
Considerando o cenário de um saque de dinheiro em um caixa eletrônico por exemplo, 
para que a máquina libere o dinheiro corretamente ela precisa garantir várias condições, 
dentre elas vamos utilizar as seguintes condições:
C = “O usuário tem saldo suficiente para realizar o saque?”
D = “O usuário digitou a senha correta?”
Dessa forma, a máquina do caixa eletrônico somente poderá efetuar a liberação do dinheiro 
quando atender a seguinte condição “C e D”, ou seja, ambas as condições forem VERDADEIRAS.
Também vamos considerar o seguinte cenário:
→ O usuário possui R$ 500,00 de saldo na sua conta.
Com base nisso, teremos a seguinte tabela-verdade:
 
 
FACULDADE CATÓLICA PAULISTA | 12
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Pensando em um cenário, onde o usuário solicitou sacar R$ 100,00 e informou a senha 
correta, dessa forma, ele atendeu às duas condições da proposição e terá seu dinheiro 
liberado pela máquina do caixa eletrônico.
Analisando um outro possível cenário, no qual o usuário solicite sacar R$ 800,00 e também 
informou a senha correta, neste caso não será liberado o saque, pois o valor solicitado 
(800,00) é maior que o saldo da conta (500), mesmo que informou a senha correta, pois 
precisamos que as duas proposições sejam VERDADEIRAS.
Isto acontece na prática
No desenvolvimento de software a utilização de proposições e conectivos lógicos é 
uma das formas como os desenvolvedores utilizam para programar as condições que 
o computador irá analisar para que o software tenha o comportamento esperado. 
Com base no exemplo que analisamos do saque no caixa eletrônico, vamos ver como 
ficaria isso em um algoritmo de um software.
Dadas as condições do exemplo, verifique que na linha 5 do algoritmo o software irá 
analisar a proposição composta utilizando conjunção “(valorSaque <= saldoContaCorrente) 
E (senhaDigitada = ‘aula2’)” e caso atenda às duas condições o saque será liberado 
ao usuário.
No trecho entre as linhas 9 e 17, o algoritmo analisa a proposição simples “senhaDigitada 
<> ‘aula2’ ” para caso a senha digitada seja diferente da esperada apresentar uma 
mensagem ao usuário de “Senha incorreta”. E também a proposição “valorSaque > 
saldoContaCorrente” para se caso verdadeira, apresentar a mensagem ao usuário “Saldo 
insuficiente”.
FACULDADE CATÓLICA PAULISTA | 13
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
AULA 3
CONECTIVOS LÓGICOS - 
DISCONJUNÇÃO
3.1 Disjunção
O conectivo que iremos abordar nesta aula será a disjunção, representada pela expressão 
“A V B” na qual devemos ler da seguinte forma: “A ou B”, onde o “ou” da expressão é o 
conectivo lógico de disjunção, ele também une as duas proposições simples (A, B), porém, 
possibilitando mais resultados VERDADEIROS na proposição composta, pois tem uma função 
inclusiva na proposição.
Ao utilizar o conectivo de conjunção “ou” a expressão composta “A ou B” será VERDADEIRA 
quando pelo menos uma das proposições simples envolvidas (A, B) forem VERDADEIRAS, 
ou ambas as opções forem VERDADEIRAS.
 
A tabela-verdade acima, demonstra como serão os resultados possíveis da proposição 
“A ou B”.
Note que nas três primeiras linhas o resultado da expressão “A ou B” tem o resultado 
como VERDADEIRA, pois ambas ou pelo menos uma das proposições (A, B) são verdadeiras.
No cenário de disjunção, apenas na última linha, onde as proposições (A, B) são FALSAS, 
o resultado da proposição composta também será FALSO.
FACULDADE CATÓLICA PAULISTA | 14
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
3.1.1 Exemplos
Exemplos de proposições utilizando o conectivo lógico de disjunção “OU”:
→ Maria é estudante de Ciências da computação ou de Sistemas de informação. 
[VERDADEIRA]
→ “Google é uma ferramenta de buscas” ou “Office é um sistema operacional”. [VERDADEIRA]
→ (2 + 2 = 5) ou “A China fica na Europa” [FALSA]
Vamos verificar o uso do conectivo de disjunção em um cenário do nosso cotidiano.
Utilizaremos agora o cenário de reprovação de um aluno em uma matéria na faculdade, 
sendo que para um aluno ser reprovado o mesmo tem que possuir frequência nas aulas 
inferior a 70% e também nota média inferior a 7.0. Caso pelo menos uma dessas condições 
seja atendida ele será reprovado.
Dito isso, chegamos nas seguintes proposições:
C = “A frequência do aluno nas aulas é menor que 70%”
D = “A nota média do aluno é menor que 7.0”
Considerando que caso pelo menos uma das proposições (C,D) for VERDADEIRA o aluno 
será reprovado, a proposição composta deverá ser descrita da seguinte forma: “C ou D” e 
terá a seguinte tabela-verdade.
 
 
Em um primeiro cenário, o aluno Paulo frequentou 90% das aulas e teve como média a 
nota de 8.5 pontos, o mesmo foi aprovado pois não atendeu nenhuma condição para ser 
reprovado na matéria.
FACULDADE CATÓLICA PAULISTA | 15
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Já Rafael, outro aluno,foi o melhor aluno da classe e teve a nota média de 10.0 pontos 
mesmo faltando em muitas aulas o que resultou em uma frequência de 60% nas aulas. 
Neste cenário, mesmo o aluno possuindo uma nota excelente, ele será reprovado, pois sua 
frequência foi inferior a 70%, atendendo assim a um dos critérios de reprovação estipulado 
pela faculdade.
 
Isto acontece na prática
Como fizemos na aula anterior, vamos ver como ficaria o algoritmo do software de 
controle de alunos de uma faculdade analisando o exemplo que acabamos de ver.
 
Na linha 4 do nosso algoritmo acima, o software irá analisar as duas condições 
“Frequência” e “Nota Média”, caso pelo menos uma das situações seja atendida, 
apresentará a mensagem ao usuário que o aluno está reprovado.
Outro cenário utilizando uma proposição com disjunção para definir um comportamento 
em um site de um shopping, o dono do site solicitou que quando um cliente acessar o site, 
de acordo com o dia da semana em que ele fizer isso, exiba o horário de funcionamento 
correto de acordo com o dia, sabendo que nos finais de semana o horário é diferenciado, 
o algoritmo ficaria da seguinte forma:
 
Caso o cliente acesse no sábado ou domingo ele verá um horário de funcionamento 
diferente dos outros dias da semana.
FACULDADE CATÓLICA PAULISTA | 16
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
AULA 4
CONECTIVOS LÓGICOS - NEGAÇÃO
4.1 Negação
Mais um conectivo que podemos utilizar em proposições é a negação, considerando uma 
proposição A que pode ser VERDADEIRA ou FALSA podemos utilizar o conectivo de negação 
para inverter o valor de “A”. 
A negação é simbolizada por “¬A” ou A’ e a mesma se lê como “não A”. A proposição pode 
ser construída incluindo a palavra “não” na sentença ou colocando prefixo como “não é fato 
que” ou expressão equivalente.
Ao utilizar a negação em uma expressão “A” que seja VERDADEIRA, o resultado de “não 
A” será FALSO.
 
Veja que a tabela-verdade de negação é mais simples que as anteriores, pois apenas 
inverte o valor de A.
4.1.1 Exemplos
Considerando as proposições abaixo:
→ Amazonas é um estado do Brasil
→ (3 + 5) > 6
→ Javascript é uma linguagem de programação
A negação equivalente seria:
FACULDADE CATÓLICA PAULISTA | 17
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
→ Amazonas não é um estado do Brasil
→ Não é fato que (3 + 5) > 6
→ Javascript não é uma linguagem de programação
Agora vamos ver a aplicação do conectivo negação em um exemplo dentro de um contexto 
de negócio para analisarmos.
Imagine a seguinte necessidade de uma empresa de e-commerce, ela realiza vendas para 
todo o Brasil, porém, devido ao seu depósito que está localizado no estado de São Paulo, 
ele consegue praticar frete grátis para entregas dentro do estado, nos demais estados a 
cobrança de frete é normal.
Com base nisto, a proposição que que o dono da loja irá analisar poderá ser descrita 
tanto na forma normal:
→ “O endereço de entrega do pedido é no estado de São Paulo”
Como também podemos descrever a mesma frase como negação, da seguinte forma:
→ “O endereço de entrega do pedido não é no estado de São Paulo”
Analisando a situação do problema é possível entender que só devemos calcular o frete 
quando a entrega não for em São Paulo, ambas as situações atenderão na tomada de 
decisão do dono da loja.
Podemos optar pela negação caso seja mais simples de descrever o objetivo de uma 
proposição composta, quando escrevemos um código fonte por exemplo, às vezes conseguimos 
deixar o código mais “limpo” invertendo as condições. Ficará mais claro no exemplo a seguir.
 
 
FACULDADE CATÓLICA PAULISTA | 18
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Isto acontece na prática
Agora vou demonstrar o algoritmo do exemplo sobre o cálculo de frete no e-commerce, 
escrevendo o código das duas formas, com a proposição normal e como negação 
para tentar deixar mais claro o impacto que uma negação pode trazer na escrita de 
um algoritmo.
Neste primeiro exemplo de código estamos analisando se o “estadoEntrega” é igual 
a “SP”, porém caso essa situação seja VERDADEIRA não precisamos calcular nada, 
somente se a entrega for para os outros estados que entrariam na exceção “SENÃO” 
e irá calcular o frete.
Como não precisamos executar nenhuma ação quando for para “SP” podemos utilizar 
a negação na escrita desse algoritmo, simplificando o código fonte conforme abaixo, 
onde somente trata a exceção que queremos calcular o frete.
 
Nesta simples inversão de proposição, conseguimos reduzir em 2 linhas o código fonte 
para obter o mesmo resultado de processamento.
FACULDADE CATÓLICA PAULISTA | 19
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
AULA 5
CONECTIVOS LÓGICOS- 
CONDICIONAL
5.1 Condicional
Nesta aula iremos falar sobre mais um conectivo lógico, o condicional , este conectivo é 
representado pela expressão “P → Q” o qual a lemos da seguinte forma “se P então Q”, note 
que ao ler essa expressão, a proposição “P” implica uma condição para que a proposição 
“Q” seja considerada. 
Segundo Rosen (2010), podemos expressar uma condicional também das seguintes formas: 
→ “se p, então q”
→ “se p, q”
→ “p é suficiente para q”
→ “q se p”
→ “q quando ocorrer p”
→ “uma condição necessária para p é q”
→ “p implica q”
→ “p apenas se q”
→ “uma condição suficiente para q é p”
→ “q sempre que p”
→ “q é necessário para p”
Ao utilizar um conectivo condicional em uma proposição composta “se P então Q”, a mesma 
deverá ser interpretada em duas partes, sendo a primeira proposição “P” como antecedente 
ou hipótese e a proposição “Q” é a consequência ou conclusão. Dessa forma, a proposição 
“P” sempre deverá ser analisada primeiro e como a mesma implica uma condição sobre a 
proposição “Q”, o resultado de “P” pode já definir diretamente o resultado da proposição 
composta.
Por convenção, o resultado de “se P então Q” sempre será VERDADEIRO quando o resultado 
de “P” for FALSO, sem a necessidade de avaliar “Q”. 
Agora caso “P” seja VERDADEIRO, então devemos analisar a proposição “Q” para termos 
o resultado final da proposição composta, que somente será VERDADEIRO se “Q” também 
for VERDADE.
FACULDADE CATÓLICA PAULISTA | 20
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Uma forma comum que facilita entender a tabela-verdade do conectivo condicional é 
considerá-lo como uma obrigação ou contrato.
 
A tabela-verdade acima demonstra como devemos analisar uma proposição composta 
utilizando o conectivo condicional.
Note que a única condição na qual o resultado será FALSO é quando “P” for VERDADE, 
porém “Q” for FALSO.
 
5.1.1 Exemplos
Como a tabela-verdade do conectivo condicional não é tão óbvia como as anteriores, 
vamos analisar com alguns exemplos:
 
Exemplo 1 
“João contratou um seguro para seu carro que o protege em caso de batidas. Dessa 
forma, se João bater o carro então a seguradora paga a indenização”.
Analisando o cenário acima, podemos identificar duas proposições:
A. “João bate o carro”
B. “Seguradora paga a indenização”
Vamos analisar através da tabela-verdade do conectivo condicional como o João avaliaria 
sua satisfação com a seguradora nos cenários possíveis.
FACULDADE CATÓLICA PAULISTA | 21
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
 
Analisando o exemplo na tabela-verdade conseguimos ver que apenas na segunda linha 
o resultado foi FALSO porque a mesma não atendeu a situação prevista no contrato que o 
João fez com a seguradora, ou seja, ele bateu o carro, porém a seguradora não o indenizou.
Na primeira linha, o João ficaria satisfeito com a seguradora, pois mesmo que ele tenha 
batido o carro, a seguradora pagou a indenização que estava no contrato e ele não terá 
prejuízo.
E nas duas últimas situações, como explicamos anteriormente, nem precisamos avaliar 
se a seguradora pagou ou não a indenização, porque neste cenário como o João não bateu 
o carro, então assumimos que ele está satisfeitocom a seguradora.
Exemplo 2
“Flávio prometeu a seus vendedores: se baterem a meta de vendas então ele pagará um 
bônus como premiação.”
Analisando o cenário acima, podemos identificar duas proposições:
C. “Vendedores batem a meta de vendas”
D. “Flávio paga o bônus como premiação”
Vamos analisar através da tabela-verdade se Flávio cumpriu com a promessa a seus 
vendedores.
 
FACULDADE CATÓLICA PAULISTA | 22
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Analisando o exemplo na tabela-verdade vemos novamente que na segunda linha o 
resultado foi FALSO, porque neste cenário o Flávio não cumpriu com o combinado com 
seus vendedores, ou seja, os vendedores bateram a meta de vendas, porém o Flávio não 
pagou o bônus que havia prometido.
No primeiro cenário, o Flávio cumpriu com o combinado pagando o bônus, pois os 
vendedores bateram a meta de vendas combinada, por isso temos o resultado como VERDADE.
E nas duas últimas situações, como os vendedores não bateram as metas de vendas, nem 
precisamos avaliar se o Flávio pagou ou não o bônus podemos considerar como VERDADE 
que Flávio cumpriu com o combinado com seus vendedores.
FACULDADE CATÓLICA PAULISTA | 23
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
AULA 6
CONECTIVOS LÓGICOS - 
BICONDICIONAL
6.1 Bicondicional
Nesta aula abordaremos o último conectivo lógico que podemos utilizar na composição 
de proposições, o bicondicional. Este conectivo é representado da seguinte forma “P ⋀ Q” o 
qual o lemos como “P se e somente se Q”.
Observe que diferentemente dos conectivos anteriores (conjunção, disjunção e condicional), 
o conectivo bicondicional não é um conectivo fundamental, mas sim uma maneira mais 
fácil para abreviar a proposição composta: (P ⋀ Q) ⋀ (Q ⋀ P). Ou seja, o conectivo bicondicional 
representa a necessidade de condição nos dois sentidos, ida e volta de uma proposição, 
sendo:
→ ida: “P é premissa e Q é conclusão”
→ volta: Q é premissa e P é conclusão”
Dessa forma, podemos resumir que o conectivo bicondicional como:
→ “P ↔ Q” = “(P → Q) ^ (Q → P)”
ou:
→ “P se e somente se Q” = (se P então Q) e (se Q então P)
No caso de proposições compostas utilizando o conectivo bicondicional, o resultado 
dela sempre será VERDADEIRA quando ambas as proposições forem VERDADEIRAS ou 
ambas forem FALSAS e o resultado será FALSO quando os resultados das proposições 
forem distintos. Vamos analisar como fica isso na tabela-verdade.
FACULDADE CATÓLICA PAULISTA | 24
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
 
6.1.1 Exemplos
Agora vamos analisar alguns exemplos considerando o conectivo bicondicional.
Exemplo 1
“João embarca no avião se e somente se João comprou a passagem”
Analisando o cenário acima podemos identificar duas proposições:
A. “João embarca no avião”
B. “João comprou a passagem”
Vamos analisar através da tabela-verdade do conectivo bicondicional o cenário acima.
Analisando o exemplo da viagem de avião do João na tabela-verdade notamos que as linhas 
1 e 4 são VERDADEIRAS, porque em ambas as situações (A, B) os resultados são iguais. Na 
primeira linha o João embarca no avião porque comprou a passagem e isso conseguimos 
afirmar como VERDADEIRO. Já na última linha o João não embarcou no avião porque não 
FACULDADE CATÓLICA PAULISTA | 25
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
comprou a passagem e isso também faz sentido, por isso também consideramos como 
VERDADEIRO.
Agora nas linhas 2 e 3 são FALSAS porque pelo menos uma das situações não foi atendida. 
Exemplo, na linha 2 o João embarca no avião sem ter comprado a passagem isso não faz 
sentido, por isso o resultado será FALSO.
Exemplo 2
“Ana compra o sapato se e somente se o sapato combina com o vestido.”
Analisando o cenário acima, podemos identificar duas proposições:
C. “Ana compra o sapato”
D. “Sapato combina com o vestido”
Vamos analisar através da tabela-verdade do conectivo bicondicional o cenário acima.
 
Analisando na tabela-verdade o cenário da Ana comprando um sapato que combine com 
seu vestido, vemos novamente que apenas a primeira e última linha da tabela fazem sentido 
e por isso serão VERDADEIRAS. No primeiro caso ela compra o sapato porque o mesmo 
combinou com seu vestido, e no último ela não compra o sapato porque o mesmo não 
combinou com o vestido.
E as linhas 2 e 3 da tabela-verdade são FALSAS, porque pelo menos uma das situações 
não foi atendida, o que acaba não fazendo sentido na decisão de compra da Ana. Como 
na linha 2, por exemplo, ela compra o sapato mesmo ele não combinando com o vestido. 
FACULDADE CATÓLICA PAULISTA | 26
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
AULA 7
CONECTIVOS LÓGICOS - 
FÓRMULAS
7.1 Fórmulas
Agora que já conhecemos todos os conectivos lógicos, sendo eles: conjunção, disjunção, 
condicional, bicondicional e a negação. Nesta aula então iremos usar esses conectivos para 
construir proposições mais complexas que possam envolver qualquer número de letras de 
proposições e conectivos, além de aprofundar a técnica de montagem de tabelas-verdade 
para cenários mais complexos o que irá ajudar muito a análise destas proposições.
As Fórmulas são as palavras da linguagem lógica, ou seja, uma sentença que representa 
a proposição a ser analisada. Esta fórmula pode ser formada por letras de proposições (A, 
B, C), conectivos (⋀, ⋁, →, ↔, ¬) e parênteses. Este último, utilizamos para organizar a ordem 
de precedência que iremos analisar a proposição em fórmulas maiores. 
Dessa forma, podemos encadear letras e conectivos para formar as novas expressões 
mais complexas, como:
1) (A → B) ⋀ (B → A)
2) ((A ⋁ B) ⋀ C) → (B ⋁ C′)
Na proposição 1 temos as letras de proposições (A, B), os conectivos (⋀, →) e a utilização 
dos parênteses, que determina quais proposições precisam ser analisadas primeiro, ou seja, 
primeiro iremos analisar o resultado das proposições “A → B” e “B → A”, e depois analisaremos, 
com base no resultado de ambas, qual será o resultado da proposição completa “(A → B) ⋀ 
(B → A)”.
Já na proposição 2 temos um exemplo mais complexo contendo 3 letras de proposição 
(A, B, C), os conectivos (⋀, ⋁, →) e também a negação da letra C, além da utilização dos 
parênteses para organizar a ordem de análise da fórmula.
FACULDADE CATÓLICA PAULISTA | 27
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Outro ponto importante é que a escrita da fórmula, assim como em uma linguagem de 
programação, precisa ser válida, ou seja, possível de interpretação e que respeite as regras 
de sintaxe. Por exemplo, uma fórmula inválida seria assim:
→ A)) ⋀⋀ → BC
Note que neste exemplo, as letras e conectivos não estão organizados corretamente, o 
que impede uma análise e torna essa proposição inválida.
Chamamos uma fórmula com estrutura válida de fórmula-bem-formulada ou fbf. 
Para reduzir o número de parênteses dentro de uma fórmula podemos seguir a seguinte 
ordem de precedência para analisar, sendo:
1. preposições dentro de parênteses, iniciando sempre pelas expressões dentro dos 
parênteses mais internos
2. Conectivo de negação (¬)
3. Conectivo de conjunção (⋀)
4. Conectivo de disjunção (⋁)
5. Conectivo condicional (→)
6. Conectivo bicondicional (↔) 
Dessa forma, podemos dizer que a expressão “A ⋁ ¬B” significa “A ⋁ (¬B)” e não “(A ⋁ ¬B)”. 
Outro exemplo, a expressão “A ⋁ B → C” equivale a “(A ⋁ B) → C”, ou seja, primeiro iremos 
analisar “A ⋁ B” para depois analisar o restante da expressão. 
Porém, mesmo com essas regras de precedência, na maioria das vezes utilizaremos os 
parênteses para deixar mais explícito a ordem e simplificar a análise das fórmulas. 
Para facilitar a análise, montaremos a tabela-verdade para qualquer fbf iniciando de suas 
letras de proposição, depois adicionando colunas para cada proposição simples existente 
na fórmula e por último a proposição completa na última coluna.
Considerando a fórmula A ⋁ (¬B) → ¬(A ⋁ B) teremos a seguinte tabela-verdade:FACULDADE CATÓLICA PAULISTA | 28
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Veja que primeiro analisamos as letras de proposição (A, B), depois as proposições que 
compõem a fórmula e por último com base nas colunas anteriores analisamos o resultado 
da fórmula completa. Dessa forma, fica muito mais simples analisar uma fórmula mais 
complexa.
7.2 Tabelas-verdade
Nos exemplos que vimos até agora de tabela-verdade precisamos apenas de no máximo 4 
linhas para analisarmos todas as possibilidades de combinação das fórmulas que estudamos. 
Isso aconteceu porque na maioria dos exemplos utilizamos apenas 2 letras de proposições 
(A, B) e cada letra pode ter apenas 2 respostas (VERDADEIRO/FALSO).
Porém, isso mudará de acordo com o número de letras que teremos na proposição, 
analisando a fórmula abaixo:
→ ((A ⋁ B) ⋀ C) → (B ⋁ C′)
Veja que temos 3 letras (A, B, C) o que mudará o número de cenários na tabela verdade.
Para sabermos o número de linhas que uma tabela-verdade precisa ter para atender a 
essa fórmula, usaremos o cálculo 2n onde o “n” será o número de letras de proposição 
da fórmula. No exemplo que estamos analisando será 23 que é o mesmo de 2 x 2 x 2 que 
resultará em 8, que será o número de linhas necessárias na tabela-verdade dessa fórmula, 
que ficará assim:
FACULDADE CATÓLICA PAULISTA | 29
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
 
Uma forma de analisar as ramificações possíveis de uma fórmula é através do desenho 
de uma “árvore”, conforme exemplo abaixo:
 
FACULDADE CATÓLICA PAULISTA | 30
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Onde cada letra da proposição deverá ser desenhada duas ramificações (VERDADEIRO 
ou FALSO) e seguir esse desenho realizando o mesmo para cada nó de letra de proposição 
existente até contemplar todas as possibilidades da fórmula.
 
Isto acontece na prática
Como já mostrei nas aulas anteriores, o desenvolvimento de software é totalmente 
baseado nos conceitos de lógica de matemática que é a forma que o computador 
consegue interpretar as instruções que passamos para ele. Então, tudo o que vimos 
até agora te auxiliará no decorrer do curso.
Para fazer um paralelo dos conceitos que vimos até agora, vou comentar sobre a 
linguagem Pascal. 
Esta linguagem possui um tipo de variável que só aceita os valores VERDADEIRO ou 
FALSO, esse tipo é denominado boolean e aceita os valores (true/false).
No Pascal também temos os seguintes conectivos lógicos:
→ NOT (Negação)
→ AND (Conjunção)
→ OR (Disjunção)
→ <= (Condicional)
→ = (Bicondicional)
Abaixo temos um exemplo de código em pascal com os conceitos de conectivos lógicos:
 
Na linha 2 do código o software está atribuindo que as variáveis (p, q, r) são dos tipos 
boolean e, portanto, somente aceitarão os valores VERDADEIRO ou FALSO. Já na linha 
5 temos a análise de um proposição utilizando os conectivos (OR e AND) e dependendo 
do resultado o software executará ações diferentes.
FACULDADE CATÓLICA PAULISTA | 31
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
AULA 8
TEORIA DOS CONJUNTOS- 
CONJUNTOS
8.1 Conjuntos
A partir desta aula iremos nos aprofundar no assunto de Teoria dos Conjuntos e suas 
particularidades abordando os temas: definições, tipos de conjuntos, operações em conjuntos, 
relações e funções. Além de sempre que possível traçar um paralelo sobre como esses 
conceitos matemáticos são aplicados na computação e desenvolvimento de software.
Podemos definir um conjunto como uma coleção de elementos, sendo que esta coleção 
pode conter vários elementos ou até mesmo nenhum elemento. Outra característica dos 
conjuntos é que os mesmos não possuem qualquer ordenação dos elementos.
8.1.1 Exemplos de conjuntos
A. As letras vogais: a,e, i, o, u;
B. Os números pares: 0, 2, 4, 6, …
C. Todos os times de futebol da Série A do Campeonato Brasileiro;
D. Os dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9; 
E. Todos os estados brasileiros;
F. O carro Gol, a letra a, João, São Paulo.
Acima podemos ver alguns exemplos de conjuntos e também algumas formas diferentes de 
descrever um conjunto, como listando todos seus elementos (como “os dígitos: 0, 1, 2, 3, 4, 
5, 6, 7, 8, 9”), ou através de propriedades declaradas (como “Todos os estados brasileiros”). 
Outro detalhe importante que podemos notar é que os elementos de um conjunto 
não precisam possuir as mesmas características como vimos no exemplo “F”, onde os 4 
componentes são de características diferentes.
 
FACULDADE CATÓLICA PAULISTA | 32
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
8.1.2 Denotação de conjuntos
Podemos descrever um conjunto de duas formas diferentes, sendo elas:
Denotação por extensão
Na denotação por extensão, descrevemos o conjunto listando todos os seus elementos, 
em qualquer ordem e dentro de chaves, por exemplo:
Dígitos = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
Denotação por compreensão
Já no formato por compreensão, descrevemos o conjunto por propriedades, como podemos 
ver no exemplo:
Pares = { n | n é número par }
Neste exemplo, lemos o símbolo | (pipe) como “tal que”, ficando da seguinte forma a 
interpretação:
 
Pares é igual o conjunto de todos os elementos n tal que n é número par
Outra forma que pode ser utilizada para descrever um conjunto por compreensão é 
omitindo alguns elementos quando necessário, porém somente quando podem ser deduzidos 
facilmente pelo contexto, por exemplo:
Pares = { 0, 2, 4, 6, … }
Impares = { 1, 3, 5, 7, … }
Veja que mesmo omitindo os números finais utilizando “...” podemos entender que podemos 
considerar todos os números pares ou ímpares da sequência, sem a necessidade de escrever 
os mesmos. 
FACULDADE CATÓLICA PAULISTA | 33
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
8.1.3 Tipos de conjuntos
8.1.3.1 Conjunto vazio
Um conjunto muito importante na teoria dos conjuntos é o conjunto vazio que pode ser 
representado tanto como { } ou através do símbolo matemático Ø.
Exemplos
A. o conjunto de todos os habitantes do Brasil com mais de 300 anos.
B. o conjunto de todos os número que são pares e ímpares ao mesmo tempo.
8.1.3.2 Conjunto unitário
Outro tipo de conjunto importante é o conjunto unitário que possui apenas um único 
elemento.
Exemplos
A. o conjunto constituído pelo jogador de futebol Pelé;
B. o conjunto de todos os números pares que são ao mesmo tempo números primos.
8.1.3.3 Conjuntos numéricos
Os conjuntos numéricos que utilizamos para descrever regras matemáticas possuem 
denotação universal, sendo eles:
→ ℕ - conjunto dos números naturais
→ ℤ - conjunto dos números inteiros
→ ℚ - conjunto dos números racionais
→ I - conjunto dos números irracionais
→ ℝ - conjunto dos números reais
FACULDADE CATÓLICA PAULISTA | 34
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
8.1.3.4 Conjuntos finitos e infinitos
Os conjuntos se dividem em possuir um número finito ou infinito de elementos. Para 
simplificar o entendimento de ambos, podemos defini-los assim:
Os conjuntos finitos podem ser denotados por extensão, listando todos os seus elementos.
Exemplos:
→ Ø
→ Vogais = { a, e, i, o, u }
→ Dígitos = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
→ A = { x | x é brasileiro }
→ B = { n ∈ N | n > 0 e n < 4 } 
Já os conjuntos infinitos são os que não podem ser listados todos os elementos.
Exemplos:
→ ℤ
→ ℝ
→ { x ∈ ℤ | x > 0 }
FACULDADE CATÓLICA PAULISTA | 35
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
AULA 9
TEORIA DOS CONJUNTOS – 
PERTINÊNCIA E CONTINÊNCIA
9.1 Pertinência
Nesta aula vamos aprofundar um pouco mais nos conceitos da teoria dos conjuntos, 
começando pelo conceito de pertinência. Este conceito vem para nos auxiliar a descrever 
as sentenças de conjuntos avaliando se um elemento PERTENCE ou NÃO PERTENCE a um 
determinado conjunto.
Se um elemento b é um elemento existente dentro do conjunto B, podemos descrever 
essa relação da seguinte forma:
b ∈ B
Que também pode ser lido como:
b PERTENCEao conjunto B
Caso o elemento b não esteja dentro do conjunto B, podemos descrevê-lo na forma negativa 
da seguinte forma:
b ∉ B
Onde também pode ser lido como: b NÃO PERTENCE ao conjunto B
9.1.1 Exemplos
Considerando um conjunto de Vogais = { a, e, i, o, u } podemos considerar:
→ a ∈ Vogais
→ d ∉ Vogais
FACULDADE CATÓLICA PAULISTA | 36
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Outro exemplo, considerando um conjunto P = { x | x é brasileiro } podemos considerar:
→ Neymar ∈ P
→ Messi ∉ P
9.2 Continência
O segundo conceito fundamento da teoria dos conjuntos que abordaremos agora é o 
da continência. O qual podemos trabalhar os conceitos de subconjuntos e igualdade de 
conjuntos.
Caso todos elementos de um conjunto P também sejam elementos de um conjunto Q, 
então podemos descrever essa relação da seguinte forma:
P está contido em Q
Que na matemática descrevemos com a seguinte simbologia:
P ⊆ Q
Este mesmo cenário, podemos alternativamente descrevê-lo da seguinte forma com 
utilizando o CONTÉM ao invés de ESTÁ CONTIDO, porém invertendo os conjuntos, dessa 
forma:
Q ⊇ P
Que se lê como: Q contém P.
Além da possibilidade de utilizar o ESTÁ CONTIDO EM e o CONTÉM, podemos utilizar as 
negativas dessas declarações, sendo:
→ P ⊈ Q ou seja “P não está contido em Q”
→ Q ⊉ P que se lê “Q não contém P”
FACULDADE CATÓLICA PAULISTA | 37
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
9.2.1 Exemplos 
A. { b, c } ⊆ { c, b }
B. { c, b } ⊇ { b, c }
C. { p, q } ⊆ { p, q, r }
D. { São Paulo, Rio de Janeiro} ⊆ { x | x é um estado brasileiro }
E. Ø ⊆ ℤ
Quando, por exemplo, temos os seguintes cenários (A ⊆ B ou B ⊇ A), podemos afirmar 
que o conjunto A é subconjunto de B. Pois a totalidade de elementos do conjunto A estão 
também no conjunto B.
Outra classificação que um conjunto pode ter é de igualdade de conjuntos, isso somente 
será considerado quando ambos os conjuntos possuem os mesmos elementos, respeitando 
a seguinte regra:
A = B se e somente se (A ⊆ B) e (B ⊆ A)
Anote isso
Na aula de hoje vimos diversas formas de descrever as relações entre elementos 
e conjuntos, como iremos utilizar bastante isso no decorrer das próximas aulas é 
importante que vocês gravem os significados dos mesmos, para isso segue um resumo:
Pertinência
→ ∈ (PERTENCE)
→ ∉ (NÃO PERTENCE)
Continência
→ ⊆ (ESTÁ CONTIDO EM)
→ ⊄ (NÃO ESTÁ CONTIDO EM)
→ ⊇ (CONTÉM)
→ ⊅ (NÃO CONTÉM)
→ = (IGUAL)
FACULDADE CATÓLICA PAULISTA | 38
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
AULA 10
TEORIA DOS CONJUNTOS - 
DIAGRAMA DE VENN
10.1 Diagrama de Venn
Nesta aula vamos abordar uma ferramenta que irá nos auxiliar no entendimento e 
compreensão das definições e relacionamentos entre conjuntos. O Diagrama de Venn é 
uma linguagem diagramática que utiliza formas geométricas, que vem complementar a 
linguagem textual que utilizamos para descrever os conjuntos e suas relações e operações. 
Por ser visual, ela acaba dando mais clareza sobre o conjunto, facilitando assim o raciocínio. 
Semelhante à tabela-verdade que vimos nas aulas de conectivos, ao desenhar os conjuntos 
no formato de Diagrama de Venn, conseguimos ter uma visão clara dos conjuntos.
Este diagrama foi criado por John Venn (1834-1923) no livro Lógica Simbólica, no qual 
ele acabou conseguindo tornar mais claras as ideias introduzidas por Boole sobre a Teoria 
dos conjuntos.
Vamos ver agora através de exemplos como o Diagrama de Venn representa os conjuntos, 
suas operações e relações. É comum representar o conjunto universo por um retângulo e 
os demais conjuntos utilizam círculos, ou elipses.
10.1.1 Exemplos
A. um dado conjunto A
Este exemplo de conjunto é simples e como não foi explicitado os elementos, poderíamos 
defini-lo como A = { }, além de representá-lo visualmente como:
FACULDADE CATÓLICA PAULISTA | 39
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
B. um elemento b ∈ B
Neste cenário, podemos tanto interpretá-lo de maneira textual como “b PERTENCE ao 
conjunto B, como também na maneira visual:
 
C. um conjunto C = { 1, 2, 3 }
Este cenário é muito semelhante ao exemplo A, porém neste caso foi explicitado os 
elementos do conjunto C, nesta caso ele será representado assim:
 
FACULDADE CATÓLICA PAULISTA | 40
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
D. { a, b } ⊆ { a, b, c }
Neste exemplo, temos dois conjuntos no qual o primeiro { a, b } ESTÁ CONTIDO EM { a, 
b, c }, neste caso já começa a ficar claro como o diagrama de venn facilita a visualização 
das relações entre os conjuntos conforme a imagem a seguir:
 
E. A ⊆ B
Mais um exemplo, semelhante ao anterior, porém sem a explicitação dos elementos 
dos conjuntos. Neste exemplo a leitura textual destes conjuntos é A está contido em B, e 
visualmente ele fica da seguinte forma:
F. para um dado conjunto universo U, um conjunto C ⊆ U
Neste exemplo, vemos visualmente a representação do conjunto universo U como um 
retângulo, e o conjunto C está contido em U (Conjunto Universo).
 
FACULDADE CATÓLICA PAULISTA | 41
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Já introduzindo como os Diagramas de Venn nos auxiliarão nas próximas aulas, abaixo 
veremos exemplos das operações de união e intersecção entre os conjuntos.
G. A ∪ B
Esta é uma forma textual de representar a operação de união entre os conjuntos A e 
B, abordaremos como isso funciona na próxima aula. Visualmente essa operação será 
representada assim:
 
H. A ∩ B
Este exemplo demonstra a operação de intersecção entre os conjuntos A e B, nessa 
operação o novo conjunto será apenas o resultado dos elementos que constam em ambos 
os conjuntos e o representamos visualmente da seguinte forma:
 
10.2 Conectivos lógicos/operações de conjuntos
Nas próximas aulas abordaremos as operações que podemos executar sobre os conjuntos, 
sendo elas: união, intersecção, complemento, como já vimos alguns conceitos como 
continência e igualdade de conjuntos. Com isso vocês poderão observar uma semelhança 
ao comportamento já vistos nas aulas sobre conectivos lógicos.
Abaixo observem uma relação entre os dois conceitos:
FACULDADE CATÓLICA PAULISTA | 42
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Conectivo Lógico Operações sobre conjuntos
Negação Complemento
Disjunção União
Conjunção Intersecção
Condicional Continência
Equivalência Igualdade de conjuntos
 
Isto acontece na prática
Os conjuntos são um dos recursos utilizados diariamente no desenvolvimento de 
software, seja para declarar uma lista de elementos, por exemplo, armazenando 
informações em uma tabela em banco de dados também podemos entender como 
um conjunto de informações.
Nas linguagens de programação, vocês comumente vão encontrar os conjuntos com 
o nome arrays.
Abaixo temos um exemplo de código em Pascal manipulando dois arrays (dias da 
semana e feriados), para gerar um novo array (conjunto) de dias úteis da semana.
 
Observe no exemplo que nas linhas 2 e 3 definimos os valores dos conjuntos “dia_
semana” e “feriados”.
O conjunto “dias_uteis_semana” é inicializado vazio na linha 4, porém o mesmo será 
preenchido na linha 6 recebendo o resultado da expressão que tira da lista de dias da 
semana, os dias não úteis (sábado, domingo e a quarta-feira (conjunto de feriados)).
FACULDADE CATÓLICA PAULISTA | 43
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
AULA 11
TEORIA DOS CONJUNTOS - 
OPERAÇÕES NÃO REVERSÍVEIS
11.1 Operações não reversíveis
Nesta aula começaremos a abordar as operações que podemos realizar sobre os conjuntos. 
Estas operações são classificadas em dois tipos, sendo elas: 
Não reversíveis
→ União
→ Intersecção
Reversíveis
→ Complemento
→ Conjunto das partes
→ Produto cartesiano
→ União disjunta
11.1.1 União
A operação de conjuntos de união, quando utilizada, por exemplo, em dois conjuntos A 
e B produzirá como resultado um novo conjunto composto pelos elementos de ambosos 
conjuntos originais, ou seja, o novo conjunto terá todos os elementos que pertencem aos 
conjuntos A ou B.
O diagrama de Venn abaixo demonstra como ficaria o resultado da união dos conjuntos 
A e B.
 
FACULDADE CATÓLICA PAULISTA | 44
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
O símbolo matemático “∪” é utilizado para demonstrar a operação de união entre os 
conjuntos, considerando o exemplo acima a fórmula ficaria assim:
A ∪ B
11.1.1.1 Exemplos
Vamos considerar os seguintes conjuntos:
→ Dígitos = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } 
→ Vogais = { a, e, i, o, u } 
→ Pares = { 0, 2, 4, 6,... } 
Agora vamos aplicar as operações de união envolvendo estes conjuntos, considerando 
as fórmulas abaixo:
→ Dígitos ∪ Vogais = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, e, i, o, u } 
→ Dígitos ∪ Pares = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16,... } 
Note que os novos conjuntos que foram gerados possuem uma combinação de todos 
os elementos de ambos os conjuntos originais envolvidos na fórmula. A união do conjunto 
Dígitos com o conjunto Vogais gerou um conjunto com todas as opções possíveis: { 0, 1, 
2, 3, 4, 5, 6, 7, 8, 9, a, e, i, o, u } 
Outra forma de visualizar o resultado desta união é através do diagrama de Venn.
 
FACULDADE CATÓLICA PAULISTA | 45
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Veja que na união do conjunto Dígitos com o conjunto Pares, como ambos os conjuntos 
possuem elementos em comum, no novo conjunto gerado são apresentados uma única vez 
os elementos que existiam em ambos os conjuntos originais simultaneamente.
 
11.1.2 Intersecção
A intersecção é uma operação de conjuntos que quando, por exemplo, seja aplicada 
sobre dois conjuntos A e B, produzirá um novo conjunto como resultado composto apenas 
pelos elementos que pertencem aos dois conjuntos originais (A, B) simultaneamente. Ou 
seja, para ser considerado no novo conjunto, o elemento precisa existir tanto no conjunto 
A quanto no conjunto B.
No diagrama de Venn abaixo é possível verificar como será considerado o resultado a 
intersecção dos conjuntos A e B.
 
Nas operações de intersecção, utilizamos o símbolo matemático “∩” para demonstrar este 
tipo de operação entre os conjuntos, considerando o exemplo acima a fórmula ficaria assim:
A ∩ B
Outra forma de denotação pode ser A ∩ B = { x | (x ∈ A) ⋀ (x ∈ B) }
11.1.2.1 Exemplos
Vamos considerar os seguintes conjuntos:
→ Dígitos = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } 
→ Vogais = { a, e, i, o, u } 
→ Pares = { 0, 2, 4, 6,... } 
FACULDADE CATÓLICA PAULISTA | 46
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Agora vamos aplicar as operações de intersecção envolvendo estes conjuntos, considerando 
as fórmulas abaixo:
→ Dígitos ∩ Vogais = Ø 
→ Dígitos ∩ Pares = { 0, 2, 4, 6, 8 } 
Note que os novos conjuntos que foram gerados consideraram a regra de apenas considerar 
os elementos que existiam em ambos os conjuntos originais simultaneamente. A intersecção 
do conjunto Dígitos com o conjunto Vogais gerou um conjunto vazio, pois nenhum valor 
atendeu a essa regra. E na intersecção de Dígitos com Pares foram apenas listados os 
números pares que constavam em ambos os conjuntos.
 Podemos ver no diagrama de Venn destes exemplos, como ficou a combinação de valores 
de forma visual.
 
Observe que na intersecção do conjunto Dígitos com o conjunto Pares, apenas os elementos 
em comum ficaram destacados gerando o novo conjunto resultado da intersecção.
FACULDADE CATÓLICA PAULISTA | 47
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
AULA 12
TEORIA DOS CONJUNTOS - 
OPERAÇÕES REVERSÍVEIS
12.1 OPERAÇÕES REVERSÍVEIS
12.1.1 Complemento
Nesta aula vamos abordar as operações do tipo reversíveis, ou seja, que podem ser 
desfeitas.
A primeira operação que vamos ver é o complemento. Esta operação, quando aplicada 
sobre um conjunto A, resulta na diferença do conjunto em relação ao conjunto universo 
U o qual o conjunto está contido. Ou seja, o complemento será todo restante do conjunto 
universo que não estiver no conjunto A.
O diagrama de Venn desta operação simplifica o entendimento do comportamento do 
complemento, conforme podemos ver abaixo:
 
O símbolo que utilizaremos nas operações de complemento é “~” utilizado como prefixo 
do conjunto que será aplicado.
No exemplo do diagrama de Venn temos o conjunto universo U e o conjunto A ⊆ U, 
representado na primeira imagem. Para verificar o complemento utilizaremos então, a seguinte 
notação ~A que terá como resultado a segunda imagem, onde o resultado são todos os 
elementos do conjunto universo, com exceção dos elementos do conjunto A.
Observem que a operação de complemento sobre conjuntos, corresponde ao comportamento 
do conectivo lógico de negação.
FACULDADE CATÓLICA PAULISTA | 48
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
12.1.1.1 Exemplos
Considerando os seguintes conjuntos:
→ Dígitos = { 0, 1, 2,..., 9 }. 
→ A = { 0, 1, 2 }
Quando aplicarmos a operação de complemento no conjunto A, teremos os seguinte 
resultado:
→ ~A = { 3, 4, 5, 6, 7, 8, 9 }
O resultado foi todos os itens contidos no conjunto Dígitos, com exceção dos elementos 
que compõem o conjunto A. 
Abaixo, verifique como ficou a aplicação do complemento utilizando o diagrama de Venn.
 
12.1.2 Conjunto das partes
O conjunto das partes é mais uma operação que podemos aplicar sobre os conjuntos. Esta 
operação, quando aplicada sobre um conjunto A, resultará em um novo conjunto contendo 
todos os subconjuntos de A.
Para isso é importante considerar alguns conceitos: para um conjunto A sabemos que:
→ A ⊆ A
→ Ø ⊆ A
E também cada elemento a ∈ A, também consideramos:
→{ a } ⊆ A
A notação dessa operação é descrita da seguinte forma:
FACULDADE CATÓLICA PAULISTA | 49
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
P(A) onde interpretamos da seguinte forma: P(A) = { X | X ⊆ A }
 
12.1.2.1 Exemplos
Com base nos conceitos que vimos sobre o conjunto das partes, vamos ver como seria 
esses comportamentos nos exemplos abaixo.
Para isso, vamos considerar os seguintes conjuntos:
→ A = { a }
→ B = { a, b }
→ C = { a, b, c }
Assim, com a aplicação do conjunto das partes teremos os seguintes resultados:
→ P(Ø) = { Ø } 
→ P(A) = { Ø, { a } } 
→ P(B) = { Ø, { a }, { b }, { a, b } } 
→ P(C) = { Ø, { a }, { b }, { c }, { a, b }, { a, c }, { b, c }, { a, b, c } }
12.1.3 Produto cartesiano
A operação denominada Produto Cartesiano, quando utilizada sobre os conjuntos A e B, 
por exemplo, resulta em um novo conjunto composto por sequências de duas componentes, 
onde o primeiro componente será um elemento do conjunto A e o segundo componente 
será um elemento do conjunto B. Essa sequência de componentes é chamada de n-upla 
ordenada, onde cada par ordenado é representa da seguinte forma:
〈 a, b 〉 ou ( a, b )
E a sequência de componentes pode ser descrita das seguintes formas:
〈x1, x2, x3,...,xn〉 ou (x1, x2, x3,...,xn)
Já a operação de produto cartesiano, descrevemos através do símbolo ×, onde teremos 
a seguinte notação:
A × B 
FACULDADE CATÓLICA PAULISTA | 50
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
A qual interpretamos assim: A × B = { 〈 a, b 〉 | (a ∈ A) e (b ∈ B) }
12.1.3.1 Exemplos
Com base nos conceito de produto cartesiano que acabamos de ver, vamos entender 
como fica isso na prática nos exemplos abaixo.
Para isso, vamos considerar os seguintes conjuntos:
→ A = { a }
→ B = { a, b }
→ C = { 0, 1, 2 }
Assim, com a aplicação dos produto cartesiano teremos os seguintes resultados:
 
→ A × B = { 〈a, a〉, 〈a, b〉 } 
→ B × C = { 〈a, 0〉, 〈a, 1〉, 〈a, 2〉, 〈b, 0〉, 〈b, 1〉, 〈b, 2〉 } 
→ C × B = { 〈0, a〉, 〈0, b〉, 〈1, a〉, 〈1, b〉, 〈2, a〉, 〈2, b〉 } 
→ (A × B) × C = {((a, a), 0), ((a, a), 1), ((a, a), 2), ((a, b), 0), ((a, b), 1), ((a, b), 2)} 
→ A × (B × C) = {(a,(a, 0)), (a, (a, 1)), (a, (a, 2)), (a, (b, 0)), (a, (b, 1)), (a, (b, 2)) }
12.1.4 União disjunta
A última operação que iremos abordar éa união disjunta. Esta operação é semelhante ao 
comportamento da operação de união que vimos na aula passada, unirá os componentes 
dos conjuntos A e B, porém com exceção de uma das regras da operação de união que 
não seguiremos quando utilizarmos união disjunta, essa regra consiste que caso o mesmo 
elemento exista em ambos os conjuntos, ele será descrito apenas uma vez no conjunto 
resultado.
E isso é importante, porque em alguns cenários não podemos remover os elementos 
repetidos. Vamos analisar um exemplo dessa situação, observe os conjuntos a seguir que 
representam pessoas da família Silva e Souza:
→ Silva = { João, Maria, José } 
→ Souza = { Pedro, Ana, José } 
Neste caso, se aplicarmos a operação de união que vimos anteriormente, teremos o 
seguinte resultado:
FACULDADE CATÓLICA PAULISTA | 51
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Silva ∪ Souza = { João, Maria, Pedro, Ana, José } 
Veja que o nome “José” apareceu somente uma vez, seguindo o comportamento da 
operação união. Porém, este resultado não atenderia à necessidade de uma “reunião familiar”, 
pois José da família Silva não é o mesmo José da família Souza. 
Para sanar este tipo de situação utilizaremos a operação de união disjunta, neste tipo de 
operação os elementos serão distinguidos no conjunto do resultado, utilizando um “sobrenome” 
que será a identificação do conjunto de origem. Dessa forma, o resultado será um conjunto 
com elementos na seguinte notação:
〈elemento, identificação do conjunto origem〉
Assim, no conjunto resultado o José aparecerá duas vezes, utilizando o sobrenome de 
cada família, evitando assim a omissão de um elemento.
A operação de união disjunta, descrevemos através do símbolo +, onde teremos a seguinte 
notação:
A + B 
A qual podemos interpretar da seguinte forma:
A + B = { 〈a, A〉 | a ∈ A } ∪ { 〈b, B〉 | b ∈ B } 
12.1.4.1 Exemplos
Tendo como base os mesmos conjuntos que analisamos acima:
→ Silva = { João, Maria, José } 
→ Souza = { Pedro, Ana, José } 
Ao aplicar a operação de união disjunta, teremos o seguinte resultado:
→ Silva + Souza = { 〈João, Silva〉, 〈Maria, Silva〉, 〈José, Silva〉, 〈Pedro, Souza〉, 〈Ana, Souza〉, 
〈José, Souza〉 }
FACULDADE CATÓLICA PAULISTA | 52
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
AULA 13
RELAÇÕES E FUNÇÕES - 
CONCEITOS
13.1 Conceitos
A partir desta aula iremos abordar o conceito de Relações aplicadas a conjuntos e como 
esses conceitos têm relação com a computação e no desenvolvimento de software.
Ao pensarmos no significado do que uma relação representa podemos lembrar de vários 
exemplos no nosso dia a dia que são relações, entre eles:
→ O parentesco entre pessoas.
→ Um a comparação de “maior ou igual”.
→ Uma comparação de “Igualdade”.
→ “Faz fronteira com” para um conjunto de países.
Já no contexto da computação e da matemática, também é comum encontrarmos os 
conceitos de relações como já vimos nos temas: Teoria dos conjuntos (Igualdade, Continência) 
e também nos conceitos de Lógica (Equivalência, Implicação).
Outro exemplo de relações no contexto da computação que ajudará vocês a compreenderem 
melhor como funcionam os conceitos de relações são os bancos de dados relacionais, onde 
os dados e informações podem estar distribuídos em várias tabelas diferentes, porém se 
relacionarem para entregar dados mais completos para o usuário. Aprofundaremos neste 
exemplo nas próximas aulas.
13.1.1 Relação
Considerando dois conjuntos (A, B) podemos afirmar que o resultado de uma Relação de 
A em B será um subconjunto do produto cartesiano de A × B. Que pode ser representado 
através das fórmulas:
FACULDADE CATÓLICA PAULISTA | 53
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
R ⊆ A × B
R: A → B
Onde o conjunto A é chamado conjunto de partida de R ou domínio, o conjunto B de 
conjunto de chegada de R ou contradomínio, e o R de conjunto de pares.
Então, dada uma relação R ⊆ A × B, se os pares ordenados 〈a,b〉 ∈ R, podemos afirmar que:
a se relaciona com b
13.1.2 Exemplos
Para entender melhor esses conceitos vamos abordar alguns exemplos para isso, considere 
os seguintes conjuntos:
→ A = { a } 
→ B = { a, b }
→ C = { 0, 1, 2 }
A partir destes conjuntos, podemos considerar relações os seguintes cenários:
→ Ø é uma relação de A em B, assim como de A em C ou de B em C.
• Isso ocorre, pois por conceito, o conjunto vazio é subconjunto de qualquer conjunto.
→ A×B = { 〈a,a〉, 〈a,b〉 }. Pois é uma relação com origem em A e destino B.
→ Considerando o conjunto de partida A e o conjunto de chegada B, a relação de igualdade 
é { 〈a,a〉 }; 
→ { 〈0, 1〉, 〈0, 2〉, 〈1, 2〉 } é a relação “menor que” de C em C; 
→ { 〈0, a〉, 〈1, b〉 } é uma relação de C em B.
13.1.3 Diagrama de Venn
Para simplificar a análise sobre as relações entre os conjuntos podemos utilizar também 
o Diagrama de Venn que já vimos anteriormente, com a utilização de setas para demonstrar 
visualmente as relações.
FACULDADE CATÓLICA PAULISTA | 54
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
 
Fonte: (MENEℤES, 2013 p. 85)
Veja que no primeiro exemplo acima, temos a seguinte relação:
R ⊆ A × B, sendo o resultado da relação { 〈a, b〉 }
Já no segundo exemplo temos a relação:
R ⊆ C × C, sendo o resultado da relação { 〈0, 1〉, 〈0, 2〉, 〈1, 2〉 }
 
O conjunto dos elementos do conjunto de chegada B que são relacionados ao conjunto 
de partida A, recebe o nome de conjunto imagem, conforme pudemos ver no exemplo acima 
R ⊆ C × C = { 〈0, 1〉, 〈0, 2〉, 〈1, 2〉 } onde somente é apresentados os elementos que foram 
relacionados.
FACULDADE CATÓLICA PAULISTA | 55
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
AULA 14
RELAÇÕES E FUNÇÕES - TIPOS
14.1 Conceitos
Nesta aula iremos dar continuidade sobre o tema de relações entre os conjuntos, abordando 
a relação dual ou inversa e o conceito de composição de relações.
14.1.1 Relação Dual
A relação dual nada mais é que a inversão dos elementos dos pares ordenados da relação 
entre dois conjuntos.
Dessa forma, considerando uma relação R: A → B, a sua relação dual ou oposta pode ser 
descritas da seguinte forma:
R-1: B → A
Rop: B → A
Que representa o seguinte comportamento: R-1 = { 〈 b, a 〉 | 〈 a, b 〉 ∈ R } 
14.1.1.1 Exemplos
Dados os conjuntos:
→ A = { a }
→ B = { a, b }
→ C = { 0, 1, 2 }
Seguem exemplos de relações e suas relações oposta ou dual:
FACULDADE CATÓLICA PAULISTA | 56
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Relação Relação Dual
{ 〈 0, a 〉 , 〈 1, b 〉 }: C → B { 〈 0, a 〉 , 〈 1, b 〉 }-1 = { 〈 a, 0 〉 , 〈 b, 1 〉 }: B → C 
<: C → C <op = >: C → C
Agora temos abaixo o último exemplo, porém no formato de diagrama de Venn.
 
Fonte: MENEℤES, 2013 p. 89
14.1.2 Composição de relações
Este conceito representa a aplicação de uma relação sobre outra relação já existente, 
exemplo: R: A → B e S: B → C, gerando uma relação composta como resultado.
A relação composta pode ser descrita no seguinte formato:
S O R: A → C
Representando o seguinte comportamento:
S O R = { 〈a, c〉 | (Ǝb ∈ B)(a R b ⋀ b S c) }
14.1.2.1 Exemplos
Para entender melhor, considere as seguintes relações:
FACULDADE CATÓLICA PAULISTA | 57
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
→ R = { 〈a, 1〉, 〈b, 3〉, 〈b, 4〉, 〈d, 5〉 } 
→ S = { 〈1, x〉, 〈2, y〉, 〈5, y〉, 〈5, z〉 }
Considerando a composição de relações S O R: A → C teremos o conjunto:
 S o R = { 〈a, x〉, 〈d, y〉, 〈d, z〉 }
Abaixo a representação da composição de relações no diagrama de Venn para facilitar a 
compreensão do resultado.
 
Fonte: MENEℤES, 2013 p. 92
FACULDADE CATÓLICA PAULISTA | 58
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
AULA 15
RELAÇÕES E FUNÇÕES - BANCO 
DE DADOS RELACIONAL
15.1 Banco de dados relacional
Nesta aula vamos abordar os bancos de dados relacionais e entender como os conceitos 
de relações entre conjuntos se aplicam a eles na combinação de dados entre as tabelas.
Segundo Menezes (2013, p. 102),podemos definir os banco de dados relacionais como:
“Um banco de dados relacional é um banco de dados cujos dados são conjuntos 
(representados como tabelas) que são relacionados com outros conjuntos (tabelas)”.
 
15.1.1 Exemplo
Para entender como os bancos de dados se relacionam com a teoria de relações entre 
conjuntos, vamos analisar através de exemplos, para isso iremos considerar as tabelas:
→ Uma tabela PAÍS que armazena os países cadastrados.
→ Uma tabela CONTINENTES que armazena os 5 continentes.
→ E uma tabela FICA EM que é a tabela que armazena o resultado do relacionamento 
entre as tabelas PAÍS e CONTINENTES.
Os dados foram distribuídos da seguinte forma no banco de dados:
 
Fonte: (MENEℤES, 2013 p. 102)
FACULDADE CATÓLICA PAULISTA | 59
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Observe alguns comportamentos que aconteceram nesta relação entre as tabelas PAÍS 
e CONTINENTES. Na tabela FICA EM é possível perceber que a relação permite que um 
CONTINENTE possua mais de um PAÍS, como também um mesmo PAÍS pode estar em 
mais de um CONTINENTE, como foi o caso da “Turquia”.
Outro comportamento foi que alguns CONTINENTES não foram listados na tabela FICA 
EM, por não possuírem vínculo com nenhum país constante na tabela PAÍS.
15.1.2 Diagrama Entidade-Relacionamento
Mais uma ferramenta visual que vem nos ajudar a representar as relações entre tabelas de 
um banco de dados é o Diagrama Entidade-Relacionamento que é utilizado para descrever 
como vai ser a estrutura do banco de dados e as regras de relacionamento entre as tabelas.
Visualmente desenhamos o diagrama entidade-relacionamento da seguinte forma:
→ Entidades - Representam as tabelas (conjuntos) e é desenhada no formato de um 
retângulo.
 
Fonte: (MENEℤES, 2013 p.103)
→ Relacionamentos - Representam como as tabelas se relacionam é desenhada como 
um losango com linhas saindo dele e ligando as entidades.
 
Fonte: (MENEℤES, 2013 p.103)
 
Neste diagrama também devemos definir as regras de relacionamento entre as tabelas, 
informando as restrições sobre o número de registros que cada entidade poderá ter na relação. 
FACULDADE CATÓLICA PAULISTA | 60
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Para isso usamos os identificadores:
→ 0 - Não existe obrigatoriedade de registros desta tabela no relacionamento.
→ 1 - Utilizado para quando uma entidade deve ter pelo menos um registro ou no máximo 
um registro no relacionamento.
→ N - Utilizado para demonstrar que a entidade pode ter vários relacionamentos com a 
outra entidade envolvida.
 
Fonte: (MENEℤES, 2013 p. 103)
As combinações destes identificadores podem variar conforme a necessidade da regra de 
negócio envolvida no contexto do usuário do banco de dados, conforme podemos ver abaixo:
 
Fonte: (MENEℤES, 2013 p. 104)
No exemplo “Relação Total” a entidade A pode não existir ou ter vários registros, no entanto 
caso tenha registro, a entidade B deve ter pelo menos uma ocorrência ou várias.
Já na “Relação Injetora” a entidade A pode não existir ou no máximo ter um único registro, 
porém na relação a entidade B pode não existir ou ter várias ocorrências.
FACULDADE CATÓLICA PAULISTA | 61
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Isso deve ser definido na modelagem do banco de dados para atender as necessidades 
do usuário.
Isto acontece na prática
Para finalizar, abaixo temos como seria uma instrução SQL para exibir o resultado da 
tabela FICA EM que vimos no exemplo.
Fonte: (MENEZES, 2013 p. 102)
Nas linhas 1 a 3 é a uma instrução SQL para obter o resultado da combinação entre 
as tabelas PAÍS e CONTINENTE. Na linha 3 o comando JOIN realiza o relacionamento 
entre as tabelas.
FACULDADE CATÓLICA PAULISTA | 62
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
AULA 16
REVISÃO
16.1 Lógica Proposicional
Nesta última aula, vamos dar uma revisada nos principais conceitos que vimos durante 
as aulas anteriores para reforçar todos os conceitos que vocês vão acabar usando nas 
próximas disciplinas no decorrer do curso.
Vamos iniciar relembrando que a lógica proposicional está presente no nosso dia, sempre 
que precisamos pensar de forma organizada e tomar uma decisão racional sobre uma 
determinada situação.
Para isso, precisamos construir proposições que são sentenças que permitem apenas 
duas respostas, VERDADEIRA ou FALSA. Caso a sentença permita mais respostas, ela não 
é uma proposição.
Para escrever proposições válidas, lembre-se dos princípios fundamentais:
Princípio da Não-contradição
Nenhuma proposição pode ser simultaneamente “verdadeira e falsa”. 
Princípio do terceiro excluído
Uma proposição só pode ter duas respostas possíveis, sendo VERDADEIRA ou FALSA, 
não existe uma terceira resposta possível.
16.1.1 Exemplo
Exemplo de Proposições:
A. Porto Alegre é a capital do Rio Grande do Sul. 
B. 2 + 3 = 5
C. 5 + 4 = 10
D. O João tem 18 anos
FACULDADE CATÓLICA PAULISTA | 63
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
16.1.2 Tabela Verdade
A tabela-verdade é uma ferramenta visual que nos auxilia a pensar e analisar todas as 
possibilidades de resposta de uma proposição composta.
Lembrem-se que para sabermos o número de linhas necessárias que uma tabela-verdade 
precisa ter para atender a essa fórmula, é preciso usar o cálculo 2n onde o “n” será o número 
de letras de proposição da fórmula.
 
16.2 Conectivos Lógicos
Em algumas situações vamos precisar considerar várias condições de lógica para uma 
única tomada de decisão para isso iremos elaborar fórmulas para atender as proposições 
mais complexas, onde poderemos utilizar letras de proposição, conectivos e parênteses.
A ⋁ (¬B) → ¬(A ⋁ B)
Para formar proposições compostas poderemos utilizar os conectivos lógicos:
• ⋀ E (Conjunção)
• ⋁ OU (Disjunção)
FACULDADE CATÓLICA PAULISTA | 64
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
• ¬ NÃO (Negação)
• → SE … ENTÃO … (Condicional)
• ↔ SE E SOMENTE SE (Bicondicional)
Vimos também que para reduzir o número de parênteses dentro de uma fórmula podemos 
obedecer a seguinte ordem de precedência para analisar:
1. preposições dentro de parênteses, iniciando sempre pelas expressões dentro dos 
parênteses mais internos
2. Conectivo de negação (¬)
3. Conectivo de conjunção (⋀)
4. Conectivo de disjunção (⋁)
5. Conectivo condicional (→)
6. Conectivo bicondicional (↔) 
Lembrem-se que montamos a tabela-verdade seguindo esses critérios e quebrando a 
análise em várias etapas, para evitar erros de análise.
Fonte: (GERSTING, 2016) 
16.3 Teoria dos Conjuntos, suas operações e relações
 Um conjunto é uma coleção de elementos que contém vários elementos ou até mesmo 
nenhum elemento, sem uma ordenação dos elementos que constam neles.
 
FACULDADE CATÓLICA PAULISTA | 65
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
16.3.1 Exemplo
A. As letras vogais: a, e, i, o, u;
B. Os números pares: 0, 2, 4, 6, …
C. Todos os times de futebol da Série A do Campeonato Brasileiro;
D. Os dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9; 
E. Todos os estados brasileiros;
F. O carro Gol, a letra a, João, São Paulo.
Podemos descrever os conjuntos de duas formas, sendo:
Denotação por extensão
Dígitos = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
Denotação por compreensão
Pares = { n | n é número par }
16.3.2 Tipos de Conjuntos
Vimos que existem alguns tipos de conjuntos comuns:
→ Conjunto Vazio
→ Conjunto Unitário
→ Conjunto Universo
→ Conjuntos Numéricos
→ Conjuntos finitos e infinitos
16.3.3 Pertinência / Continência
Também repassamos os símbolos que podemos utilizar nas fórmulas envolvendo conjuntos.
FACULDADE CATÓLICA PAULISTA | 66
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Pertinência
→ ∈ (PERTENCE)
→ ∉ (NÃO PERTENCE)
Continência
→ ⊆ (ESTÁ CONTIDO EM)
→ ⊄ (NÃO ESTÁ CONTIDO EM)
→ ⊇ (CONTÉM)
→ ⊅ (NÃO CONTÉM)
→ = (IGUAL)
16.3.4 Diagrama de Venn
 Conhecemos o Diagrama de Venn, uma linguagemdiagramática que utiliza formas 
geométricas, mais uma ferramenta para auxiliar na interpretação da composição, operações 
e relações dos conjuntos.
 
Fonte: MENEℤES, 2013 p. 48 e 54
16.3.5 Operações em Conjuntos
Conhecemos as operações que podemos utilizar sobre os conjuntos. Estas operações 
são classificadas em dois tipos, sendo elas: 
Não reversíveis
→ União
→ Intersecção
FACULDADE CATÓLICA PAULISTA | 67
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
Reversíveis
→ Complemento
→ Conjunto das partes
→ Produto cartesiano
→ União disjunta
16.3.6 Relações entre Conjuntos
E por último vimos o conceito de Relações entre Conjuntos e traçamos um paralelo em 
relação aos bancos de dados relacionais.
 
Fonte: (MENEℤES, 2013 p. 85)
FACULDADE CATÓLICA PAULISTA | 68
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
CONCLUSÃO
Como vimos no decorrer das aulas o pensamento lógico é um conceito que vem sendo 
utilizado há muito tempo na história, seja para simplificar uma explicação através de 
proposições afirmativas como os gregos já utilizavam tentando simplificar a compreensão 
de quem ouvia suas mensagens, como já para aplicações matemáticas como no estudo de 
George Boole que foi o início dos entendimentos sobre o assunto, que depois evoluiria para 
o uso dos computadores na interpretação e resolução de problemas.
A lógica faz parte do nosso dia a dia, até sem o uso da tecnologia utilizamos ela 
implicitamente quando precisamos tomar uma decisão racional ou com juízo de valor, acaba 
sendo automático pensarmos em situações lógicas no cotidiano, até em uma decisão como 
se em um dia de chuva preciso levar ou não um guarda-chuva, por exemplo. Vou precisar 
decidir entre sim ou não para essa situação.
Aprofundamos sobre os conectivos que permitem considerarmos várias condições para 
uma tomada de decisão e depois abordamos a teoria dos conjuntos, suas operações e 
relações e novamente conseguimos ver que dá para traçar um paralelo com situações do 
dia a dia e na computação.
Esse conteúdo foi uma base e serão utilizados de forma implícita na continuidade dos seus 
estudos seja no desenvolvimento de software utilizando muitos destes conceitos ao escrever 
códigos para o computador executar corretamente uma ação ou também na modelagem de 
banco de dados que são conjuntos de dados, onde vocês poderão armazenar e gerenciar 
informações.
FACULDADE CATÓLICA PAULISTA | 69
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
ELEMENTOS COMPLEMENTARES
LIVRO
 
Título: Fundamentos matemáticos para a ciência da 
computação
Autor: Judith L. Gersting
Editora: LTC
Comentário: Este livro se aprofunda bastante em 
todos os conceitos de matemática discreta, com 
vários exemplos e exercícios que ajudam a reforçar 
o entendimento.
 
LIVRO
Título: Matemática discreta para computação e 
informática
Autor: Paulo Blauth Menezes
Editora: Bookman
Sinopse: Este livro possui exemplos bem didáticos 
para apresentar os conceitos da matemática discreta, 
entre eles os conceitos de lógica e teoria dos conjuntos, 
de forma simples de aprender.
FACULDADE CATÓLICA PAULISTA | 70
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR
REFERÊNCIAS
DAGHLIAN, J. Lógica e álgebra de Boole. São Paulo: Atlas, 2015.
GERSTING, J. L. Fundamentos matemáticos para a ciência da computação. Rio 
de Janeiro: LTC, 2016.
LIPSCHUTZ, S.; LIPSON, M. Matemática discreta. Porto Alegre: Bookman, 2013.
MENEZES, P. B. Matemática discreta para computação e informática. vol.16 - Série 
Livros Didáticos Informática UFRGS. Porto Alegre: Bookman, 2013.
ROSEN, K. H. Matemática discreta e suas aplicações. São Paulo: ArtMed, 2010.
Site:
https://noticias.uol.com.br/saude/ultimas-noticias/redacao/2021/01/17/anvisa-
aprova-pedido-de-vacina-do-butantan-e-da-fiocruz.htm
https://noticias.uol.com.br/saude/ultimas-noticias/redacao/2021/01/17/anvisa-aprova-pedido-de-vacina-do-butantan-e-da-fiocruz.htm
https://noticias.uol.com.br/saude/ultimas-noticias/redacao/2021/01/17/anvisa-aprova-pedido-de-vacina-do-butantan-e-da-fiocruz.htm

Continue navegando