03 - Lógica Computacional
03 - Lógica Computacional
03 - Lógica Computacional
Lógica Computacional
4 unidades / 16 aulas
• Objetivo 1
• Objetivo 2
• Objetivo 3
• Objetivo 4
Conteúdo
• UNIDADE 1
• UNIDADE 2
Álgebra de conjuntos
o Aula 1: Teoria dos conjuntos
Vale 2.5 pontos
o Aula 2: Álgebra de conjuntos
Vale 2.5 pontos
o Aula 3: Aplicações de teoria dos conjuntos
Vale 2.5 pontos
o Aula 4: Na Prática
Vale 2.5 pontos
• UNIDADE 3
Fundamentos da Lógica
o Aula 1: Introdução à lógica proposicional
Vale 2.5 pontos
o Aula 2: Conectivos e classificação textual
Vale 2.5 pontos
o Aula 3: Métodos dedutivos e inferência lógica
Vale 2.5 pontos
o Aula 4: Na Prática
Vale 2.5 pontos
3
• UNIDADE 4
Tabela Verdade
o Aula 1: Construção da Tabela Verdade
Vale 2.5 pontos
o Aula 2: Resultados na Tabela Verdade
Vale 2.5 pontos
o Aula 3: Aplicações Tabela Verdade
Vale 2.5 pontos
o Aula 4: Na Prática
Vale 2.5 pontos
4
Introdução
Vamos lá!
5
Introdução da Unidade
Hoje em dia, com sistemas informacionais espalhados por todos os setores da economia
e em nosso dia a dia, as escolhas profissionais mais populares quanto à profissão a
seguir são, com certeza, voltadas à computação, programação ou análise de sistemas. O
surgimento das startups é uma tendência, e a demanda por profissionais qualificados em
programação tende a subir. Frente a isso, para que o profissional tenha condições de
progredir na profissão que demanda construção de sistemas que envolvem software,
será necessário um conhecimento sólido de lógica computacional.
Para resolver esses desafios, nesta unidade você aprenderá o que são argumentos,
inferências, silogismos e falácias, aprenderá a diferenciar o raciocínio indutivo do
raciocínio dedutivo e poderá comunicar-se de maneira eficiente. Aprenderá também a
classificar a lógica empírica e pura, diferenciando-as conforme o estudo de lógica
transcendental. Você também compreenderá como se deu a evolução da lógica até os
dias atuais explorando problemas ligados à área computacional.
Bons estudos!
6
Situação-problema
Olá, estudante!
O estudo desta aula é importante para o trabalho na medida em que, ao conversar com
pessoas, por escrito ou por meio da fala, não haja falha de comunicação ou má
interpretação. É fundamental considerar também que tais conceitos permitem a
construção de algoritmos para a resolução de problemas do cotidiano e, posteriormente,
o desenvolvimento de programas de computador (softwares) de forma a minimizar a
existência de bugs, falhas e demais comportamentos não esperados.
Para motivar sua aprendizagem, imagine que você trabalha em uma empresa de
tecnologia que ajudou a fundar, uma startup que desenvolve aplicativos para o setor
industrial. Para negociar com seu cliente, papel que é de sua responsabilidade na
empresa, você tem que usar o raciocínio lógico para interpretar as intenções das pessoas
que se relacionam comercialmente com você e conseguir demonstrar seu produto e
fechar vendas.
Seu desafio é interpretar se um negócio pode ou não ser fechado a partir de frases
contidas nos e-mails de seus clientes. Você deverá utilizar as classificações de lógica
indutiva e dedutiva para esse exercício e pensar sobre possíveis diálogos de negociação.
O ponto principal a ser entendido é: a partir de uma determinada frase do cliente, como
podemos inferir algumas outras conclusões com grande probabilidade de acerto, ou seja,
visando à venda de um produto?
• “Realizamos dezenas de testes com o seu software e em todos ele foi capaz de
chegar à melhor solução para nosso problema.”
• “Nos últimos anos, os softwares que resolveram nossos problemas foram
adquiridos para a melhoria de nossos processos.”
Você deverá concluir, com base na lógica clássica, se o cliente está motivado a adquirir
o produto compondo argumentos e esclarecendo se a lógica utilizada é a indutiva ou a
dedutiva.
7
Os conteúdos teóricos necessários para vencer o desafio estão apresentados nesta aula,
na qual serão caracterizadas as definições de lógica, a lógica transcendental e formal,
classificação da lógica: indutiva, dedutiva, clássica, não clássica.
A partir dos vocabulários, podemos definir os tipos de lógica existentes, entre os quais
estão a lógica formal e a lógica transcendental.
A lógica formal começa nos estudos de Aristóteles, na Grécia Antiga. A lógica é dita
formal quando analisa e representa a forma de qualquer argumento para que possa ser
considerado válido para alguma conclusão.
A lógica formal lida com as relações entre premissas e as conclusões que se chegam a
partir das premissas, independentemente se a premissa é verdadeira ou falsa
(MUNDIM, 2002).
Para se entender a lógica formal e como formamos nosso raciocínio é importante ter em
mente alguns conceitos. Uma proposição é um pensamento em forma de frase
declarativa. Essa proposição pode ser verdadeira ou falsa. A lógica não permite concluir
8
se uma proposição ou afirmação é verdadeira ou falsa, ela apenas garante que, com base
em premissas verdadeiras, seja possível chegar a conclusões verdadeiras.
Portanto, temos que as premissas podem ser verdadeiras ou falsas. Se afirmo que o céu
está claro e sem nuvens, você pode olhar pela janela e concluir se a afirmação é
verdadeira ou falsa. Se estiver chovendo, você dirá que minha afirmação é falsa. Por
outro lado, um argumento pode ser válido ou inválido.
Exemplificando
Se eu afirmar (premissas):
Então (conclusão):
A primeira premissa parece absurda ou falsa, mas caso você considere ambas
verdadeiras, terá um argumento válido: a conclusão é inevitável.
Por isso, a análise da veracidade das premissas e a análise da validade dos argumentos
são distintas. A lógica se ocupa da validade do raciocínio, a verdade das premissas deve
ser decidida por outros meios.
Elias é homem.
• A flecha que voa jamais sai do lugar, porque, em cada instante de tempo, ocupa
uma só posição no espaço, logo, ela está imóvel todo o tempo.
• Entre dois pontos existem infinitos pontos. Ninguém pode atravessar infinitos
pontos. Então, não há movimento.
É por isso que foi desenvolvida a lógica simbólica, relacionada à matemática, a partir do
século XIX. Ela permite a expressão das premissas e de suas relações por meio de
símbolos matemáticos, construindo equações para expressar argumentos. Tal linguagem
é absolutamente precisa e não dá margem a duplas interpretações.
Vamos estudar mais à frente que a lógica matemática originou a lógica utilizada em
computadores, que são sistemas digitais construídos para executar tarefas programáveis
e que fornecem respostas e saídas exatas, conforme determinado conjunto de instruções
e dados fornecidos a esses sistemas.
Desse modo, a lógica transcendental opera a partir das representações, dos conceitos e
não das coisas em si. Trata-se de uma investigação sobre as representações a priori, as
categorias, os conceitos puros em relação aos objetos, enquanto a Lógica geral se volta
para a forma lógica do pensamento.
Aqui, partimos de uma informação geral sobre as habilidades dos analistas de sistemas
para concluir sobre as habilidades de Mariana. Com base na afirmativa geral, tomada
como verdadeira, a conclusão é inevitável. Chamamos Silogismo esse tipo de
argumentação lógica.
Um exemplo famoso é que por séculos a afirmação “todo cisne é branco” foi
considerada verdadeira pelos europeus, pois a cada encontro com um cisne, eles
verificavam que sua cor era branca. Pela lógica indutiva, chegou-se à conclusão que
todos eram brancos. Com as navegações, entretanto, verificou-se que na Austrália há
cisnes negros. O contraexemplo, portanto, invalidou imediatamente a conclusão
anterior.
Observando alguns exemplos, fica mais fácil perceber as diferenças entre as lógicas
indutiva e dedutiva.
1. Uma maçã solta no ar cai em direção ao solo. Uma caneta solta no ar cai em
direção ao solo. Um livro solto no ar cai em direção ao solo. Todos os objetos
soltos no ar caem em direção ao solo.
2. Um imã atrai um prego de ferro. Um imã atrai limalha de ferro. Um imã atrai
argolas de ferro. Um imã atrai o elemento ferro.
______
Assimile
______
A lógica também pode ser dividida em lógica clássica e lógica não clássica. Estudamos
até esse ponto a lógica clássica cujo expoente foi Aristóteles e que está centrada na
verdade das conclusões e na validade dos argumentos. A conclusão pode ter dois
valores lógicos: verdadeiro (1) ou falso (0).
A lógica não clássica permite variações, como nos casos em que mais de dois valores de
verdade podem ser aplicados, por exemplo. Um exemplo é a conhecida lógica fuzzy,
12
para a qual o valor verdade pode ser qualquer número real entre 0 e 1. Outras variações
são possíveis com o abandono de alguns princípios da lógica clássica e análise de suas
consequências.
Para exemplificar, podemos citar a lógica modal, desenvolvida por Lewis no início do
século passado, na qual a proposição pode ser, além de verdadeira ou falsa, necessária
ou impossível (necessariamente verdadeira ou necessariamente falsa).
Conforme explica Oliveira (2010), as lógicas não clássicas seguem geralmente uma ou
mais das três características a seguir:
Por exemplo: as lógicas não reflexivas, que negam axiomas da lógica clássica, que não
admitem o princípio da identidade.
Chegamos ao fim desta aula e esperamos que tudo que lhe apresentado nas páginas
anteriores o tenha inspirado a refletir sobre como a lógica faz parte de nossa vida e pode
nos ajudar nas decisões cotidianas, em um mundo a cada dia mais informatizado e
conectado.
Você se lembra que na situação problema você trabalha em uma startup que produz
softwares para uso industrial e está analisando a troca de e-mails com o cliente para
concluir se a venda deverá ser fechada ou não? Para isso, você decidiu recorrer à lógica
clássica e aos raciocínios dedutivo e indutivo. Vamos retomar as frases extraídas do e-
mail do cliente.
“Realizamos dezenas de testes com seu software e em todos ele foi capaz de chegar à
melhor solução para nosso problema.”
“Nos últimos anos, os softwares que resolveram nossos problemas foram adquiridos
para a melhoria de nossos processos.”
13
Realizamos dezenas de testes com seu software e em todos ele foi capaz de chegar à
melhor solução para nosso problema.
“Nos últimos anos, os softwares que resolveram nossos problemas foram adquiridos
para a melhoria de nossos processos.”
As duas conclusões apresentadas poderiam, por sua vez, ser combinadas por meio de
um raciocínio dedutivo para se chegar a uma conclusão:
Isso mostra que as perspectivas são positivas para o fechamento do negócio, mas não se
esqueça de que as conclusões do raciocínio indutivo são válidas até que ocorra um
contra exemplo. Então, antes de comemorar, é melhor esperar que o cliente confirme
formalmente a aquisição do software após as negociações finais.
14
Introdução da aula
Nesta aula, você vai estudar como se deu a evolução da lógica, desde Aristóteles até os
dias atuais.
Situação-problema
Olá, estudante!
Parafraseando Isaac Newton, que disse: “se eu vi mais longe, foi porque me apoiei em
ombros de gigantes”, é importante compreendermos os aspectos históricos que
motivaram o estudo da lógica. Os gigantes, nesse caso, são matemáticos, filósofos e
pensadores como Aristóteles, George Boole e Gottlob Frege, por exemplo. Suas ideias
serviram de base para todas as lógicas de programação com as quais lidamos
atualmente.
O comitê diretor de uma multinacional é formado por três membros:o diretor executivo,
o vice-diretor financeiro e o vice-diretor de relações institucionais. Um projeto de
criação de uma filial dessa empresa em um país emergente será votado pelo comitê, e o
projeto só passará se o diretor executivo votar a favor e obtiver maioria. Você deverá
projetar um circuito de modo que cada membro vote a favor apertando um botão e, ao
final do processo, uma luz se acenderá caso o projeto seja aprovado. Esse circuito
poderá ser utilizado em outras votações pelo mesmo comitê. Como você projetará esse
circuito? Que relação esse projeto guarda com aspectos da evolução da lógica?
15
Segundo Abar (2004), a história da lógica tem início com o filósofo grego Aristóteles
(384 – 322 a.C.) de Estagira (hoje Estavo), na Macedônia, que desenvolveu a teoria do
silogismo, um tipo de inferência dedutiva. Pode-se dizer que o Período Aristotélico se
inicia aproximadamente em 390 a.C., perdurando até meados do século XIX (1840
d.C.). Aristóteles é tido como o homem mais erudito de todos os tempos, sendo sua
morte considerada como o marco do fim do primeiro grande período, a Idade Helênica,
na história da civilização grega (BOYER, 1996).
______
Assimile
______
Em um silogismo, as premissas e conclusões se encaixam de tal forma que, uma vez que
você aceita as premissas como verdadeiras, fica obrigado a aceitar que a conclusão
também o é, independentemente do teor do real argumento que está sendo construído
(ZEGARELLI, 2013).
Assumindo as premissas como verdadeiras, concluímos que José torce pelo Brasil.
Observe que ao analisarmos as premissas, não podemos fazer juízo de valor sobre elas.
O argumento lógico é deduzido a partir daquilo que é colocado como verdade, e a nossa
opinião sobre a validade das premissas não pode interferir na elaboração da conclusão.
16
O princípio do terceiro excluído afirma que toda proposição é verdadeira ou falsa, não
havendo uma terceira possibilidade para valoração da proposição.
______
Exemplificando
______
Zegarelli (2013) aponta que após o declínio da civilização grega, o estudo da lógica
passou por um longo período de ostracismo, com alguns renascimentos esporádicos
durante o Império Romano e a Europa Medieval. Segundo Santos (2014), nos séculos
XII e XIII, por exemplo, há um ressurgimento do interesse motivado, ao que parece,
pelo desenvolvimento de um gênero específico da lógica medieval que se ocupava com
o estudo de paradoxos semânticos.
______
Exemplificando
______
______
Reflita
É apenas por volta do século XVIII, com o advento do Iluminismo na Europa, quando a
era da fé vai gradualmente dando lugar à era da razão, que a lógica volta a figurar como
objeto de maior interesse de cientistas e filósofos. De acordo com Zegarelli (2013),
cientistas como Isaac Newton e filósofos como René Descartes passaram a procurar
respostas sobre o funcionamento do universo, indo além dos ensinamentos da igreja.
Com isso, a lógica ressurgiu no pensamento científico para se estabelecer como uma
ferramenta essencial da razão.
George Boole foi o inventor da chamada Álgebra Booleana, que foi o primeiro sistema
totalmente detalhado que lida com a lógica como cálculo. Colocando de uma maneira
bem simples, podemos dizer que a Álgebra Booleana se caracteriza por utilizar apenas
dois números (dígitos), 0 e 1, que significam, respectivamente, falso e verdadeiro, e que
por meio de propriedades essenciais dos operadores lógicos e de conjuntos oferece uma
estrutura para se lidar com proposições. Considere, por exemplo, as seguintes
afirmações:
(A) = 1
(B) = 0
Gottlob Frege foi o criador da chamada Lógica Matemática. Inspirado nas ideias e
notações de Leibniz, Frege reformulou toda a lógica tradicional, construindo um sistema
para apresentá-la em linguagem matemática. É com base em suas obras que se
desenvolveram o cálculo proposicional e o cálculo de predicados. Uma de suas maiores
contribuições foi a invenção do quantificador e a utilização de variáveis para formalizar
a generalidade da linguagem natural (JAPIASSÚ; MARCONDES, 2006).
Segundo Alencar Filho (2002), quando pensamos, efetuamos muitas vezes certas
operações sobre proposições, chamadas operações lógicas. Estas operações obedecem a
regras de um cálculo, denominado cálculo proposicional, semelhante ao da aritmética
sobre números. Os conectivos sentenciais correspondem a várias palavras nas
linguagens naturais que servem para conectar proposições declarativas. Os principais
conectivos (operações lógicas fundamentais) são representados atualmente pelos
seguintes símbolos:
20
Exemplificando
Considerando as proposições:
p: João é gaúcho e
q: Jaime é paulista.
Segundo Buchsbaum (2006), tais sistemas são chamados de lógicas não clássicas,
dentre as quais podemos destacar as lógicas para completas (que não respeitam o
princípio do terceiro excluído), as lógicas paraconsistentes (que não respeitam o
princípio da não contradição) e as lógicas modais (que estudam possíveis variações da
veracidade ou falsidade).
Também destacamos, no conjunto de lógicas não clássicas, a lógica fuzzy, que tem
apresentado contribuições para a Informática, no campo da Inteligência Artificial, com
os Sistemas Especialistas. De acordo com Martins e Martins (2015), a lógica fuzzy é
uma modalidade da lógica capaz de tratar conceitos vagos, imprecisos ou ambíguos –
21
• Para chegar ao posto de gasolina, prossiga na rodovia por mais alguns metros.
Os termos destacados nessas afirmações são conceitos vagos, que envolvem imprecisão.
Nesse sentido, esses termos são chamados de fuzzy. O conceito “fuzzy” pode ser
entendido como uma situação em que não podemos responder simplesmente “sim” ou
“não”. Mesmo conhecendo as informações necessárias sobre a situação, dizer algo entre
“sim” e “não” como “talvez”, “quase”, torna-se mais apropriado. (ABAR, 2004).
Aprendemos nesta aula como se deu a evolução da lógica desde seus primórdios,
partindo das ideias de Aristóteles, até os dias atuais. Compreender essa evolução nos
ajudará a melhor compreender as operações lógicas fundamentais e relacioná-las com
diversas e atuais linguagens de programação.
O projeto só passará se o diretor executivo votar a favor e obtiver maioria. Você deverá
projetar um circuito de modo que cada membro vote a favor apertando um botão e, ao
final do processo, uma luz se acenderá caso o projeto seja aprovado. Lembre-se de que
você deverá elaborar uma apresentação destacando como conceitos como aberto e
fechado, ou ligado e desligado, podem ser representados e trabalhados com uma álgebra
booleana.
enquanto no estado “aberto” (que indicaremos por 0) nenhuma corrente pode passar
pelo ponto (ABAR, 2004). Quando tivermos a passagem de corrente (estado 1), uma luz
ligada ao circuito se acenderá. De modo análogo, quando não tivermos a passagem de
corrente (estado 0) a luz não se acenderá.
A tabela nos mostra que das oito combinações possíveis, em apenas três situações a luz
se acenderá e o projeto será aprovado. O valor lógico para o circuito A (diretor
executivo) obrigatoriamente deverá ser igual a 1. Além disso, para que o projeto seja
aprovado, o circuito de um dos dois vice-presidentes (ou ambos) também deverá ser
igual a 1. Logo, a luz ligada aos circuitos só se acenderá e o projeto só será aprovado,
quando o valor lógico na última coluna da tabela for igual a 1.
Introdução da aula
Situação-problema
Olá, estudante!
Após aprendermos o que é a lógica e estudarmos como se deu sua evolução, nesta
terceira aula nos debruçaremos sobre alguns princípios matemáticos relacionados à
lógica. Você pode já ter se deparado com problemas do tipo:
Os conhecimentos discutidos nesta aula ajudarão você a resolver esse desafio. Bons
estudos!
Nos últimos anos tornou-se uma disciplina importantíssima porque nos computadores a
informação é armazenada e manipulada de forma discreta. A matemática discreta
aborda fundamentalmente três tipos de problemas que surgem no estudo de conjuntos e
estruturas discretas:
Nesta aula, vamos abordar alguns princípios relacionados à matemática discreta, que
nos ajudarão a resolver problemas desse tipo e a compreender melhor algumas situações
lógico-matemáticas que estão por trás dos mais diversos sistemas computacionais.
Assim, a lista (2, 4, 8, 16) não é a mesma que a lista (4, 2, 16, 8). Embora os elementos
que compõem a lista sejam os mesmos, a forma pela qual foram arranjados (ordem) é
diferente. Também é importante destacar que uma lista pode conter elementos repetidos,
como (3, 4, 5, 5, 6), em que o número 5 aparece duas vezes.
______
Exemplificando
A lista (10, 11) tem comprimento dois e também é chamada de par ordenado.
Outra expressão utilizada para representar listas é upla. Uma lista de n elementos é
conhecida como uma n-upla (lê-se: ênupla) (SCHEINERMAN, 2015).
______
Você pode ter associado a lista de dois elementos (par ordenado) à forma de
representação de um ponto no plano cartesiano (coordenadas (x, y)). E é isso mesmo!
As listas estão presentes em uma série de aplicações na matemática e muito além. Um
número é uma lista de algarismos; uma palavra é uma lista de letras; um identificador
em um programa de computador pode ser uma lista de letras e algarismos; a placa de
um automóvel é uma lista de letras e algarismos, o número de um telefone é uma lista
26
Vamos considerar a necessidade de se fazer uma lista de comprimento dois em que seus
elementos sejam uma das letras A, B, C ou D. Quantas listas podemos formar?
Assimile
Vamos supor que os elementos possíveis na primeira posição da lista sejam números
inteiros de 1 a n e que os elementos possíveis para a segunda posição sejam números
inteiros de 1 a m. Podemos construir o seguinte quadro para organizar todas as
possibilidades:
Como temos cinco opções para vogal (A, E, I, O, U) e nove opções de algarismos (1, 2,
3, 4, 5, 6, 7, 8, 9), o total de listas de comprimento dois que podem ser formadas é m×n
= 9×5 = 45 .
Podemos estender o princípio da multiplicação para listas com dois elementos para esta
situação, determinando o total de listas como:
______
Exemplificando
Observe que neste exemplo não podemos computar o mesmo objeto mais de uma vez,
ou seja, em nossa lista, cada um desses objetos aparecerá exatamente uma única vez. De
quantos modos diferentes é possível ordená-los?
Repare também que não foi mencionado o comprimento da lista, portanto ordenaremos
os três objetos a, b e c, ou seja, o comprimento das listas será igual a três.
Para resolver esse problema podemos utilizar o conceito de fatorial. Como temos três
elementos a serem ordenados e estamos interessados em uma ordenação sem repetição,
o número total de listas fica determinado como:
3! = 3⋅2⋅1= 6.
(a,b,c) (a,c,b)
(b,a,c) (b,c,a)
(c,a,b) (c,b,a)
______
Adaptando seu uso para a Combinatória, as árvores de decisão (chamadas neste caso de
Diagramas de Árvore) servem para ilustrar o número de possibilidades de um evento
baseado em uma série de opções possíveis.
Árvore de decisão para três elementos tomados três a três. Fonte: elaborada pelo autor.
Neste problema foi mencionado que o comprimento da lista deveria ser igual a dois. Por
isso, todas as listas encontradas têm apenas dois elementos. A vantagem de utilização de
uma árvore de decisão (Diagrama de Árvore) é que além de determinar a quantidade de
listas que podem ser formadas, ela também discrimina quais são essas listas. Conhecer
não apenas quantas listas podem ser formadas, mas também quais são essas listas, pode
ser importante durante um processo de tomada de decisão. Por outro lado, se tivermos
um número grande de elementos a combinar, o desenho da árvore de decisão
apresentará muitos nós e ramificações. A representação poderá se tornar complexa e,
dependendo da sua utilização, poderá até mesmo ser descartada em virtude de não
colaborar para com uma melhor compreensão do problema em questão.
Vimos, até aqui, que a determinação da quantidade de listas que podem ser formadas a
partir de um número qualquer de elementos é basicamente um problema de contagem.
Vimos também que as listas podem conter ou não conter elementos repetidos e que,
para determinar o número de listas que podem ser formadas, além de utilizarmos o
princípio multiplicativo, podemos também utilizar as árvores de decisão.
30
De acordo com Iezzi et al. (2004), dado um conjunto com n elementos distintos, chama-
se arranjo dos n elementos, tomados p a p, a qualquer sequência ordenada de p
elementos distintos escolhidos entre os n existentes. Para determinar o número de
arranjos podemos utilizar a fórmula
Vamos determinar o número de arranjos desses quatro elementos (n=4) tomados dois a
dois (p =2). Utilizando a fórmula para determinação do número de arranjos, temos que:
Note que (2,3) ≠ (3,2), isto é, ao trocarmos a ordem dos elementos, obtemos um novo
agrupamento. Como a ordem dos elementos é relevante, podemos afirmar que os
arranjos são um tipo de lista.
Ou seja, existem 720 maneiras distintas para organização dessa fila. Como nas
permutações sempre temos n=p, podemos simplificar a fórmula matemática a ser
utilizada. Observe:
31
Observe que, para esse problema, a ordem dos elementos não faz diferença, ou seja,
tanto faz considerarmos o conjunto (A, B,C) ou (B,C, A) , pois os funcionários que
estariam recebendo a promoção seriam os mesmos. Os agrupamentos do tipo
combinação, por não serem ordenados, não são considerados listas.
______
Atenção
______
Pelo princípio multiplicativo sabemos que poderiam ser criadas um total de 4⋅5 = 20
subpastas, oriundas das quatro pastas distintas a, b, c e d. Como o usuário criou 18
subpastas, teremos duas configurações possíveis:
______
Reflita
______
Nesta aula, tomamos contato com alguns conteúdos da chamada matemática discreta,
compreendendo as diferentes formas com que objetos podem ser agrupados. Vimos o
que são listas, o que é uma árvore de decisão (Diagrama de Árvore) e o que são
Arranjos, Permutações e Combinações. Muitos problemas de lógica acabam recaindo
em princípios matemáticos, e os princípios aqui estudados serão de grande utilidade no
decurso de sua formação.
Pelo princípio multiplicativo sabemos que há um total de 3⋅5 =15 pontos de acesso a
essa rede. Como no momento da detecção da sobrecarga havia 13 computadores
conectados à rede, temos dois cenários possíveis: (I) havia dois escritórios com todos os
pontos de acesso utilizados e um terceiro escri- tório utilizando apenas três pontos de
acesso ou; (II) havia um escritório utilizando todos os pontos de acesso e dois
escritórios utilizando 4 pontos de acesso.
34
de a sobrecarga ter sido causada pelo escritório C. Uma análise mais detalhada, no
entanto, revela que em dois dos três cenários em que o escritório C utiliza todos os seus
pontos de acesso, há outros escritórios que também estão utilizando todos os pontos de
acesso. Ao apresentar sua conclusão ao seu superior imediato, esse detalhe não poderá
ser omitido.
35
Aula 4 - Na Prática
Introdução da aula
Nesta aula, você poderá praticar os conhecimentos adquiridos nesta unidade, por meio
de exercícios comentados.
• Exercício 2
• Todos os alunos dos cursos de Análise e Desenvolvimento de Sistemas fazem
uma disciplina de lógica computacional.
• ___________________________________________________________.
• Logo, José faz uma disciplina de lógica computacional.
•
• A premissa que preenche corretamente a lacuna acima é:
• a) José é aluno de um curso de Análise e Desenvolvimento de Sistemas.
• b) José deseja trabalhar com Análise e Desenvolvimento de Sistemas.
• c) No curso de José, não há disciplina de lógica computacional.
• d) José gosta de lógica computacional.
• e) José faz uma disciplina de lógica computacional, portanto, ele cursa Análise e
Desenvolvimento de Sistemas.
37
• Exercício 3
• Em um sentido amplo, a lógica é o estudo da estrutura e dos princípios
relativos à argumentação válida, sobretudo da inferência dedutiva e dos
métodos de prova e demonstração. Podemos classificar a estudo da lógica
em três grandes períodos: o Período Aristotélico, o Período Booleano e o
Período Atual (JAPIASSÚ; MARCONDES, 2006).
• Considerando a evolução histórica da lógica, faça a associação dos grandes
períodos discriminados nos itens I, II e III, com as características de cada
período, apresentadas nos itens 1, 2 e 3.
•
• I. Período Aristotélico.
• II. Período Booleano.
• III. Período Atual.
• 1. Caracteriza-se pelo desenvolvimento de sistemas formais polivalentes,
que trabalham não apenas com os valores lógicos verdadeiro e falso, mas
também com imprecisões e contradições, assumindo outros possíveis valores
lógicos para as proposições.
• 2. Caracteriza-se como uma ciência cuja essência era a teoria do silogismo
(certa forma de argumento válido). Corresponde à chamada Lógica
Clássica, regida, basicamente, por três princípios: o da identidade, o da não
contradição e o do terceiro excluído.
• 3. Caracteriza-se pelo desenvolvimento da Lógica Formal, também
chamada de Lógica Simbólica, na qual símbolos computáveis substituem
palavras e proposições.
•
• Assinale a alternativa que apresenta a associação correta.
• a) I - 1; II - 2; III – 3.
• b) I - 1; II - 3; III – 2.
• c) I - 2; II - 1; III – 3.
• d) I - 2; II - 3; III – 1.
• e) I - 3; II - 1; III – 2.
38
Exercício 4
Segundo Alencar Filho (2002), quando pensamos, efetuamos muitas vezes certas
operações sobre proposições, chamadas operações lógicas. Estas operações
obedecem a regras de um cálculo, denominado cálculo proposicional, semelhante
ao da aritmética sobre números. Os conectivos sentenciais correspondem a várias
palavras nas linguagens naturais que servem para conectar proposições
declarativas. Os principais conectivos (operações lógicas fundamentais) são
representados atualmente pelos seguintes símbolos
Exercício 5
Situação-problema
Olá, estudante!
Partindo da noção intuitiva de conjunto como uma coleção não ordenada de objetos,
iremos estudar uma série de conceitos, como subconjuntos, igualdade de conjuntos,
formas de representação de conjuntos (sentenças e diagramas), quantificadores
(universal e existencial) e relações de pertinência (elemento – conjuntos) e continência
(conjunto – conjunto). Além disso, também teremos um primeiro contato com a notação
de conjuntos, que compreende uma série de símbolos e signos específicos.
Conjuntos podem ser definidos como coleções não ordenadas de objetos que podem ser,
de alguma forma, relacionados (FERREIRA, 2001). Considere, por exemplo, o conjunto
A das cores da bandeira do Brasil. Temos que A = {verde, amarelo, azul, branco}. Em
geral, objetos de um mesmo conjunto gozam de uma propriedade em comum. Assim,
qualquer objeto que verifique a propriedade “ser cor da bandeira do Brasil” será
considerado um elemento do conjunto A. Costuma-se utilizar letras maiúsculas do
nosso alfabeto para representar os conjuntos.
• Listando todos os elementos do conjunto, como foi feito com o conjunto A, que
representa as cores da bandeira do Brasil. Dependendo do conjunto que se deseja
descrever, essa maneira de representação pode se revelar trabalhosa, sendo mais
indicada para conjuntos finitos, com um pequeno número de elementos.
• Indicando os primeiros elementos do conjunto (presumindo que os elementos do
conjunto possam ser ordenados) que denotem um padrão para uma listagem
indefinida. Por exemplo, considere o conjunto B ={2, 4,6,} . É possível deduzir,
a partir do padrão indicado, que o conjunto B é um conjunto infinito, constituído
pelos números inteiros positivos pares.
• Escrevendo uma propriedade que caracterize os elementos que constituem o
conjunto. Por exemplo, considere o conjunto C = {x | x é um número inteiro e
4< 9 ≤ x}. Lê-se: C é o conjunto de todos os x, tal que x é inteiro, maior do que
4 e menor ou igual a 9. Listando todos os elementos de C, tem-se que:
C={5,6,7,8,9}. Escrever a propriedade característica dos elementos de um
conjunto por meio de palavras é a maneira mais usual de descrever um conjunto.
Isso porque, muitas vezes, ao se trabalhar com conjuntos que possuem um
número muito grande de elementos (ou até mesmo conjuntos infinitos), a
listagem de todos os elementos do conjunto não se torna viável.
______
Assimile
______
Há ainda uma maneira alternativa de representação de conjuntos com forte apelo visual.
Trata-se dos Diagramas de Venn. John Venn (1834-1923) foi um matemático inglês,
tendo-se licenciado na Universidade de Cambridge onde, depois, ensinou Lógica e
Teoria das Probabilidades. Venn introduziu os diagramas em seus trabalhos baseado nos
44
círculos eulerianos, por isso, alguns autores referem-se aos diagramas de Venn como
diagramas de Euler-Venn (NOVAES, 2014).
______
Exemplificando
É muito comum nos deparamos com alguns conjuntos padrão, largamente utilizados na
matemática:
Quando dois conjuntos têm exatamente os mesmos elementos, dizemos que esses
conjuntos são iguais. Para provar que dois conjuntos A e B são iguais, devemos mostrar
que todo elemento de A é também elemento de B, e vice-versa.
______
Reflita
Vimos que dois conjuntos são iguais se, e somente se, eles contêm os mesmos
elementos. Considere os seguintes conjuntos:
E = {x ∈ Z | x é par} e
Podemos afirmar que E=F, ou seja, que todo elemento de E é também elemento de F e
vice-versa? Reflita sobre as propriedades desses conjuntos e tente elaborar um esquema
que valide ou refute a igualdade E=F.
46
O quantificador universal é simbolizado por um ∀ de cabeça para baixo, ", e é lido “para
todo” ou “qualquer que seja”. A forma geral para essa notação é ∀x∈A, afirmações
sobre x. A primeira afirmação “todo inteiro é par ou ímpar” ficaria representada como
∀x∈Z, x é par ou x é ímpar.
______
Exemplificando
Prova: Seja x∈A, ou seja, x é um número inteiro divisível por 10. Isso significa que
existe um inteiro y, de modo que x=10y. Podemos escrever essa igualdade como
x=(2.5) y=2.(5y). Portanto, x é divisível por 2 e, consequentemente, x é par.
______
______
Atenção
______
Uma maneira para resolver esse problema é listar todas as possibilidades. Como a
cardinalidade de A é igual a 3 (|A|=3), qualquer subconjunto de A pode ter de zero a três
elementos. Consideremos o Quadro a seguir com a descrição de todas as possibilidades:
______
Exemplificando
______
Nesta aula, você aprendeu o que são conjuntos, como podemos representar os
conjuntos, o que é cardinalidade de um conjunto, o que são quantificadores (universal e
existencial) e como podemos listar e contabilizar os subconjuntos de um determinado
conjunto. Todos esses conceitos serão de suma importância na resolução de situações-
problema que envolvam conjuntos e relações entre conjuntos.
Você foi contratado por uma grande empresa do setor de Tecnologia da Informação (TI)
e está trabalhando em uma equipe no desenvolvimento de um aplicativo para telefones
móveis. Durante o desenvolvimento do aplicativo, você se deparou com o problema de
identificar quantos e quais são os subconjuntos derivados de um conjunto constituído
por quatro elementos arbitrários {1,2,3,4}. Você conseguiria determinar quantos
subconjuntos podem ser formados, independentemente do seu “tamanho” (número de
elementos) e a partir da conjugação desses quatro elementos arbitrários? Você saberia
identificar todos esses subconjuntos?
49
Para identificar todos os subconjuntos de A, vamos elaborar uma lista (quadro abaixo):
Vale ressaltar que, como a cardinalidade do conjunto A era igual a 4, não tivemos
maiores dificuldades em listar todos os 16 subconjuntos. Problemas envolvendo
conjuntos de maior cardinalidade costumam exigir a contabilização do número de
subconjuntos, sem necessariamente precisar identificá-los. Inúmeros problemas
envolvendo o raciocínio computacional exigem essa habilidade.
Situação-problema
Lembre-se de que você foi contratado por uma grande empresa do setor de Tecnologia
da Informação (TI) e está trabalhando em uma equipe de desenvolvimento de um
aplicativo para telefones móveis. No desenvolvimento desse aplicativo, por sua vez,
surgiu um novo problema: a equipe de desenvolvimento de software percebeu que
alguns comandos de busca desse aplicativo (ações solicitadas pelo usuário para sua
execução) direcionam a busca do usuário para o Banco de Dados A, enquanto outros
comandos direcionam a busca do usuário para o Banco de Dados B e, ainda, há
comandos que realizam essa busca em ambos os Bancos de Dados (A e B).
Considere que há 20 comandos que direcionam a busca do usuário para o Banco de
Dados A, que no total há 60 comandos distintos, e que 12 comandos direcionam a busca
para os Bancos de Dados A e B. Você saberia informar quantos desses 60 comandos
realizam a busca no Banco de Dados B?
Você deverá apresentar a representação e resolução desse problema à equipe de
desenvolvimento de software para que ela decida sobre a viabilidade de unificação
desses Bancos de Dados.Perceba que, apesar de parecer ser um problema de simples
solução, é necessário tomar cuidado para não contabilizar comandos em duplicidade. E
agora, como resolver essa situação?
Nesta aula, você aprenderá a encontrar a união, a interaula e a diferença entre conjuntos
e a utilizar essas relações na resolução de situações-problema como essa.
Bons estudos!
51
Conjuntos são coleções não ordenadas de objetos que podem ser, de alguma forma,
relacionados (FERREIRA, 2001). Estudaremos, portanto, que relações são essas,
direcionando nosso olhar especialmente para as operações de união (∪) , intersecção (∩)
e diferença (−) entre conjuntos.
Um novo conjunto de alunos pode ser definido como consistindo em todos os alunos
que sejam estudantes do curso de Análise e Desenvolvimento de Sistemas ou
Matemática (ou ambos). Esse conjunto é chamado de união de A e B. Segundo Gersting
(1995), a operação de união de A e B pode ser denotada como A∪B= {x | x ∈ A ou
x ∈ B}. Nesse exemplo, a união A∪B compreende todos os alunos que cursam Análise
e Desenvolvimento de Sistemas (A) ou Matemática (B) ou ambos os cursos.
Outro conjunto pode ser definido como sendo composto por todos os alunos do curso de
Análise e Desenvolvimento de Sistemas e do curso de Matemática, ou seja, alunos que
cursam simultaneamente ambos os cursos. Esse novo conjunto (que pode ser vazio) é
chamado de intersecção de A e B. Segundo Gersting (1995), a operação de intersecção
de A e B pode ser denotada como A∩B= {x|x∈A e x∈B}. Nesse exemplo, a união A∩B
compreende todos os alunos que cursam simultaneamente Análise e Desenvolvimento
de Sistemas (A) e Matemática (B).
Exemplificando
A ∪ B ={10,11,12,13,14,15,16,17,18,19} .
A ∩ B ={13,14,15} .
Os diagramas de Venn podem ser utilizados para ilustrar as operações binárias de união
e intersecção de conjuntos. Na Figura abaixo visualizamos a imagem mental dessas
operações:
A ∪(B∪C) = { x| x ∈A ou x ∈ B ou x∈C }
Logo: A∪(B∪C)=(A∪B)∪C .
______
Reflita
Utilizando as definições das operações união (∪) e intersecção (∩) de conjuntos, como
você demonstraria a propriedade distributiva da união em relação à intersecção?
______
Além das operações união (∪) e intersecção (∩), outra operação que costuma aparecer
com frequência ao estudarmos álgebra de conjuntos é a operação diferença de
conjuntos. Sejam A e B dois conjuntos, de acordo com Scheinerman (2015), a diferença
A - B é o conjunto de todos os elementos de A que não estão em B, ou seja: A− B = {x|
x ∈ A e x∉B} . Considere, por exemplo, os conjuntos A ={1,2,3, 4, 5} e B ={4,5,6,7} .
Para determinarmos a diferença A - B temos de verificar quais elementos pertencem ao
conjunto A, mas não pertencem ao conjunto B, ou seja, A − B = {1,2,3} .
Analogamente, podemos definir o conjunto B - A , que consiste em todos os elementos
pertencentes a B, mas que não pertencem ao conjunto A, ou seja, B − A = {6,7} .
______
Assimile
Considere, por exemplo, que em uma pesquisa com profissionais do setor de Tecnologia
da Informação de uma grande empresa responsável pela elaboração e manutenção de
páginas (homepages) na Internet foi perguntado qual era o navegador de Internet
utilizado durante o trabalho. Essa pesquisa apresentou os seguintes resultados: 280
profissionais alegaram utilizar o navegador A, 300 disseram utilizar o navegador B e
120 profissionais afirmaram utilizar ambos os navegadores. Sabendo que todos os
funcionários do setor de Tecnologia da Informação dessa empresa responderam a essa
pesquisa, como você determinaria o número desses profissionais?
_____
Dica
Problema dos navegadores de internet (parte 1). Fonte: elaborada pelo autor.
Problema dos navegadores de internet (parte 2). Fonte: elaborada pelo autor.
É importante destacar que, ao se utilizar diagramas de Venn para resolver esse tipo de
problema, os números registrados no diagrama corresponderão ao número de elementos
(cardinalidade) de cada conjunto.
______
Há situações em que a intersecção entre os conjuntos é vazia. Nesse caso, dizemos que
os conjuntos são disjuntos. Sejam A ={1, 2, 3} e B ={7,8,9} .
Há uma relação íntima entre as operações união (∪) e intersecção (∩) da álgebra de
conjuntos e os conectivos lógicos largamente utilizados em diversas linguagens de
programação OU (or) e E (and), respectivamente. Os conectivos lógicos OU e E são
simbolizados por V e Λ.
I. x ∈(A∪B)⇔(x ∈ A)∨(x ∈ B) .
Vamos retomá-la?
60 = 20 + |B| −12
|B| = 52
O diagrama permite ainda aferir que 8 comandos efetuam a busca APENAS no Banco
de Dados A enquanto que 40 comandos efetuam a busca APENAS no Banco de Dados
B. É devido ao poder de síntese que a utilização de diagramas é recomendada ao se
trabalhar com problemas envolvendo conjuntos.
59
Situação-problema
Olá, estudante, nesta aula estudaremos mais algumas operações e relações entre
conjuntos, dentre as quais citamos o complemento de um conjunto, a diferença
simétrica e o produto cartesiano.
Imagine, por exemplo, que em vez de determinar o conjunto de usuários que avaliou
positivamente um determinado aplicativo, você esteja interessado no conjunto de
usuários que não forneceu uma avaliação positiva. Ou então que você precise
determinar todas as maneiras pelas quais um elemento de um conjunto possa se
relacionar com um elemento de outro conjunto. Essas duas situações servem para
ilustrar os conceitos de complemento de conjunto e produto cartesiano que serão
estudados nesta aula.
representar tais relações de uma forma inteligível, que se faça compreender por outras
pessoas de sua equipe de trabalho, é um exercício importante, pois muitas vezes não
conseguimos expressar nossas ideias no papel.
______
Exemplificando
______
Segundo Ferreto (2019), há dois fatos que merecem atenção no estudo do complemento
de um conjunto. O primeiro fato ao qual devemos ficar atentos é que para que um
conjunto complementar a outro exista, há uma condição que deve ser respeitada: para
que haja o cálculo do conjunto complementar de B em relação a A, B deve ser
61
Esses dois conjuntos são conjuntos disjuntos, pois a intersecção entre eles é um
conjunto vazio. Como B não é subconjunto de A, então não é possível determinar o
complemento de B em relação a A. De modo análogo, também concluímos que não é
possível determinar o complemento de A em relação a B.
Outro fato que também merece atenção diz respeito à maneira como o conjunto
complementar é representado simbolicamente. É importante notar que CAB ≠ CBA .
Para determinarmos CAB fazemos A-B , enquanto que para determinarmos CBA
fazemos B - A (lembrando que nem sempre é possível determinar o complemento de
um determinado conjunto).
______
Reflita
Em uma atividade sobre Álgebra dos Conjuntos foram apresentados dois conjuntos
definidos como M={10, 20, 30, 40, 50, 60, 70, 80} e N ={30, 50, 70}. Em seguida, foi
solicitada a determinação dos complementos CMN e CNM .
Desse modo, quando não tivermos dúvida em relação ao conjunto universo U com o
qual estamos trabalhando, representaremos o complementar de A em relação a U
simplesmente utilizando a notação AC. Por exemplo, considere U
={12,13,14,15,16,17,18} e A {12,13,14,15}. Neste caso, podemos representar o
complementar de A em relação a U simplesmente como AC ={16,17,18} .
Cabe, nesse momento, chamar a atenção para outro tipo de diferença de conjuntos,
denominado diferença simétrica. Segundo Scheinerman (2015), diferença simétrica de
A e B é o conjunto de todos os elementos que pertencem a A, mas não pertencem a B,
ou que pertencem a B, mas não pertencem a A. Essa diferença simétrica pode ser
representada como A∆B = (A − B) ∪ (B − A). Seja A ={1,2,3, 4,5, 6, 7}e B={5,6,7,8,9}
. A diferença simétrica A∆B ficaria definida como:
______
Assimile
Tem-se que
Logo,
Essa propriedade pode ser mais bem visualizada por meio do Diagrama de Venn
apresentado na Figura a seguir:
Um conjunto, por si só, não é objeto de muito interesse até que se faça algo com seus
elementos (GERSTING, 1995). Podemos, por exemplo, realizar diversas operações
aritméticas sobre os elementos de um determinado conjunto numérico. Tomemos, a
título de ilustração, a operação aritmética subtração no conjunto dos números inteiros ℤ.
______
Assimile
Agora que já aprendemos o que é uma operação binária entre conjuntos, voltemos à
definição de produto de cartesiano. Sejam os conjuntos A e B. O produto cartesiano de
A e B, denotado por A x B , é o conjunto de todos os pares ordenados (listas de dois
elementos) formados, tomando-se um elemento de A juntamente com um elemento de B
de todas as maneiras possíveis.
______
Exemplificando
A×B ={(4,6),(4,7),(4,8),(5,6),(5,7),(5,8),(6,6),(6,7),(6,8)}
Note que A×B ≠ B×A . Isso acontece porque a operação produto cartesiano não é uma
operação comutativa.
65
Cabe aqui fazer uma observação em relação à cardinalidade do conjunto obtido através
da operação produto cartesiano. No exemplo apresentado temos que |A| = 3 , |B| = 3 e
conjunto obtido pela operação produto cartesiano AxB tem cardinalidade igual a 9, ou
seja, A×B = 9. Como o produto cartesiano é obtido tomando-se um elemento de A
juntamente com um elemento de B de todas as maneiras possíveis, podemos aferir que,
sendo A e B conjuntos finitos, |A×B| = |A| × |B|.
Os Diagramas de Venn podem ser adaptados para representar o produto cartesiano entre
dois conjuntos. Considere, por exemplo, os conjuntos A ={2, 3} e B ={4,5} . O produto
cartesiano AxB pode ser representado pelos diagramas da figura abaixo:
Temos, portanto, o produto cartesiano A×B ={(2, 4),(2,5),(3, 4),(3, 5)} como o conjunto
formado por todos os pares possíveis formados com os elementos de A e de B.
Já vimos, na aula 2 desta Unidade, que os Diagramas de Venn também podem ser
usados para resolver problemas sobre cardinalidade de conjuntos, isto é, problemas que
envolvem a contagem do número de elementos de conjuntos finitos. Mas, segundo
Novaes (2014), o Diagrama de Venn não é apenas um esquema para ajudar o raciocínio.
O Diagrama de Venn foi concebido como uma representação diagramática capaz de
atender a todas as possíveis relações lógicas entre as classes em estudo, sendo úteis,
inclusive, para demonstrar relações arbitrárias entre conjuntos.
Vamos aqui utilizar um Diagrama de Venn para demonstrar uma relação arbitrária entre
dois conjuntos A e B (Figura a seguir). No caso de dois conjuntos A e B, os
compartimentos do diagrama representam as partes disjuntas do universo: utilizaremos
uma numeração binária, composta apenas pelos algarismos 0 e 1, em que o primeiro
algarismo é 0 ou 1, conforme um objeto desse compartimento pertença ou não ao
conjunto A, enquanto o segundo algarismo é 0 ou 1, conforme um objeto desse
compartimento pertença ou não ao conjunto B.
66
Representação diagramática de uma relação arbitrária entre dois conjuntos. Fonte: adaptada de
Novaes (2014).
Tabela-verdade de uma relação arbitrária entre dois conjuntos. Fonte: elaborada pelo autor.
Nesta aula, pudemos aprender um pouco mais sobre as operações entre conjuntos e suas
aplicações. Além de nos debruçarmos sobre as operações de complementar de um
conjunto, diferença simétrica e produto cartesiano, também pudemos aplicar a utilização
de Diagramas de Venn, tanto na representação de tais operações, quanto na
representação de relações arbitrárias entre conjuntos. Compreender a natureza dessas
operações é componente importante no desenvolvimento do raciocínio computacional.
67
Vimos que o Diagrama de Venn, além ser um esquema para ajudar o raciocínio,
também consiste em uma representação diagramática capaz de atender a todas as
possíveis relações lógicas entre as classes em estudo, sendo úteis, inclusive, para
demonstrar relações arbitrárias entre conjuntos (NOVAES, 2014).
Portanto, vamos utilizar um Diagrama de Venn para demonstrar uma relação arbitrária
entre três conjuntos A, B e C. Utilizaremos uma numeração binária, composta apenas
pelos algarismos 0 e 1, em que o primeiro algarismo é 0 ou 1, conforme um objeto desse
compartimento pertença ou não ao conjunto A, o segundo algarismo é 0 ou 1, conforme
um objeto desse compartimento pertença ou não ao conjunto B e o terceiro algarismo é
0 ou 1, conforme um objeto desse compartimento pertença ou não ao conjunto C
(Figura abaixo).
Representação diagramática de uma relação arbitrária entre três conjuntos. Fonte: elaborada
pelo autor.
110 = A ∩ B ∩CC
68
101= A ∩ BC ∩C
001= AC ∩ B ∩C
111= A ∩ B ∩C
Tabela-verdade de uma relação arbitrária entre dois conjuntos. Fonte: elaborada pelo autor.
Aula 4 - Na Prática
Introdução da aula
Nesta aula, você poderá praticar os conhecimentos adquiridos nesta unidade, por meio
de exercícios comentados.
Exercício 1
a) {2, 4,6} .
b) {1, 4,9} .
c) {(1,1),(2,2),(3,3)} .
d) {(1,2),(1,3),(2,1),(2,3),(3,1),(3,2)} .
d) {(1,1),(1,2),(1,3),(2,1),(2,2),(2,3),(3,1),(3,2),(3,3)} .
70
Exercício 2
a) 300.
b) 510.
c) 610.
d) 670.
e) 970.
Exercício 3
a) 18.
b) 35.
c) 43.
d) 46.
e) 53.
71
Exercício 4
Exercício 5
a) V – V – V.
b) V – V – F.
c) V – F – V.
d) F – V – V.
e) V – F – F.
73
Objetivos
• Objetivo 1
• Objetivo 2
• Objetivo 3
• Objetivo 4
Conteúdo
• UNIDADE 1
• UNIDADE 2
Álgebra de conjuntos
o Aula 1: Teoria dos conjuntos
Vale 2.5 pontos
o Aula 2: Álgebra de conjuntos
Vale 2.5 pontos
o Aula 3: Aplicações de teoria dos conjuntos
Vale 2.5 pontos
o Aula 4: Na Prática
Vale 2.5 pontos
• UNIDADE 3
Fundamentos da Lógica
o Aula 1: Introdução à lógica proposicional
Vale 2.5 pontos
o Aula 2: Conectivos e classificação textual
Vale 2.5 pontos
o Aula 3: Métodos dedutivos e inferência lógica
Vale 2.5 pontos
o Aula 4: Na Prática
Vale 2.5 pontos
• UNIDADE 4
Tabela Verdade
o Aula 1: Construção da Tabela Verdade
Vale 2.5 pontos
75
Vamos lá!
76
Introdução da Unidade
Olá, estudante!
Boas-vindas a mais uma unidade do seu livro de lógica computacional. Nesta unidade
daremos um passo importante para a compreensão da lógica no mundo computacional,
principalmente no que se refere à lógica usada na construção de algoritmos. Esse
conhecimento será construído através do estudo e entendimento da lógica proposicional
e seus conectivos, que permitem criar regras e valorar seus resultados como verdadeiro
ou falso.
Logo nos primeiros anos de vida, aprendemos a falar, mesmo que criando pequenas
frases, que muitas vezes somente os pais entendem. Com o desenvolvimento da
linguagem, nossa comunicação vai ficando mais fluida e complexa, pois vamos
aprendendo “regras” que permitem fazer essa construção. Essas regras vão além do
vocabulário e sintaxe de uma língua como, por exemplo, a língua portuguesa, pois elas
envolvem a construção do raciocínio lógico. Utilizando esse raciocínio tomamos
decisões ao longo de nossa vida e, quanto mais tivermos ciência dessas regras lógicas,
melhor serão nossas análises e, consequentemente, nossas decisões.
Para concluir com êxito essa fase do processo seletivo e garantir sua vaga na empresa,
você aprenderá na primeira aula da unidade sobre a lógica proposicional e os conectores
de conjunção, disjunção e negação. Na segunda aula iremos explorar novas proposições
compostas aprendendo outros conectores. Na terceira aula, veremos como as regras
lógicas nos permitem criar novas conclusões por meio de métodos dedutivos e
inferenciais.
Bons estudos!
77
Situação-problema
Olá, estudante, iniciamos agora nossa introdução à lógica proposicional. Esse
conhecimento o capacitará a construir condições lógicas embasadas em regras e a
valorar o resultado dessa condição. Sem dúvida, esse conhecimento é imprescindível na
construção de algoritmos computacionais.
Usando as letras que representam os lados das figuras geométricas na Figura acima, sua
missão é construir proposições, simples e compostas, que representem as regras
necessárias para a construção das três figuras. Nessa mesma folha, além das figuras
também vieram algumas dicas sobre a construção dos elementos geométricos
apresentados:
• Para que um triângulo possa ser construído é necessário que a soma de dois lados seja
sempre maior que o outro lado.
• Um quadrado é composto por quatro lados com medidas iguais e quatro ângulos de
noventa graus.
• Um retângulo é composto por quatro lados com medidas paralelas iguais e quatro
ângulos de noventa graus.
78
Agora é com você! Como você poderá usar as dicas e transformá-las em proposições
simples e/ou compostas? Quantas proposições serão necessárias para cada figura
geométrica? Quais operadores lógicos você terá que usar para construir as regras?
Nesta aula, você aprenderá conceitos importantes que vão auxiliar na solução deste
problema.
Isso mesmo, aquela Lógica Formal desenvolvida por Aristóteles entre 300 e 400 anos
antes de Cristo (MACHADO; CUNHA, 2008). Para relembrarmos rapidamente,
Aristóteles desenvolveu um método no qual ele separa a forma (podemos entender
como regras) do conteúdo nas argumentações. Ou seja, no método Formal, “não são
considerados os conteúdos das sentenças componentes de um argumento, mas apenas a
forma de articulá-las ou o modo como umas são deduzidas das outras”. (MACHADO;
CUNHA, 2008, p. 15).
Em nosso cotidiano, usamos a linguagem natural para nos expressar por meio de frases,
que em alguns casos podem ser argumentativas sendo assim compostas por premissas e
conclusões. Vejamos um exemplo extraído de Machado e Cunha (2008, p. 16). Observe
o argumento de uma professora sobre o desempenho de um certo aluno: “É lógico que
Pedro será aprovado nos exames, pois ele é inteligente e estuda muito e todos os alunos
inteligentes e estudiosos são aprovados”. Esse argumento foi construído embasado por
premissas (razões) e que levam a uma única conclusão, conforme ilustra o quadro a
seguir.
Veja no quadro acima que separamos a frase em premissas e conclusão. Nesse caso, três
premissas permitiram chegar a uma conclusão coerente. Extrair essa conclusão do
argumento só foi possível devido às regras da lógica proposicional, que por meio de
premissas e conectores extraem-se resultados lógicos. Fazer essa separação (premissa /
conclusão) é muito importante, pois nem toda frase é um argumento. Além disso,
imagina que queiramos criar um algoritmo para classificar se um aluno foi aprovado ou
reprovado, essas premissas precisam ser programadas em forma de regras, as quais
aprenderemos em breve.
Para ser um argumento é preciso existir uma conclusão, logo, nem toda frase é um
argumento. Por exemplo, a frase: “Segure firme!”, não possui premissas e conclusões,
pois trata-se de uma sentença imperativa (ordem) ou então a frase: “Você pode abrir a
porta?” também não é um argumento, pois estamos diante de uma sentença
interrogativa. As sentenças exclamativas, como por exemplo, “Que lindo!”, “Parabéns!”
também não são consideradas argumentos. No estudo da lógica, além de distinguir se
uma frase é ou não um argumento, também é importante distinguirmos se uma sentença
pode ou não ser classificada como verdadeira ou falsa (não ambas ao mesmo tempo).
1. Verdadeira.
2. Falso.
3. Falso.
4. Verdadeira.
Mas a quinta frase não pode ser valorada em V ou F, pois a resposta é um certo horário.
5. ?
Essa distinção entre os tipos de sentenças é crucial para o estudo da lógica, pois uma
frase que pode ser classificada como verdadeira ou falsa (não ambas ao mesmo tempo) é
chamada proposição (MACHADO; CUNHA, 2008; SOUZA, 2016; GERSTING,
2017).
Assimile
Proposição é uma sentença declarativa que pode ser classificada como verdadeira ou
falsa, jamais ambas ao mesmo tempo. Ou seja, não pode haver dúvida quanto à
classificação da sentença. Também podemos dizer que trata-se de uma classificação
binária, pois só existem dois resultados possíveis: V ou F, ou ainda 1 ou 0.
80
Nem sempre classificar se uma sentença é ou não uma proposição é uma tarefa trivial.
Para que seja uma proposição, a sentença declarativa não pode deixar dúvidas quanto ao
resultado. Por exemplo, a sentença “Está chovendo agora” não pode ser classificada
como V ou F, pois deixa dúvida (por exemplo, pode estar chovendo em um ponto da
cidade e em outro não). Para que essa frase se torne uma proposição ela precisa de um
contexto, por exemplo, “Está chovendo agora na minha rua”, ou seja, o locutor da frase
especificou o local, então agora é possível valorar se o que ele disse é verdadeiro ou
falso.
______
Reflita
______
Sabendo que uma proposição é uma sentença declarativa que pode ser classificada como
V ou F, podemos encontrá-la nas mais diversas formas. Observe o Quadro a seguir.
Nele temos diagramas de Euler representando conjuntos e sentenças que podem ser
classificadas como V ou F, baseado no diagrama, portanto, são proposições.
Segundo Bispo e Castanheira (2011, p. 4), toda proposição deve seguir três princípios
básicos:
81
Exemplificando
B: verdadeira
Antes de avançarmos com a valoração das proposições compostas, vejamos mais dois
exemplos, extraídos de Bispo e Castanheira (2011, p. 4).
Exemplo a:
Podemos reescrever a frase, utilizando uma notação simbólica, então o resultado será: P
e S.
Exemplo b:
Considere a frase: “Se eu prestar atenção na aula, então tirarei boa nota na prova”.
Veja que ao extrair as proposições simples, podemos fazer adequações nos verbos, o
mesmo acontece quando usamos proposições simples para fazer as compostas.
Reescrevendo a frase utilizando a notação simbólica teremos: Se A então R. Nesse
caso, temos duas palavras fazendo a ligação entre as proposições: Se... então.
Essas “palavras” usadas para unir as proposições simples são os conectivos (ou
conectores) lógicos e influenciam a valoração de uma proposição composta. Os
conectivos disponíveis para fazer a conexão são: (i) e, (ii) ou, (iii) não, (iv) se... então,
(v) se, e somente se. (BISPO; CASTANHEIRA, 2011).
Vamos começar estudando o conectivo lógico “e”, que também pode ser visto na
literatura escrito em inglês AND ou ainda por meio do seu símbolo ⋀ . Essa operação
lógica é chamada conjunção e sua valoração será verdadeira somente quando ambas as
proposições simples forem verdadeiras. Resumindo, se A e B forem proposições
simples verdadeiras, a proposição composta A ⋀ B (lê-se “A e B”) será verdadeira. Para
compreendermos melhor, considere as proposições a seguir: A: Quatro é um número
par.
B: verdadeira.
C: falsa.
P: A ⋀B
R: A ⋀C
83
Além da palavra “e” outras podem ser usadas para representar a conjunção entre duas
proposições: mas, todavia, contudo, no entanto, visto que, enquanto, além disso,
embora. (BISPO; CASTANHEIRA, 2011).
O operador lógico de disjunção usado na forma inclusiva terá sua valoração falsa
somente quando ambas as proposições simples forem falsas. Resumindo, se A e B
forem proposições simples falsas, a proposição composta A ⋁ B (lê-se “A ou B”) será
falsa, nos demais casos a valoração é verdadeira. Para compreendermos melhor,
considere as proposições a seguir:
A: Quatro é um número par. B: Três é um número ímpar. C: Cinco é maior que dez.
B: verdadeira.
C: falsa.
D: falsa.
84
P: A ⋁ B
R: A ⋁C
S: C ⋁ D
Ou ainda como:
Ou ainda
A negação pode ser aplicada ao resultado de uma outra operação, como por exemplo, ∼
(A ∧ B) . Nesse caso o resultado da conjunção será invertido. No universo dos
algoritmos computacionais, esses três conectores são amplamente utilizados para
construir estruturas de decisões. Por exemplo, imagine que você esteja trabalhando em
um sistema web para uma universidade. Em uma das páginas do sistema, deverá ser
implementada a opção para o usuário escolher o curso, o semestre e a idade dos alunos.
Agora, suponhamos que o usuário do sistema queira listar alunos que não são dos
cursos de engenharia, alunos que estão no segundo semestre, alunos que possuem idade
superior a 30 anos. Como essa regra (proposição) deve ser construída? Qual
combinação de conectores deve ser usada para produzir o resultado desejado?
Considerando as proposições dadas, a lógica a ser criada deve ser: ∼ A ∧ B ∧C .
Como você pode notar, sem a Lógica Formal, jamais seríamos capazes de construir
nossos algoritmos computacionais. Portanto, continue estudando esse importante tema!
Chegou a hora de pensarmos como resolver seu desafio de lógica para a vaga de
desenvolvedor trainee de uma grande empresa de tecnologia. Você recebeu uma folha
contendo três figuras geométricas e algumas dicas, se lembra? As figuras geométricas
estão representadas na figura a seguir.
1. Para que um triângulo possa ser construído é necessário que a soma de dois
lados seja sempre maior que o outro lado.
2. Um quadrado é composto por quatro lados com medidas iguais e quatro ângulos
de noventa graus.
3. Um retângulo é composto por quatro lados com medidas paralelas iguais e
quatro ângulos de noventa graus.
86
Com essas informações você deve construir proposições simples e compostas que
representem as regras necessárias para a construção das três figuras. Pois bem, o
primeiro passo é construir as proposições simples. Vamos começar pelo triângulo.
A: A soma das medidas do lado a com o lado b do triângulo abc é maior que a medida
do lado c.
B: A soma das medidas do lado b com o lado c do triângulo abc é maior que a medida
do lado a.
C: A soma das medidas do lado a com o lado c do triângulo abc é maior que a medida
do lado b.
Agora que temos as proposições simples, vamos usar a dica 1 para construir uma
expressão lógica que traduza essa regra. Como as três proposições precisam ser
verdadeiras para que seja possível construir um triângulo, teremos como resultado a
expressão: A ∧ B ∧ C . Ou seja, foi necessário usar a conjunção para construir a
proposição composta que representa a regra.
Agora vamos construir as proposições simples para criar a regra para a construção do
quadrado.
Com a criação das proposições simples, agora podemos criar a proposição composta
que representa a regra: P ∧Q ∧ S∧∼T. Veja, que na maneira como construímos a
proposição simples T, foi necessário usar a negação para construir a regra correta. É
importante você ficar atento ao aspecto sintático da expressão.
Agora basta usar o(s) conector(es) corretos para criar a proposição composta que
representa a regra:
X ⋀ Z ⋀W .
Introdução da aula
Nesta aula, você aprenderá novos conectivos lógicos, o que lhe possibilitará valorar
proposições compostas mais complexas, desenvolvendo suas habilidades de aplicar a
lógica proposicional com suas regras e formas.
Situação-problema
Olá, estudante! Iniciamos agora mais uma aula do nosso estudo de introdução à lógica
proposicional.
Você já deve ter ouvido e falado muito frases do tipo “Se chover, eu não vou sair de
casa”, ou então “Se eu ganhar na loteria, não vou mais trabalhar!”. Esse tipo de frase
possui uma estrutura lógica embasada em uma condição: se algo acontecer, então outro
evento também irá acontecer. Nesta aula, vamos entender esse tipo de estrutura lógica,
bem como outros importantes conceitos.
Dando sequência ao seu teste de lógica para uma vaga de desenvolvedor trainee em uma
grande empresa de tecnologia, chegou a hora de vencer mais um desafio, no qual você
deverá criar estruturas condicionais usando os operadores lógicos para resolver um
problema com fórmulas. Foram-lhe passadas duas fórmulas:
Para a segunda fórmula, você deverá utilizar as regras do cálculo proposicional e fazer a
demonstração, passo a passo, da veracidade da lei anunciada por Augusto De Morgan.
Com base no seu conhecimento, quantas proposições simples devem ser usadas para
traduzir as regras apresentadas para a fórmula da equação do segundo grau e de
Bhaskara? Quais conectores devem ser utilizados para escrever a fórmula de maneira
correta? Qual mecanismo pode ser usado para fazer a demonstração da lei de De
Morgan? Existe alguma sequência específica para a resolução? Como a fórmula deverá
ser valorada?
Para vencer esse desafio proposto, você aprenderá novos conectivos lógicos, bem como
construir e valorar fórmulas do cálculo proposicional. Leia com atenção o conteúdo da
aula. Bons estudos!
A: João é estudante.
B: João é trabalhador.
C: João é Paulista.
D: João é Carioca.
89
Observe:
A proposição R representa uma disjunção inclusiva, pois João pode ser estudante e
também trabalhador. Já a proposição S é uma disjunção exclusiva, pois João não pode
ser Paulista e Carioca, ele só pode ser um dos dois.
Na valoração de uma disjunção exclusiva, o resultado será verdadeiro se, e somente se,
apenas umas das proposições simples forem verdadeiras.
______
Exemplificando
______
90
Vejamos um exemplo:
C: A → B .
A proposição C deve ser traduzida como “Se o interruptor da sala for desligado, então a
luz se apagará”.
Reflita
A expressão “Se... então” é a mais comum de se utilizar para o condicional, até mesmo
porque na construção de algoritmos usamos exatamente essas palavras. Mas a
implicação lógica pode ser escrita de outras formas, conforme ilustra o Quadro a seguir,
que nos apresenta 8 formas diferentes de “traduzir” essa expressão lógica.
S: A ↔ B .
A proposição S, deve ser traduzida como “Lucas receberá o dinheiro se, e somente se,
completar o trabalho”.
Nessa expressão temos a conjunção entre o resultado de duas condicionais que alteram
seus antecedentes e consequentes. Para ficar mais claro, usando as proposições P, Q
criadas anteriormente, dizer que “Lucas receberá o dinheiro se, e somente se, completar
o trabalho” é o mesmo que dizer “Se Lucas receber o dinheiro então completará o
trabalho e se Lucas completar o trabalho então receberá o dinheiro”. Como
podemos observar, o bicondicional resume a sentença, facilitando até mesmo a
compreensão.
92
Ou seja, V ↔V = V e F ↔ F =V .
Assim como fez Aristóteles, a partir de agora, vamos focar na forma e nos valores
lógicos que as expressões podem assumir. Já sabemos que é possível criar proposições
compostas, fazendo conexões entre proposições simples. Na verdade, podemos encadear
proposições, conectivos e parênteses (ou colchetes) e formar novas expressões lógicas,
às quais chamamos fórmula. Por exemplo, como a que vimos no conectivo
bicondicional (A → B)∧(B → A).
O operador de negação é como o sinal negativo na matemática e, por isso, ele pode
aparecer perto de outro conector. Uma fórmula que segue as regras de sintaxe é
chamada de fórmula bem-formulada ou ainda, em inglês, well-formed formula - wff
(BISPO; CASTANHEIRA, 2011; GERSTING, 2017). Observe o Quadro a seguir. Nele
temos três exemplos de fórmulas matemáticas, três de fórmulas válidas (fbf) e três de
fórmulas inválidas.
Agora que sabemos a ordem de precedência dos conectivos lógicos, podemos interpretar
a fbf da linha 2 no Quadro visto acima.
Esse entendimento é muito importante, então vamos valorar a fbf da linha 3, dadas as
seguintes entradas para as proposições A, B, C.
A é verdadeira.
B é falsa.
C é falsa.
1. ←F que resulta em V.
2. F ⋀V que resulta em F. que resulta em F.
3. V → F que resulta em F. que resulta em F.
Ao observar o resultado das etapas na Figura a seguir, fica claro que o resultado de uma
etapa é usado em outra etapa, pois a fórmula precisa ser resolvida em partes seguindo a
ordem de precedência.
94
Como você pode notar a valoração de uma fbf deve ser feita em etapas, seguindo a
ordem de precedência, assim como acontece em uma fórmula matemática.
Equivalência lógica
______
Assimile
Quando duas fórmulas apresentam o mesmo resultado lógico para as todas as possíveis
combinações de entradas, então diz-se que elas são equivalentes. O símbolo usado para
representar a equivalência lógica é o ⇔.
1. ¬(A ∨ B) ⇔ ¬A ∧¬B .
2. ¬(A ∧ B) ⇔ ¬A ∨¬B .
Para ser uma equivalência, o resultado precisa ser igual para todas as combinações
possíveis de entrada. Então temos as seguintes combinações possíveis para as
proposições A, B:
(1) A = V e B = V;
Vamos testar essas quatro combinações de entrada, primeiro para a fórmula ¬(A ∨ B) .
A figura a seguir ilustra cada passo para a valoração da fórmula, para cada combinação
possível de entrada. Como resultado lógico temos que para as entradas (1), (2), e (3) o
resultado é F, já para a entrada (4) o resultado é V.
Como podemos ver, os resultados lógicos das fórmulas ¬(A ∨ B) e ¬A ∧¬B , para todas
as combinações possíveis de entradas, são os mesmos, portanto demonstramos que essas
fórmulas são equivalentes.
Com essa demonstração, finalizamos nossa aula. Agora que já conhecemos todos os
conectivos lógicos e como criar fórmulas válidas (fbf) para fazer a valoração de uma
fbf, devemos seguir a ordem de precedência e ir resolvendo parte a parte da fórmula.
Olá, estudante, chegou o momento de vencer mais uma etapa do teste para o cargo de
trainee em uma grande empresa de tecnologia. Você foi desafiado a construir
implicações lógicas que traduzam regras referentes à equação do segundo grau e à
fórmula de Bhaskara, e também a fazer a demonstração de uma das leis de De Morgan.
Vamos relembrar as regras que devem ser traduzidas para forma simbólica:
Como primeiro passo você deve escrever as proposições simples, as quais nos
possibilitarão construir as implicações lógicas para a equação do segundo grau e a
fórmula de Bhaskara.
Veja que na regra 5 temos uma condição que envolve a conjunção entre duas
proposições. Para construir, basta ficar atento aos conectivos que estão sendo usados na
frase e na forma como se anunciou as proposições simples.
Primeiro vamos estabelecer a sequência de combinações de entrada que vamos usar: (1)
A = V e B = V; (2) A = V e B = F; (3) A = F e B = V; (4) A = F e B = F;
Agora é necessário submeter essa sequência a cada uma das fórmulas. A Figura a seguir
apresenta os resultados para a fórmula ¬(A ∧ B) . Como resultado lógico temos para a
entrada (1) o resultado é F, já para as entradas (2), (3) e (4) o resultado é V.
A figura abaixo apresenta os resultados para a fórmula ¬A ∨¬B . Como resultado lógico
temos para a entrada (1) o resultado é F, já para as entradas (2), (3), e (4) o resultado é
V.
98
Como podemos ver, os resultados lógicos das fórmulas ¬(A ∧ B) e ¬A ∨¬B , para todas
as combinações possíveis de entradas, são os mesmos, portanto, demonstramos que
essas fórmulas são equivalentes.
Nesta aula, você verá as regras para avaliar um argumento e verificar se ele é válido ou
não.
Situação-problema
Seu desafio é traduzir para forma simbólica os dois argumentos e provar a veracidade,
usando as regras de dedução da Lógica Formal. Cada passo na sequência de
demonstração deve ser comentado, para que os avaliadores tenham certeza que você
conhece o processo. Quantos passos serão necessários para demonstrar cada argumento?
Será possível fazer uma demonstração usando somente regras de inferência? Sabendo
que é mais impor- tante conhecer o processo do que decorar regras, os avaliadores
permitiram que você usasse a Internet para consultar as regras de equivalência e
inferência lógica. Para vencer esse desafio, você aprenderá como estruturar a sequência
de demonstração, desenvolvendo, assim, o raciocínio e dando um passo a mais na
direção de se tornar um grande desenvolvedor.
Vamos em frente!
100
Quando uma fórmula apresenta um conjunto de proposições, das quais uma delas é uma
conclusão, dizemos que tal fórmula é um argumento. “Um argumento é um conjunto de
proposições, ou de fórmulas, nas quais uma delas (conclusão) deriva, ou é
consequência, das outras (premissas)” (BISPO; CASTANHEIRA, 2011, p. 31). Um
argumento pode ser representado de forma simbólica por:
onde P1 , P2 , P3 ,..., Pn , são as hipóteses. Essas hipóteses podem ser tanto proposições
simples, como uma fbf. A letra representa C a conclusão do argumento, a qual também
pode ser tanto uma proposição simples como uma fbf (BISPO; CASTANHEIRA, 2011;
GERSTING, 2017).
Assimile
______
Exemplificando
Nosso conhecimento nos permite valorar as três proposições, logo, A, B, C são todas
verdadeiras. Embora, tanto as hipóteses, quanto a conclusão sejam proposições
verdadeiras, o argumento é inválido, pois a conclusão nada tem a ver com as hipóteses.
Esse exemplo deixa claro que, basear-se apenas no conteúdo de um argumento não é
suficiente para dizer se ele é válido ou não.
______
Segundo a Lógica Formal, devemos nos basear apenas nas regras para validar um
argumento e não no conteúdo. O exemplo mencionado anteriormente deixa claro o
motivo dessa restrição. Mas, afinal, quais são essas regras?
Reflita
______
Para saber se um argumento é válido ou não, precisamos saber se ele é uma tautologia.
Para fazer essa checagem, poderíamos testar todas as combinações de entrada possíveis
para o argumento. Porém, se tratando da Lógica Formal, podemos usar um sistema de
regras de dedução e, seguindo uma sequência de demonstração provar se o argumento é
válido ou não. “Uma sequência de demonstração é uma sequência de fbfs nas quais cada
fbf é uma hipótese ou o resultado de se aplicar uma das regras de dedução do sistema
formal a fbfs anteriores na sequência” (GERSTING, 2017 p. 25).
Para construir a sequência de demonstração, cada hipótese, que é uma proposição e que
pode ser uma fbf, deve ser disposta da seguinte forma:
possíveis de entradas geram o mesmo resultado de saída para ambas as fbfs, as regras de
equivalência serão usadas quando uma fbf (que pode ser uma hipótese ou resultado de
uma regra) pode ser substituída por outra fbf, mantendo o resultado lógico.
Por exemplo, se considerarmos a fbf que traduz uma das leis de De Morgan: ¬(A ∨ B)
⇔ ¬A ∧¬B, em uma situação adequada podemos substituir a fbf ¬(A ∨ B) por ¬A ∧¬B
, pois ambas são equivalentes. No quadro a seguir estão elencadas as regras de
equivalência que iremos utilizar. Existem outras além dessas.
O quadro acima nos traz seis conjuntos de regras de dedução, sua utilização será da
seguinte forma: Se tivermos uma expressão como da linha 1, P⋁Q , quando necessário,
podemos substituí-la por Q⋁ P, pois essas fbfs são equivalentes e trata-se da
propriedade da comutatividade. O contrário também é válido, quando aparecer Q ⋁ P ,
podemos substituir por P⋁Q . Esse processo de substituir uma fbf por outra, é o mesmo
para todas as demais regras apresentadas.
Além das regras de equivalência, o processo de dedução lógica também possui as regras
de inferência. Na inferência, dada uma determinada fbf, ela poderá ser substituída por
outra que atenda a regra de inferência. Veja que aqui não é necessário ser uma
tautologia (e realmente não será), mas é preciso seguir as regras da inferência.
A primeira regra de inferência que vamos estudar é chamada Modus Ponens (MP).
Essa regra envolve uma implicação e uma conjunção e possui a seguinte estrutura: (P →
Q)∧ P → Q . Vejamos um exemplo para ficar mais clara a regra.
104
Considerando o seguinte argumento: Se João receber seu salário, ele irá ao cinema,
vamos separar as proposições P, Q, portanto:
Aqui fica claro que quando se tem uma implicação e o antecedente é verdade, então a
conclusão é o consequente.
Outra importante regra de inferência é o Modus Tollens (MT). Essa regra, além de
envolver uma implicação e uma conjunção, também envolve a negação de uma das
proposições. Sua estrutura é dada pela fbf: (P → Q)∧¬Q → ¬P .
Q: A lâmpada apaga.
Aqui fica claro que quando se tem uma implicação e o consequente não é verdade, então
a conclusão é que o antecedente também não aconteceu.
Resumindo esses dois métodos, no Modus Ponens, usamos a implicação para provar
que a consequência é verdadeira ao demonstrar que a premissa é verdadeira. Já no
Modus Tollens, usamos a implicação para provar que a premissa é falsa ao demonstrar
que a consequência é falsa.
Outra importante regra é o Silogismo Hipotético (SH). Nessa regra, além de existirem
implicações e conjunções nas hipóteses, a conclusão também é uma implicação. Sua
estrutura é dada pela fbf:
(P → Q)∧(Q → R) → (P → R) .
Q: A primavera começa.
Assimile
Nas regras de equivalência, as colunas podem ser usadas nos dois sentidos. Já nas regras
de inferência, só existe um sentido: a fbf da coluna “De” pode ser substituída pela
coluna de “Podemos deduzir”, mas o contrário não é verdade. Em outras palavras, “Ao
contrário das regras de equivalência, as regras de inferência não funcionam em ambas as
direções” (GERSTING, 2017, p. 27).
Agora que já conhecemos as principais regras de dedução lógica, vamos utilizar esse
método para mostrar que o argumento (¬A∨B)∧(B→C)→(A → C) é válido. O primeiro
passo é identificar as hipóteses e a conclusão. A fórmula do argumento (P1 ∧ P2 ∧
P3∧...∧Pn→C) nos diz que as hipóteses são ligadas pela conjunção e a conclusão é
ligada pela última implicação lógica. Outro detalhe importante é que as hipóteses
podem ser fbf e não somente proposições simples.
Hipótese 1: (¬A ∨ B)
Hipótese 2: (B → C)
Conclusão: (A → C)
Veja que na conclusão temos uma implicação, isso já nos dá indícios de que
conseguiremos usar o silogismo hipotético. Vamos à sequência de demonstração.
107
1. ¬A ∨ B (hip).
2. B → C (hip).
3. A → B (1, cond).
4. 4. A → C (3, 4, SH).
Chegou a hora de resolver seu último desafio do processo seletivo para a vaga de trainee
em uma grande empresa de tecnologia. Você recebeu como desafio, avaliar dois
argumentos, mostrando se eles são válidos ou não. Para isso, você deve usar as regras
de dedução lógica. Relembrando os dois argumentos que lhe foram passados:
Nessa etapa do desafio, você foi autorizado a usar a internet para consultar as regras de
equivalência e inferência lógica.
O primeiro passo para resolver esse problema é localizar uma fonte confiável para
consultar as regras. Uma ótima opção é usar seu acesso à biblioteca virtual e acessar a
obra: GERSTING, J. L. Fundamentos matemáticos para a ciência da computação:
matemática discreta e suas aplicações. 7. ed. Rio de Janeiro: LTC, 2017. Nas páginas 26
e 27 você encontrará as Tabelas 1.11 e 1.12 contendo as regras de equivalência e
inferência. Outra opção para consulta é você utilizar o ambiente virtual e acessar seu
108
livro didático, pois nele você poderá consultar os quadros vistos nesta aula, que também
contêm as regras necessárias para resolver o desafio.
Q: A solução é ácida.
1. P → Q (hip).
2. P (hip).
3. Q (1, 2 MP).
Proposições:
P: Eu treino.
R: Eu jogo vôlei.
Sequência de demonstração:
109
Para demonstrar esse argumento, foram necessários seis passos, sendo três deles as
hipóteses. Após elencar as hipóteses, consultamos o quadro com as Regras de inferência
e vimos que era possível aplicar a regra de Modus Tollens entre os itens 1 e 3, com isso
obtivemos o resultado ¬P no item 4.
Também vimos que podíamos aplicar a mesma regra entre os itens 2 e 4, com isso
obtivemos o resultado
no item 5. Por fim, consultado o Quadro Regras de Equivalência, vimos que podíamos
aplicar a dupla negação no item 5 e obtivemos R no item 6. Como R é a conclusão,
demonstramos que o argumento é válido.
Aula 4 - Na Prática
Introdução da aula
Nesta aula, você poderá praticar os conhecimentos adquiridos nesta unidade, por meio
de exercícios comentados.
Exercício 1
1. A = V; B = V.
2. A = V; B = F.
3. A = F; B = V.
4. A = F; B = F.
a) R = V F F F; S = V V V F.
b) R = V V F F; S = F V V F.
c) R = F F F V; S = F V V F.
d) R = F V V F; S = V F F F.
e) R = V F V V; S = V V F F.
112
Exercício 2
a) F – F – V – F.
b) V – F – F – F.
c) V – V – F – V.
d) F – F – F – V.
e) V – F – V – F.
113
Exercício 3
Exercício 4
III. As fórmulas ¬(A⋀B) e ¬A⋁¬B são equivalentes, pois se trata de uma das leis de
De Morgan.
a) I, apenas.
b) II e III, apenas.
c) I e III, apenas.
d) II, apenas.
e) I, II e III.
115
Exercício 5
Introdução da Unidade
Reparou no modo como escrevi as boas-vindas (e/ou)? O que essa notação quer dizer?
O que eu quis dizer ao escrever “e”? Será que a resposta seria a mesma se eu optasse
pelo “ou”? Por exemplo: “vamos convidar somente a família e os amigos próximos para
a festa”. Qual seria o impacto se trocássemos E por OU nessa frase?
Como você pode ver, a lógica faz parte do nosso cotidiano, da nossa forma de
comunicação.
Como funcionário trainee na área de analytics de uma empresa de varejo, você deve ser
capaz de resolver os problemas propostos pela equipe a fim de ajudá-la e, em breve, ser
promovido a júnior. Seu primeiro desafio consiste em construir uma tabela verdade com
os resultados dos conectores de conjunção, disjunção e negação para insights de vendas.
Seu segundo desafio é completar a tabela verdade com novos insights, baseados no
conector de implicação, a fim de direcionar uma campanha promocional. Após
completar as duas primeiras etapas, você deverá utilizar os novos dados recebidos para
extrair insights para uma campanha promocional personalizada. Animado?!
Para solucionar os desafios propostos, você aprenderá a construir tabelas verdades com
os conectores lógicos, analisar os resultados obtidos e solucionar fórmulas mais
complexas.
Situação-problema
Boas-vindas! Iniciaremos agora uma jornada que lhe capacitará compreender e aplicar a
lógica por meio da construção de tabelas verdade. Quem tem irmão já deve ter ouvido a
mãe gritar: “Você E seu irmão estão de castigo!”, mas esse “E” tem a ver com o
conectivo lógico AND? A resposta é sim, o resultado desse E é o mesmo, seja na
linguagem natural ou na binária, por isso aprendemos lógica proposicional e a
aplicamos no universo computacional.
Para cumprir seu desafio, nesta aula você estudará conceitos importantes sobre tabela
verdade. Então, mãos à obra!
119
Olá, estudante, já deve ser do seu conhecimento que um computador é dividido em duas
partes: o hardware (componentes físicos) e o software (os programas). Muitos
pesquisadores contribuíram para que chegássemos ao nível de evolução computacional
que vivenciamos. O avanço do hardware se deu por meio das pesquisas na área da
eletrônica digital, que visa construir circuitos que representam grandezas por meio de
valores discretos (DACHI; HAUPT, 2018).
Assim como no hardware, o software também possui operações lógicas. Por exemplo,
podemos escrever um programa que irá somar dois valores se, e somente se, ambos
forem positivos. Nesse caso, teremos que construir o algoritmo utilizando o
operador AND.
Como você pode ver, tanto o hardware como o software computacional dependem da
Lógica Formal. Sabemos que os fundamentos da lógica computacional estão baseados
nas proposições e nos conectivos (ou operadores) lógicos, mas como podemos organizar
os resultados das operações lógicas para facilitar nosso trabalho? Podemos seguir a
sugestão de Silva, Finger e Melo (2017) e construir matrizes de conectivos, conforme
mostra o quadro visto no início desta aula.
No canto superior esquerdo, temos a operação lógica a ser feita, no caso AND (E). Nas
linhas abaixo da operação, temos a proposição “P” e os possíveis valores que ela pode
assumir, ou seja, verdadeira / falsa. Nas colunas ao lado da operação, temos os valores
da proposição “Q”, ou seja, também verdadeira / falsa. No centro da matriz estão os
possíveis resultados lógicos para a operação AND. Veja que, quando P E Q são
verdadeiras, o resultado é V. Para todos os demais casos, o resultado é falso (F).
Alguns pontos sobre a lógica têm que estar bem claros para que possamos construir
nossas Tabelas Verdade.
Ao realizar uma operação lógica com duas proposições, temos que testar todas as
combinações de respostas, o que influenciará diretamente a quantidade de linhas
necessárias na Tabela Verdade.
O segundo ponto é muito importante e precisa ficar bem claro. Observe a Figura abaixo
(lado a). Criamos um esquema que mostra uma fórmula simples (operação binária);
nele, temos um espaço reservado para uma proposição, um conector e outra proposição.
Pois bem, sabemos que cada proposição pode assumir somente os valores V ou F (1 ou
0 se preferir). Com esses valores de entrada, essa fórmula genérica pode gerar quatro
resultados distintos.
vamos entender por meio da árvore de possibilidades (Figura a seguir, lado b). Observe
a Figura a seguir (b), cada proposição gera um nível na árvore, e como temos duas
proposições, temos dois níveis. Os ramos da árvore representam as possíveis respostas
para cada proposição (somente V ou F) e suas combinações. Para encontrar todas as
combinações possíveis é preciso percorrer os ramos passando pelos níveis, ou seja, para
esse caso, existem 4 caminhos diferentes VV, VF, FV, FF. Em outras palavras,
podemos dizer que a entrada V da primeira proposição pode se combinar com as
entradas V e F da segunda proposição, gerando, assim, dois resultados (o resultado
depende do conector utilizado). A entrada F da primeira proposição também pode se
combinar com as entradas da segunda proposição, gerando dois novos resultados.
Portanto, ao final, temos quatro resultados.
_____
Assimile
Veja na Figura que segue que na primeira coluna (C1) colocamos a proposição A, na
segunda coluna (C2) a proposição B e na terceira coluna (C3) a fórmula que queremos
avaliar. Sobre os resultados, vamos analisar linha a linha.
Reflita
Como usamos duas proposições, foram necessárias 4 linhas para gerar a valoração da
fórmula A⋀ B . Repare na distribuição das entradas. Para a proposição A, primeiro
foram dispostas as entradas V combinando com as entradas V e F da proposição B; em
seguida, foram dispostas as entradas F combinando com as entradas V e F de B.
Portanto, a primeira coluna ficou com entradas VVFF e a segunda coluna VFVF. Será
que foi só uma coincidência ou existe uma lógica que ajuda na organização? Como
ficariam dispostas as entradas da Tabela Verdade da conjunção para três proposições?
Exemplificando
Vejamos um exemplo prático para a conjunção. Imagine que estamos criando uma
aplicação que precisa informar se uma determinada pessoa irá pagar imposto ou não, a
depender da sua renda, de acordo com a seguinte regra: Se o salário for superior a 5 mil
e a idade menor que 40 anos, a pessoa pagará de imposto 10% do seu salário. Considere
as seguintes proposições:
Com base na tabela verdade da conjunção, vamos analisar qual seria o resultado da
fórmula A ⋀ B para uma pessoa que recebe um salário de R$ 4 mil e possui 32 anos.
123
Avaliando a proposição A para o caso, temos um resultado F (pois não ganha salário de
5 mil). Já a proposição B possui resultado V (a idade é menor que 40 anos). Ao
consultarmos a terceira linha da Figura vista acima, vemos que o resultado de A ⋀ B
para tais entradas é falso. Portanto, para o caso analisado, o resultado da fórmula é F.
O conector lógico de disjunção (OR - OU) é utilizado para realizar uma operação
binária entre duas proposições quando se deseja obter um resultado falso se, e somente
se, as duas proposições forem falsas. Utilizaremos o símbolo ⋁ para representar esse
conector lógico. Para construir a Tabela Verdade da disjunção, vamos considerar como
entradas as proposições A e B. Queremos avaliar os resultados para a fórmula A ⋁ B.
Como mostra a Tabela Verdade da disjunção, basta que uma entrada seja verdadeira
para obtermos um resultado verdadeiro.
124
O operador lógico de negação tem a função de inverter, seja uma entrada ou o resultado
de uma operação. Utilizaremos o símbolo ← para representar esse conector lógico. Na
Figura abaixo (a), temos uma Tabela Verdade com negação para as proposições A, B.
Veja que ←A inverte o valor de A, ou seja, onde é V fica F e vice-versa. O mesmo
acontece para ←B , que inverte o valor de B. Na Figura abaixo (b), temos nas colunas 3
(C3) e 5 (C5) os resultados já conhecidos da conjunção e disjunção, e nas colunas 4
(C4) e 6 (C6) os novos resultados, sendo na coluna 4 (C4) os resultados para a negação
da conjunção e na coluna 6 (C¨) a negação da disjunção. Repare nos parênteses, que são
obrigatórios, indicando que a negação é para toda a operação e não somente para uma
proposição.
Para ficar claro como os parênteses podem afetar o resultado da operação lógica
envolvendo a negação, observe a Figura que segue. Na coluna 4 (C4), temos os
resultados para a fórmula ¬(A ∧ B) , já na coluna 5 (C5) temos o resultado para a
fórmula (A ∧¬B) . Veja como é diferente. No primeiro caso estamos invertendo o
resultado da operação toda, já no segundo caso, estamos invertendo apenas o valor de B
e fazendo a conjunção com A.
Como você já deve ter percebido, não adianta tentar decorar os resultados, você precisa
entender os operadores básicos e, a partir daí, ir resolvendo as fórmulas, parte por parte,
com auxílio da Tabela Verdade.
125
A Tabela Verdade pode ser usada como um gabarito para as operações lógicas, pois
contempla todas as entradas possíveis e suas combinações para as fórmulas em estudo.
Com esse gabarito em mãos, podemos passar para a segunda etapa do desafio, que é
fazer a valoração das fórmulas p⋀q e p⋁q para cada registro da base de clientes. Pois
bem, vejamos na Tabela 4.2, como ficaram os resultados.
Na linha 2, o cliente é do sexo masculino e possui 49 anos; nesse caso, tanto p quanto q
são falsas, logo, ambas fórmulas são valoradas como F.
Nossa maior lição com esse desafio é entender como uma questão de lógica formal pode
ser utilizada em um algoritmo, e isso, no mercado de trabalho, fornece resultados para
as mais diversas áreas de uma empresa. Se fornecêssemos para a equipe de vendas o
resultado da coluna da conjunção, a fim de comunicá-los sobre o lançamento de uma
nova promoção, nenhum desses 10 receberia tal comunicado, por outro lado, se nosso
resultado fosse baseado na disjunção, vários deles receberiam o comunicado.
É isso aí, você como um profissional deve ter consciência das suas responsabilidades e
tomar as melhores decisões para a empresa!
Nesta aula, veremos a Tabela Verdade do conector de implicação, bem como outros
importantes resultados da Tabela Verdade.
Situação-problema
Olá, estudante. Profissionais das mais diversas áreas tomam decisões o tempo todo em
seu ambiente de trabalho. Todas as decisões precisam ser bem avaliadas, pois toda ação
gera uma consequência. Por exemplo, em uma campanha promocional, se optar por
desconto a um determinado grupo, poderá não vender tanto para um outro grupo
potencial. No mundo da lógica computacional, as decisões são tomadas por meio de
estruturas de decisão, que têm sua origem em um conector lógico chamado de
implicação, o qual veremos sua tabela verdade nesta aula.
Como funcionário trainee na área de analytics de uma empresa de varejo, você deve
ajudar a equipe de marketing em uma campanha para o dia internacional da mulher.
Dadas as proposições:
B: o cliente fez um compra com valor superior a R$ 50,00. C: ganhar cupom com 10%
de desconto.
Seu desafio consiste primeiro em avaliar a fórmula A ⋀ B para cada um dos registros da
Tabela a seguir. Essa avaliação lhe permitirá classificar a proposição C para cada um
dos clientes, ou seja, se o cliente ganhará ou não o cupom de 10% de desconto.
Após a classificação, você deverá generalizar, por meio de uma Tabela Verdade, as
possíveis respostas para a fórmula P → Q , sendo P e Q duas proposições genéricas.
Além desses conectores, as proposições podem ser combinadas na forma “se proposição
1, então proposição 2”. O conectivo lógico dessa combinação é o condicional,
representado por → , e significa que se a proposição 1 é verdadeira, implicará na
verdade da proposição 2 (GERSTING, 2017). Em outras palavras, podemos dizer que
dada uma sequência de proposições, a partir da operação condicional é possível chegar a
uma conclusão (um resultado), que é uma nova proposição. A primeira parte, antes do
conector, é chamada de antecedente, e a segunda de consequente conforme ilustra a
figura abaixo.
Considere as proposições A e B:
A fórmula A → B , que significa que B está condicionado a A, deve ser lida como: “se
houver uma falha na rede elétrica, então, a chave central irá desligar.”
Considere as proposições P, Q, R.
A: soltar a pedra.
B: a queda da pedra.
A fórmula A → B deve ser lida como “Se a pedra for solta, então, a pedra cairá”.
Agora, vamos avaliar todas as respostas possíveis com base na Tabela Verdade da
Figura vista acima.
Assimile
Os resultados lógicos das linhas 3 e 4 (L3 e L4) da Tabela Verdade da condicional não
são tão fáceis de identificar. Como se trata de uma dependência, caso o antecedente seja
falso, o resultado lógico será sempre verdadeiro.
Vamos construir a Tabela Verdade para a fórmula A ∨¬A , que, traduzindo, quer dizer,
“hoje está chovendo ou hoje não está chovendo”. Veja o resultado no quadro a seguir.
A coluna dos resultados (última coluna) para a fórmula obteve como resposta somente
verdadeiro. Quando o resultado de uma fórmula obtém somente V como resposta, a
fórmula é denominada tautologia (GERSTING, 2017).
B: hoje é segunda-feira.
Vamos construir a Tabela Verdade para a fórmula B ∧¬B , que quer dizer, “Hoje é
segunda-feira e hoje não é segunda-feira”.
Como podemos observar, a coluna dos resultados (última coluna da tabela verdade) para
a fórmula obteve como resposta somente falso. Quando o resultado de uma fórmula
obtém somente F como resposta, a fórmula é denominada contradição (GERSTING,
2017).
Quando uma tabela verdade não é uma tautologia e não é uma contradição, então, ela é
uma contingência.
131
Reflita
Podemos afirmar que a tautologia acontecerá somente para as fórmulas com conectores
lógicos de disjunção (OR) e a contradição para os conectores de conjunção (AND)?
Tabela verdade para propriedade da distributividade A ∧(B ∨C) ⇔ (A ∧ B)∨(A ∧C). Fonte: a autora.
Não poderíamos encerrar esta aula sem mencionar, além das proprie- dades, outros dois
importantes resultados da equivalência, usados para fazer a negação de uma proposição
composta. Refiro-me às leis de De Morgan, “[...] assim nomeadas em honra ao
matemático inglês do século XIX Augustus De Morgan, o primeiro a enunciá-las”
(GERSTING, 2017, p. 9).
I - ¬(A ∨ B) ⇔ ¬A ∧¬B
II - ¬(A ∧ B) ⇔ ¬A ∨¬B
O que podemos concluir das leis de De Morgan é que a negação de uma disjunção é
equivalente à negação de cada uma das proposições em uma conjunção (fórmula I) e
que a negação de uma conjunção é equivalente à negação de cada uma das proposições
em uma disjunção (fórmula II).
Exemplificando
Para saber se duas fórmulas são equivalentes, é necessário construir a tabela verdade e
verificar se a equivalência é uma tautologia. Por exemplo, vamos construir uma tabela
verdade (Quadro abaixo) para testar se as fórmulas A ⋀B e B ⋀ A são equivalentes.
Os resultados obtidos nos quadros apresentados não são uma coincidência, pois estamos
diante de uma forte propriedade, a comutativa. Lembra das aulas de matemática quando
aprendeu que o resultado de 2 + 3 é igual a 3 + 2? Pois bem, aqui na lógica também
temos essa mesma propriedade: a ordem dos fatores não altera o resultado. Veja no
quadro a seguir mais algumas propriedades.
Tabela Verdade para propriedade associativa (A ∨ B)∨C ⇔ A ∨(B ∨C). Fonte: elaborada pela autora.
Não poderíamos encerrar esta aula sem mencionar, além das proprie-
proprie dades, outros dois
importantes resultados da equivalência,
equivalência, usados para fazer a negação de uma proposição
composta. Refiro-me
me às leis de De Morgan, “[...] assim nomeadas em honra ao
matemático inglês do século XIX Augustus De Morgan, o primeiro a enunciá-las”
enunciá
(GERSTING, 2017, p. 9).
I - ¬(A ∨ B) ⇔ ¬A ∧¬B
II - ¬(A ∧ B) ⇔ ¬A ∨¬B
135
O que podemos concluir das leis de De Morgan é que a negação de uma disjunção é
equivalente à negação de cada uma das proposições em uma conjunção (fórmula I) e
que a negação de uma conjunção é equivalente à negação de cada uma das proposições
em uma disjunção (fórmula II).
Dada as proposições:
Para finalizar, vamos fazer a conexão entre o resultado obtido na análise dos registros
com o Quadro acima.
Temos aqui o caso V→V , que, consultado a tabela verdade da implicação tem como
resultado também V, isso quer dizer que a proposição “O cliente é do sexo feminino e
fez uma compra acima de R$ 50,00, então, ele ganhará desconto” é uma verdade.
Termine de fazer as avaliações, caso a caso, pois quanto mais praticar, mais apto estará
para avaliar as implicações lógicas e contribuir ainda mais com seu time!
138
Nesta aula, você aprenderá a importância dos parênteses nas fórmulas, e de seguir a
regra de precedência dos operadores.
Situação-problema
Olá, estudante! Até você chegar ao ensino superior foram anos de estudos, não é
mesmo?
Tudo começou com o processo de alfabetização, tanto de leitura quanto das operações
básicas de matemática (soma, subtração, divisão e multiplicação). Primeiro você
aprendeu a fazer operações matemáticas simples, por exemplo, 2 + 3, depois
apareceram os parênteses, por exemplo, (2 + 3)×4 . Mas será que esses parênteses são
só de enfeite? Certamente que não! Eles influenciam a ordem que as operações devem
ser resolvidas e, como você já deve saber, não seguir as regras certamente implica em
chegar em resultados errôneos.
Pois bem, da mesma forma que a matemática tem suas fórmulas e suas regras de
resolução, a lógica formal também as possui, e nesta aula vamos aprender mais sobre
elas.
Como funcionário trainee na área de analytics de uma empresa de varejo, você deve dar
continuidade em seu trabalho, fornecendo novos insights para a equipe de marketing
realizar sua campanha promocional. Para esse novo desafio foi enviada a você uma base
com novas informações, conforme ilustra a Tabela a seguir.
Nessa base é possível encontrar o valor gasto na última compra do cliente, o total de
compras já feito por ele e o ticket médio (valor médio gasto em cada compra). A partir
desses dados você deve usar as regras da lógica para classificar se o cliente tem
potencial para comprar na nova campanha e, se tiver, então ele ganhará um cupom com
desconto de 10%. Caso não seja um cliente com potencial então ele ganhará somente
um cupom com 5%. Vamos às regras: para ser classificado como um cliente com
potencial de compra, não importa o gênero (pode ser feminino ou masculino), o cliente
deve ter idade entre 30 e 45 anos, ter feito acima de 10 compras e ter um ticket médio
acima de R$ 50,00.
139
Seu desafio é montar uma fórmula que traduza essa regra e, então preencher a coluna
“cliente_poten- cial” com o resultado da fórmula para cada registro. Dada a
classificação, você deve escrever uma nova fórmula que traduza “Se o cliente tem
potencial de compra, então ele deve ganhar um cupom com 10% de desconto”, e outra
fórmula que traduza “Se é falso que o cliente tem potencial de compra, então ele deve
ganhar um cupom com 5% de desconto”.
Para cumprir esse desafio, nesta aula você verá um caso de como fazer a ligação entre a
lógica formal e a lógica na computação, assim já vai se preparando para em breve
começar a programar.
(I) 2 + 3×4
(II) (2 + 3)×4
A resposta é não, pois a primeira tem como resultado 14 e a segunda, 20. Isso acontece
porque, em uma fórmula, a multiplicação tem precedência sobre adição, então ao não
usar parênteses na fórmula (I) a multiplicação foi feita antes da soma. Outro detalhe
importante é que as fórmulas apresentam uma sintaxe correta, por exemplo: não
podemos escrever 2 ++ 3, pois essa fórmula é inválida.
______
Assimile
Para resolver uma expressão lógica que combina várias proposições com conectivos
lógicos é preciso obedecer a seguinte regra de precedência:
Exemplificando
Ainda no quadro acima, observe que usamos a coluna C3 para efetuar a primeira
operação da fórmula A ∧ B → A , e na coluna C4 usamos o resultado obtido em C3
para fazer a implicação. O mesmo acontece na coluna C5, em que fazemos a primeira
operação da fórmula A ∨(B→A), (considerando as regras da ordem de precedência) e
depois usamos o resultado de C5 para fazer a conjunção final em C6. Esse processo de
criar uma coluna para cada operação facilita o trabalho e nos auxilia a não cometer erros
na construção da Tabela Verdade.
Esses resultados intermediários podem ser representados por novas letras, por exemplo:
poderíamos chamar o resultado da coluna C3 de P, então na coluna C4 teríamos P → A
. Da mesma forma, poderíamos chamar o resultado da coluna C5 de R, então na coluna
C6 teríamos a fórmula A ⋀ R . O Quadro abaixo mostra essa alternativa.
O quadro abaixo mostra o resultado para essa fórmula. Veja que usamos proposições
intermediárias para nomear os resultados. Primeiro obtemos P (A⋁B) que é o resultado
1, depois usamos para obter Q(P⋁C), que é o resultado 2, e por fim, o usamos para obter
o resultado final da fórmula, o qual também nomear, por exemplo R (Q⋀A).
Reflita
Por praxe – mas não obrigatoriamente – construímos a Tabela Verdade colocando nas
colunas mais à esquerda as proposições, em seguida, as colunas com as fórmulas. Em
uma fórmula do tipo (A ∨ B) → A, precisamos primeiro obter o resultado de A ⋁ B ,
para depois fazer a implicação. Quando o resultado de uma operação é usado para
entrada em outra operação faz diferença a ordem das operações lógicas que serão
consideradas? Em outras palavras, nessa operação (A ∨ B) → A , obteremos o mesmo
resultado se fizermos A → (A ∨ B) ?
______
Uma dúvida que pode surgir é sobre como vamos aplicar todas essas operações e regras
no universo da programação. A resposta é simples: vamos utilizar para construir uma
sequência de instruções, chamada de algoritmo.
Vamos fazer algumas simulações para avaliarmos a lógica por trás da nossa seleção.
Serão exibidos na tela somente os imóveis que satisfazem todas essas alternativas; os
demais serão ignorados, pois no algoritmo a instrução é composta pelo conector de
conjunção.
Veja que nesse caso a expressão é mais complexa e envolve a resolução de parênteses
internos. Como resultado da busca apareceriam tanto opções com 1 quarto com 2
quartos e banheiros e também sem garagem ou com 1 vaga.
Todas essas opções devem estar implementadas no algoritmo por meio das estruturas
condicionais.
Para finalizar nossa aula, vamos utilizar uma base com dados reais e, a partir de uma
Tabela Verdade, veremos como classificar os registros. Os dados usados são de domínio
público e estão disponíveis no Portal Brasileiro de Dados Abertos (BRASIL, 2019).
Trata-se de uma base com os preços de combustíveis em algumas cidades do Brasil no
ano de 2019, segregados por estado, cidade, estabelecimento de revenda, produto, data
da pesquisa, valor de venda, valor de compra e bandeira do posto, conforme amostra
dos dados na Tabela abaixo.
A: O município é Brasília.
B: O combustível é gasolina.
C: A bandeira é Petrobras.
Vamos construir a Tabela Verdade para a regra “Se a cidade não for Brasília e o
combustível for gasolina então a bandeira é Petrobras.”. Em seguida, vamos fazer a
conexão entre a lógica formal com a lógica computacional, mais especificamente com a
lógica de programação, para avaliar a regra para cada um dos registros. O primeiro
passo é traduzir a regra para uma fórmula lógica, o que nos resulta em (¬A ∧ B) → C .
O resultado da Tabela Verdade para a fórmula está no Quadro 4.16. Veja que a primeira
operação que fizemos foi a negação, que está dentro dos parênteses (seguindo a ordem
de precedência dos operadores), depois fizemos a conjunção e chamamos o resultado de
R. Usamos esse resultado para fazer a implicação.
• Na linha 1, temos a seguinte expressão “Se é falso que a cidade não é Brasília e
o combustível é gasolina, então a bandeira é Petrobras.”. Tal expressão tem
como resultado V, que se deve à falsidade no antecedente, impossibilitando
avaliar o resultado que, portanto, é tomado como verdadeiro.
• Na linha 2, a expressão é “Se é falso que a cidade não é Brasília e o combustível
é gasolina, então é falso que a bandeira é Petrobras”. Dada a falsidade no
antecedente e consequente, a expressão tem como resultado V. O único caso em
que a implicação tem como resultado F, é quando o antecedente é verdadeiro e o
consequente é falso.
146
Os operadores lógicos são usados na lógica de programação para dizer se uma condição
é verdadeira ou falsa. Nesse exemplo, queremos criar uma lógica de programação para
avaliar regra “Se a cidade não for Brasília e o combustível for gasolina então a bandeira
é Petrobras.” Pois bem, o Quadro a seguir apresenta o resultado da análise das
proposições A e B para os registros do Quadro abaixo, bem como da conjunção ¬A ∧ B
.
Como você pode observar no quadro acima, o comando se é escrito em inglês (if) e o
então, nas linguagens C e Java é a chave ( { ) e em python é o dois pontos ( : ). Outro
detalhe é a escrita da conjunção; em C e Java é feito pelo && e em python pelo
comando and. Além desses conectivos lógicos, também foram usados operadores
relacionais. A sintaxe != significa “diferente” e a sintaxe == significa “igual”. Como
você pode ver, a solução geral de um problema está na lógica, que não muda de uma
linguagem para outra, o que muda é a sintaxe. Por isso, compreender os operadores
lógicos é essencial para sua carreira. Não deixe de aprofundar seus estudos e lembre-se:
quanto mais treinar, mais desenvolverá sua lógica e sua capacidade analítica.
A primeira parte do desafio consiste em escrever uma fórmula que traduza essas regras
e, então classificar o resultado da fórmula para cada registro da base da dados.
Primeiro ponto importante para montar a fórmula é entender que todas as condições
precisam ser satisfeitas, ou seja, estamos diante de conjunções. Como não importa o
gênero – pode ser F ou M –, usaremos a disjunção. Agora é montar essa disjunção com
as várias conjunções, utilizando os parênteses para indicar a ordem da valoração.
• (feminino OU masculino).
• (idade >=30 E idade <=45).
• (compra >= 10).
• (ticket médio >= 50).
(feminino OU masculino) E (idade >=30 E idade <=45) E (compra >= 10) E (ticket
médio >= 50). Veja que temos conectores que não são tão evidentes, como no caso da
idade, em que precisamos usar a conjunção para delimitar a idade procurada. Agora
vamos avaliar a fórmula para os dados. Observe os resultados na coluna
“cliente_potencial” na tabela a seguir.
Vamos analisar juntos alguns registros. Na linha 1, o gênero, a idade e o valor da última
compra são satisfeitos, porém, o total de compras e o ticket médio não são, o que resulta
148
em falso para a coluna que indica se o cliente é ou não potencial. Já na linha 4, todos os
itens são atendidos, logo o cliente é classificado como V, ou seja, é um cliente com
potencial de compra na campanha.
Agora que já sabemos quais clientes têm potencial para comprar, vamos ao próximo
passo: marcar o cupom de desconto. Devemos escrever uma nova fórmula que traduza
“Se o cliente tem potencial de compra, então ele deve ganhar um cupom com 10% de
desconto”. Vamos chamar de P a proposição “o cliente tem potencial de compra” e R a
proposição “Ganhar um cupom com 10% de desconto”. Então a fórmula pode ser escrita
como P → R . Na lógica de programação, a implicação é utilizada em estruturas
condicionais do tipo se… então… E como resultado temos que se P for verdadeira então
R acontecerá.
Também foi dado a você o desafio de escrever a fórmula que traduza “Se é falso que o
cliente tem potencial de compra, então ele deve ganhar um cupom com 5% de
desconto”. Considerando a proposição P anterior e a proposição S como “Ganhar um
cupom com 5% de desconto”, obtemos a fórmula ¬P → S . Agora já podemos finalizar
149
o relatório completando as colunas que indicam a qual cupom o cliente tem direito. Veja
na Tabela a seguir o resultado completo.
Vamos analisar a linha 1. Temos que o cliente não é potencial, ou seja, ¬P é uma
verdade nesse caso, logo S acontecerá.
Aula 4 - Na Prática
Introdução da aula
Nesta aula, você poderá praticar os conhecimentos adquiridos nesta unidade, por meio
de exercícios comentados.
Exercício 1
1. A = V; B = V.
2. A = V; B = F.
3. A = F; B = V.
4. A = F; B = F.
a) R = V F F F; S = V V V F.
b) R = V V F F; S = F V V F.
c) R = F F F V; S = F V V F.
d) R = F V V F; S = V F F F.
e) R = V F V V; S = V V F F.
152
Exercício 2
a) F – F – V – F.
b) V – F – F – F.
c) V – V – F – V.
d) F – F – F – V.
e) V – F – V – F.
153
Exercício 3
Exercício 4
III. As fórmulas ¬(A⋀B) e ¬A⋁¬B são equivalentes, pois se trata de uma das leis de
De Morgan.
a) I, apenas.
b) II e III, apenas.
c) I e III, apenas.
d) II, apenas.
e) I, II e III.
155
Exercício 5