Você está na página 1de 71

LÓGICA DA

COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA
BAGAGI JUNIOR
Diretor Geral | Valdir Carrenho 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.
LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR

SUMÁRIO

AULA 01 LÓGICA PROPOSICIONAL 05

AULA 02 CONECTIVOS LÓGICOS - CONJUNÇÃO 10

AULA 03 CONECTIVOS LÓGICOS - DISJUNÇÃO 13

AULA 04 CONECTIVOS LÓGICOS - NEGAÇÃO 16

AULA 05 CONECTIVOS LÓGICOS - CONDICIONAL 19

AULA 06 CONECTIVOS LÓGICOS - BICONDICIONAL 23

AULA 07 CONECTIVOS LÓGICOS - FÓRMULAS 26

AULA 08 TEORIA DOS CONJUNTOS - CONJUNTOS 31

AULA 09 TEORIA DOS CONJUNTOS - PERTINÊNCIA E 35


CONTINÊNCIA

AULA 10 TEORIA DOS CONJUNTOS - DIAGRAMA DE VENN 38

AULA 11 TEORIA DOS CONJUNTOS - OPERAÇÕES NÃO 43


REVERSÍVEIS

AULA 12 TEORIA DOS CONJUNTOS - OPERAÇÕES REVERSÍVEIS 47

AULA 13 RELAÇÕES E FUNÇÕES - CONCEITOS 52

AULA 14 RELAÇÕES E FUNÇÕES - TIPOS 55

AULA 15 RELAÇÕES E FUNÇÕES - BANCO DE DADOS 58


RELACIONAL

AULA 16 REVISÃO 62
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 | 4


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 | 5


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 | 6


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 | 7


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 uma conjunçã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 | 8


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 | 9


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 | 10


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 | 11


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 | 12


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 | 13


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 | 14


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 | 15


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 | 16


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 | 17


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 | 18


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 | 19


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 | 20


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á satisfeito com 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 | 21


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 | 22


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 | 23


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 | 24


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 | 25


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 | 26


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 | 27


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 | 28


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 | 29


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 | 30


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 | 31


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 | 32


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 | 33


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>0en<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 | 34


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 PERTENCE ao 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 | 35


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 | 36


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 | 37


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 | 38


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 | 39


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 | 40


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 | 41


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 | 42


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 ambos os
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 | 43


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 | 44


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 | 45


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 | 46


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 | 47


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 | 48


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 | 49


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 | 50


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 | 51


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 | 52


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 | 53


LÓGICA DA COMPUTAÇÃO
PROF. ESP. NIVALDO DE SOUZA BAGAGI JUNIOR

Fonte: (MENEZES, 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 | 54


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 | 55


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: MENEZES, 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 | 56


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: MENEZES, 2013 p. 92

FACULDADE CATÓLICA PAULISTA | 57


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: (MENEZES, 2013 p. 102)

FACULDADE CATÓLICA PAULISTA | 58


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: (MENEZES, 2013 p.103)

→ Relacionamentos - Representam como as tabelas se relacionam é desenhada como


um losango com linhas saindo dele e ligando as entidades.

Fonte: (MENEZES, 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 | 59


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: (MENEZES, 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: (MENEZES, 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 | 60


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 | 61


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 | 62


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 | 63


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 | 64


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 | 65


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 linguagem diagramá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: MENEZES, 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 | 66


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: (MENEZES, 2013 p. 85)

FACULDADE CATÓLICA PAULISTA | 67


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 | 68


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 | 69


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

FACULDADE CATÓLICA PAULISTA | 70

Você também pode gostar