Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
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.
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 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.
AULA 1
LÓGICA PROPOSICIONAL
1.1 Lógica
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
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:
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.
como não conhecemos o valor de “x”, não conseguimos afirmar se a mesma é VERDADEIRO
ou FALSO.
• 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.
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.
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.
2.1.1 Exemplos
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:
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:
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.
3.1.1 Exemplos
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.
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:
AULA 4
CONECTIVOS LÓGICOS - NEGAÇÃO
4.1 Negação
Veja que a tabela-verdade de negação é mais simples que as anteriores, pois apenas
inverte o valor de A.
4.1.1 Exemplos
Como também podemos descrever a mesma frase como negação, da seguinte forma:
Nesta simples inversão de proposição, conseguimos reduzir em 2 linhas o código fonte
para obter o mesmo resultado de processamento.
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.
“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”.
Exemplo 2
“Flávio prometeu a seus vendedores: se baterem a meta de vendas então ele pagará um
bônus como premiação.”
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:
→ “P ↔ Q” = “(P → Q) ^ (Q → P)”
ou:
→ “P se e somente se Q” = (se P então Q) e (se Q então P)
6.1.1 Exemplos
Exemplo 1
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
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′)
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:
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:
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:
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
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.
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.
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.
Dígitos = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
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.
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
Outro tipo de conjunto importante é o conjunto unitário que possui apenas um único
elemento.
Exemplos
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}
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
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
9.1.1 Exemplos
9.2 Continência
P está contido em Q
P⊆Q
Q⊇P
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. Ø ⊆ ℤ
A = B se e somente se (A ⊆ B) e (B ⊆ A)
Anote isso
Continência
→ ⊆ (ESTÁ CONTIDO EM)
→ ⊄ (NÃO ESTÁ CONTIDO EM)
→ ⊇ (CONTÉM)
→ ⊅ (NÃO CONTÉM)
→ = (IGUAL)
AULA 10
TEORIA DOS CONJUNTOS -
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:
B. um elemento b ∈ B
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:
D. { a, b } ⊆ { a, b, c }
E. A ⊆ B
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
H. A ∩ B
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:
Isto acontece na prática
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)).
AULA 11
TEORIA DOS CONJUNTOS -
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∪B
11.1.1.1 Exemplos
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.
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
11.1.2.1 Exemplos
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.
AULA 12
TEORIA DOS CONJUNTOS -
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.
12.1.1.1 Exemplos
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.
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
→{ a } ⊆ A
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 }
〈 a, b 〉 ou ( a, b )
A×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 }
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:
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:
A+B
A + B = { 〈a, A〉 | a ∈ A } ∪ { 〈b, B〉 | b ∈ B }
12.1.4.1 Exemplos
→ Silva + Souza = { 〈João, Silva〉, 〈Maria, Silva〉, 〈José, Silva〉, 〈Pedro, Souza〉, 〈Ana, Souza〉,
〈José, Souza〉 }
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:
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:
R⊆A×B
R: A → B
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 }
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.
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.
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
14.1.1.1 Exemplos
Dados os conjuntos:
→A={a}
→ B = { a, b }
→ C = { 0, 1, 2 }
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.
S O R: A → C
14.1.2.1 Exemplos
AULA 15
RELAÇÕES E FUNÇÕES - 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:
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.
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:
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.
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.
Isso deve ser definido na modelagem do banco de dados para atender as necessidades
do usuário.
Para finalizar, abaixo temos como seria uma instrução SQL para exibir o resultado da
tabela FICA EM que vimos no exemplo.
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.
AULA 16
REVISÃO
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”.
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
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.
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)
• ⋀ E (Conjunção)
• ⋁ OU (Disjunção)
• ¬ 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:
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.
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.
Dígitos = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
→ Conjunto Vazio
→ Conjunto Unitário
→ Conjunto Universo
→ Conjuntos Numéricos
→ Conjuntos finitos e infinitos
Também repassamos os símbolos que podemos utilizar nas fórmulas envolvendo conjuntos.
Pertinência
→ ∈ (PERTENCE)
→ ∉ (NÃO PERTENCE)
Continência
→ ⊆ (ESTÁ CONTIDO EM)
→ ⊄ (NÃO ESTÁ CONTIDO EM)
→ ⊇ (CONTÉM)
→ ⊅ (NÃO CONTÉM)
→ = (IGUAL)
Não reversíveis
→ União
→ Intersecção
Reversíveis
→ Complemento
→ Conjunto das partes
→ Produto cartesiano
→ União disjunta
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.
ELEMENTOS COMPLEMENTARES
LIVRO
LIVRO
REFERÊNCIAS
Site:
https://noticias.uol.com.br/saude/ultimas-noticias/redacao/2021/01/17/anvisa-
aprova-pedido-de-vacina-do-butantan-e-da-fiocruz.htm