Logo Passei Direto
Buscar

Fundamentos de Matemática Aplicada à Informática

Livro-texto (384 p.) Fundamentos de Matemática Aplicada à Informática. Cobre Matemática Discreta (lógica proposicional e de predicados, conversão de bases, erros e ponto flutuante), Indução, Relações e Funções, Sequências, Matrizes, Sistemas Lineares e Introdução à Teoria de Grafos; inclui recursos digitais e itens pedagógicos como indicação de filmes/livros, "Zoom no conhecimento" e podcasts.

User badge image
Eder Aguiar

em

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

ACESSE AQUI ESTE 
MATERIAL DIGITAL!
CRISTIANE BONATTI
DEBORA CRISTINA BRANDT COSTA
EDSON ORIVALDO LESSA JUNIOR
GRAZIELLE JENSKE 
LEONARDO GARCIA DOS SANTOS
LUIZ CARLOS PITZER
MICHELY DE MELO PELLIZZARO 
RAFAEL ORIVALDO LESSA
ORGANIZADOR
SERGIO GAMBA
FUNDAMENTOS 
DE MATEMÁTICA 
APLICADA À 
INFORMÁTICA
Coordenador(a) de Conteúdo 
Grazielle Jenske
Projeto Gráfico e Capa
Arthur Cantareli Silva
Editoração
Juliana Oliveira Duenha e Nivaldo 
Vilela de Oliveira Junior
Design Educacional
Patricia Peteck
Revisão Textual
Cristina Maria Costa Wecker e Gabriel 
Augusto Lenzi 
Ilustração
Eduardo Aparecido Alves e Geison 
Ferreira da Silva
Fotos
Shutterstock e Envato
Impresso por: 
Bibliotecária: Leila Regina do Nascimento - CRB- 9/1722.
Ficha catalográfica elaborada de acordo com os dados fornecidos pelo(a) autor(a).
Núcleo de Educação a Distância. BONATTI, Cristiane; COSTA, Debora 
Cristina Brandt, LESSA, Edson Orivaldo jr;, JENSKE, Grazielle , SANTOS, 
Leonardo Garcia dos., PITZER, Luiz Carlos, PELLIZZARO, Michely de Melo 
,LESSA, Rafael Orivaldo.
Fundamentos De Matemática Aplicada À Informática / Cristiane 
Bonatti ,Debora Cristina Brandt Costa. Edson Orivaldo Lessa Junior, 
Grazielle Jenske, Leonardo Garcia dos Santos, Luiz Carlos Pitzer, Michely 
de Melo Pellizzaro e Rafael Orivaldo Lessa; organizador: Sergio Gamba, - 
Florianópolis, SC: Arqué, 2023.
384 p.
ISBN papel 978-65-6083-472-9
ISBN digital 978-65-6083-473-6
1. Matemática 1 2. Informática 3. EaD. I. Título.
CDD - 519 
EXPEDIENTE
Centro Universitário Leonardo da Vinci.C397
FICHA CATALOGRÁFICA
03506777
RECURSOS DE IMERSÃO
Utilizado para temas, assuntos ou con-
ceitos avançados, levando ao aprofun-
damento do que está sendo trabalhado 
naquele momento do texto. 
APROFUNDANDO
Uma dose extra de 
conhecimento é sempre 
bem-vinda. Aqui você 
terá indicações de filmes 
que se conectam com o 
tema do conteúdo.
INDICAÇÃO DE FILME
Uma dose extra de 
conhecimento é sempre 
bem-vinda. Aqui você terá 
indicações de livros que 
agregarão muito na sua 
vida profissional.
INDICAÇÃO DE LIVRO
Utilizado para desmistificar pontos 
que possam gerar confusão sobre o 
tema. Após o texto trazer a explicação, 
essa interlocução pode trazer pontos 
adicionais que contribuam para que 
o estudante não fique com dúvidas 
sobre o tema. 
ZOOM NO CONHECIMENTO
Este item corresponde a uma proposta 
de reflexão que pode ser apresentada por 
meio de uma frase, um trecho breve ou 
uma pergunta. 
PENSANDO JUNTOS
Utilizado para aprofundar o 
conhecimento em conteúdos 
relevantes utilizando uma lingua-
gem audiovisual.
EM FOCO
Utilizado para agregar um con-
teúdo externo.
EU INDICO
Professores especialistas e con-
vidados, ampliando as discus-
sões sobre os temas por meio de 
fantásticos podcasts.
PLAY NO CONHECIMENTO
PRODUTOS AUDIOVISUAIS
Os elementos abaixo possuem recursos 
audiovisuais. Recursos de mídia dispo-
níveis no conteúdo digital do ambiente 
virtual de aprendizagem.
4
233
7
135
5
SUMÁRIO
233U N I D A D E 3
MATRIZES 234
SISTEMAS LINEARES 294
INTRODUÇÃO À TEORIA DE GRAFOS 332
7U N I D A D E 1
MATEMÁTICA DISCRETA 8
LÓGICA PROPOSICIONAL 36
LÓGICA DE PREDICADOS 84
135U N I D A D E 2
INDUÇÃO MATEMÁTICA 136
RELAÇÕES E FUNÇÕES 162
SEQUÊNCIAS FINITAS E INFINITAS 204
UNIDADE 1
MINHAS METAS
MATEMÁTICA DISCRETA
Fornecer uma visão geral da matemática discreta e suas aplicações em vários campos.
Conhecer o sistema de conversão de bases.
Converter números escritos em uma base para outra.
Diferenciar erros de arredondamento de erros de truncamento.
Compreender como se dá a propagação de erros.
Compreender o sistema de numeração e como é possível representá-los em outras 
bases numéricas.
Identificar o que é ponto flutuante.
T E M A D E A P R E N D I Z A G E M 1
8
INICIE SUA JORNADA
Quando procuramos obter resultados através de observações experimentais, de-
vemos sempre nos preocupar que nossas observações serão sempre limitadas, 
no sentido de que jamais retratam com perfeição absoluta a natureza observada.
Dessa forma, quando relatamos o resultado da medição de uma grandeza, 
é de suma importância sabermos quantificar a qualidade do resultado, ou seja, 
precisamos informar quão boa foi a nossa medição.
Um exemplo prático do resultado de uma mediação seria tentar determinar o 
tempo de queda de um corpo, quando um aluno mediu uma única vez o evento. 
Tendo a incerteza do aparelho utilizado, poderíamos ter uma ideia do acerto do 
aluno. No entanto, a incerteza cobre apenas o erro do aparelho e não do aluno 
ou mesmo do procedimento experimental.
Da mesma forma, como segundo exemplo, se um engenheiro mecânico 
queira calcular a distância que um determinado carro, com velocidade de 100 
km/h, percorre até parar completamente, sem dispor de uma trena. Através das 
equações da Cinemática, ele pode fazer isso, já que tem as velocidades inicial 
e final e pode determinar o tempo gasto durante a frenagem, não levando em 
consideração no cálculo a resistência do ar, o atrito dos pneus no pavimento 
(asfalto, cascalho, paralelepípedos...) e a precisão do cronômetro que medirá o 
tempo gasto. Na teoria, esses fatores podem parecer desprezíveis, mas na prática 
eles afetam o resultado final.
Nestes exemplos, você pode observar que é necessário levar em consideração 
todos os fatores que interferem no momento da medição da grandeza no proce-
dimento experimental.
Neste tema, iremos estudar sobre a teoria dos erros, o sistema de numeração 
e o ponto flutuante, necessários para entender a correta medição de grandezas. 
Este podcast leva o estudante a entender a matemática discreta, especificamente 
a teoria dos erros, o sistema de numeração e o ponto flutuante. Recursos de mídia 
disponíveis no conteúdo digital do ambiente virtual de aprendizagem 
PLAY NO CONHECIMENTO
UNIASSELVI
9
TEMA DE APRENDIZAGEM 1
DESENVOLVA SEU POTENCIAL
TEORIA DOS ERROS
VAMOS RECORDAR?
Considerando a situação de medição de grandezas de um experimento, é 
conveniente lembrar dos conceitos de metro e de sistema decimal para um 
melhor entendimento dos assuntos que serão tratados adiante. Uma sugestão 
seria você ler estes conceitos no Infopédia, digitando os termos anteriores na 
opção pesquisa do site.
Na próxima fase, será desenvolvido o tópico teoria dos erros, que trará a solução 
inicial para medição de grandezas de um experimento. Recursos de mídia 
disponíveis no conteúdo digital do ambiente virtual de aprendizagem 
VOCÊ SABE RESPONDER?
O que é Cálculo Numérico? 
No dia a dia nos deparamos com vários problemas físicos cuja solução numérica 
gostaríamos de conhecer ou de encontrar uma aproximação apropriada para ela.
Podemos, de uma maneira simples, representar este processo pela Figura 1.
1
1
Problema Físico
Obtenção de Dados
Modelo Matemático
Escolha do Método Numérico
Implementação Computacional
Análise dos Dados Obtidos
Resolução
Modelagem
Figura 1 – Processo de Cálculo Numérico / Fonte: Costa (2011, p. 3). 
Descrição da Imagem: a figura apresenta o processo de cálculo numérico, que se inicia com um problema físico. 
A obtenção de dados deste problema físico passa a ser a segunda fase. A modelagem seconstitui em representar 
o problema físico em um modelo matemático, terceira fase. Para a quarta fase, é necessário a escolha de um 
método numérico em conexão com o modelo matemático. Na quinta fase, a representação matemática passa para 
a implementação computacional, onde temos a resolução do problema. A última fase se constitui na avaliação ou 
na análise dos dados obtidos. Fim da descrição.
Como exemplo, sabemos que é fácil resolver um sistema matemático com três 
equações e três incógnitas. No entanto, quando o sistema tem 10 equações e 10 
incógnitas, é aí que entra o cálculo numérico. Podemos esperar que, uma vez 
encontrado o modelo matemático correto, os resultados obtidos sejam iguais 
aos esperados. Na verdade, os resultados obtidos são, muitas vezes, bastante 
diferentes dos esperados, mesmo que todas as etapas da resolução tenham sido 
aplicadas corretamente.
UNIASSELVI
1
1
TEMA DE APRENDIZAGEM 1
ERROS DE MODELAGEM
Consideremos uma função real contínua f, definida sobre um intervalo [a,b] e su-
ponhamos que precisássemos calcular a área delimitada por ela no plano cartesiano.
Uma maneira mais precisa de fazer isso é calculando a integral da função f no 
intervalo [a,b]. Esse é o modelo matemático mais apropriado. Entretanto, conse-
guiremos obter aproximações razoáveis para esse valor se dividirmos o intervalo 
[a,b] em n partes iguais e, de posse do conjunto de pontos entre a e b, somarmos 
as áreas de todos os retângulos de base n e altura f(x), conforme Figura 2.
O objetivo principal do texto é a apresentação de métodos 
numéricos com sua fundamentação teórica, suas vantagens e 
dificuldades computacionais. Em todos os capítulos são expos-
tas lista de exercícios, com respostas no apêndice. A maioria 
dos capítulos também apresenta propostas de projetos.
INDICAÇÃO DE LIVRO
Figura 2 – Função Real Contínua / Fonte: Costa (2011, p. 4).
Descrição da Imagem: a figura apresenta uma representação em um plano cartesiano de uma função real con-
tínua. No eixo Y, temos os valores da altura f(x). No eixo X, temos n valores de a até b. A soma das áreas dos 
n retângulos se aproxima da área entre o intervalo [a,b] e a curva da função real contínua. Fim da descrição.
f(x)
a b
y
1
1
ERROS NA FASE DE RESOLUÇÃO
Imaginemos desejar medir o perímetro de uma circunferência de raio 1. Sabemos 
que a fórmula para se calcular essa medida (modelo matemático) é P = 2πr, onde 
r, neste caso, vale 1. O resultado preciso dessa expressão é P = 2π. Entretanto, 
sabemos que é impossível obter esse valor numericamente, uma vez que π é um 
número irracional. Nem a máquina mais precisa fabricada pelo homem é capaz 
de fornecer o número π completo. Assim, embora tenhamos o modelo matemáti-
co ideal, não conseguimos expressar exatamente o valor deste perímetro. Sempre 
trabalharemos com uma aproximação.
CONVERSÃO DE BASES
Qualquer número decimal pode ser representado como uma potência de 10. Por 
exemplo, o número 23 nada mais é do que 20 + 3 = 2.10¹ + 3.100 = (23)10 (lem-
brando que 100 = 1). Da mesma forma, qualquer número pode ser representado 
como potência de 2. Observe a Figura 3:
Figura 3 – Mudança da base 10 para a base 2 / Fonte: Costa (2011, p. 6).
Descrição da Imagem: a figura apresenta divisões sucessivas por 2. Os restos da divisão e último quociente, de 
baixo para cima, corresponde ao valor procurado. Fim da descrição.
223
2
5 2
2
1
1
1
1 11
0
2
Assim, (23)10 = (10111)2. É com esta sequência de zeros e uns (0 e 1) que o com-
putador interpreta o número decimal 23. Para converter um número na base 
binária (base 2), você deve proceder da seguinte forma:
UNIASSELVI
1
1
TEMA DE APRENDIZAGEM 1
 ■ Dividimos o número considerado por 2 e o quociente por 2 iteradas vezes, 
até que o quociente encontrado seja menor do que 2.
 ■ Escrevemos os restos obtidos na ordem inversa a que foram encontrados, 
sendo que o primeiro dígito da sequência será o último quociente (0 ou 1).
O que acontece se o número considerado for um número real não inteiro? Neste 
caso, o procedimento é multiplicar a parte decimal por 2 e repetir esse processo 
com a parte decimal do resultado obtido até obter o número inteiro zero como 
resposta ou uma dízima periódica. Consideremos o número decimal 0,75.
0,75 . 2 = 1,50 = 1 + 0,50
0,50 . 2 = 1,00 = 1 + 0,00
0,00 . 2 = 0,00
.. (0,75)10 = (0,110)2
Um outro exemplo seria uma dízima periódica 0,9999...
0,9999... . 2 = 1,9998... = 1 + 0,9999...
0,9999... . 2 = 1,9998... = 1 + 0,9999...
0,9999... . 2 = 1,9998... = 1 + 0,9999...
Continue esse processo indefinidamente e você verá que se mantém o padrão 
111... e se repete.
.. (0,9999...)10 = (0,111...)2
Outros exemplos de mudança da base 10 para a base 2 podem ser encontrados 
na plataforma Khan Academy. Recursos de mídia disponíveis no conteúdo digital 
do ambiente virtual de aprendizagem 
EU INDICO
ERROS DE ARREDONDAMENTO
Qualquer número x pode ser representado numa base β da seguinte forma, mo-
delo matemático número x na base β:
X x x x xn
n
k� � � � � �( ... ).1
1
2
2
3
3b b b b
b 
1
4
Vamos entender como isso funciona para os casos que já trabalhamos com β = 
10 e β = 2. Por exemplo, representar 23 na base 10 e na base 2.
( ) .23 2
10
3
10
1010 1 2
2� ��
�
�
�
�
�
( ) .10111 1
2
0
2
1
2
1
2
1
2
0
2
0
2
0
2
0
2
0
2
22 1 2 3 4 5 6 7 8 9 10
5� � � � � � � � � ��
�
�
�
�
�
O valor n é chamado de precisão da máquina.
Considere uma máquina que representa um número com precisão de n = 10, 
então a representação de 23 na base 10 é:
( ) ( )23 10111 1
2
0
2
1
2
1
2
1
2
0
2
0
2
0
2
0
2
0
210 2 1 2 3 4 5 6 7 8 9 10� � � � � � � � � � ��
�
��
�
�
�.2
5
De uma maneira mais compacta, teríamos o exemplo anterior na Figura 4:
1 1 1 1 1 10 0 0 0 0 0 0
MANTISSA EXPOENTE
Figura 4 – Representação compacta do número 23 com precisão de máquina n = 10 / Fonte: Costa (2011, p. 9).
Descrição da Imagem: a figura apresenta, na parte da mantissa, os números que estão nos numeradores das 
frações. Na parte do expoente, o expoente 5 de 25 é representado por 101 na base 2. Fim da descrição.
O sistema decimal é o sistema que utilizamos no nosso dia a dia. Assim, quando 
escrevemos (23)10, na verdade, estamos nos referindo simplesmente ao número 
23, conforme o conhecemos. O número (23)5 não é o mesmo que (23)10. Fazendo a 
conversão para a base 10, teríamos (23)5 = (13)10 = 43.
ZOOM NO CONHECIMENTO
Cada dígito da mantissa é chamado de bit. Além dos dígitos pertencentes à man-
tissa e ao expoente, mais dois dígitos são considerados: os responsáveis pelos 
sinais da mantissa e do expoente respectivamente. Esses bits valem 0 se o número 
for positivo e 1 se for negativo. Assim, 23 é representado na Figura 5:
UNIASSELVI
1
5
TEMA DE APRENDIZAGEM 1
Assim, a máquina representada anteriormente utiliza 16 bits para representar 
um número decimal (byte).
MANTISSA EXPOENTE
SINAL DA MANTISSA SINAL DO EXPOENTE
0 0 0 0 0 0 0 0 0 01 1 1 1 1 1
Figura 5 - Representação compacta do número 23 com precisão de máquina n = 10 em bits 
Fonte: Costa (2011, p. 10). 
Descrição da Imagem: a figura representa a Figura 4 acrescentada de 0 na mantissa e no expoente, por repre-
sentarem valores positivos, +23 e +5. Há um zero a mais, ou seja, em vez de 101, temos 0101, a fim de fechar 
16 bits. Fim da descrição.
Considere, agora, o primeiro número positivo a seguir:
Sinal da mantissa: 0
Mantissa: 0000000001
Sinal do expoente: 0
Expoente: 0000
O objetivo é encontrar o número decimal correspondente. 
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
1
2
2 0 0009761 2 3 4 5 6 7 8 9 10
0� � � � � � � � ��
�
�
�
�
� �. , 55625
 
Assim, qualquer número pertencente ao intervalo (0; 0,0009765625) não pode ser 
representado por este computador. Qualquer número intermediário será arredon-
dado pelo computador para um dos extremos do intervalo anterior, provocando 
um erro de arredondamento nos cálculos. 
Por exemplo: (0,00098)10 = (0,0000000001)2
Esses fatos explicampor que cálculos envolvendo números decimais finitos, ao 
serem feitos por um computador ou por uma calculadora, às vezes apresentam 
erros aparentemente inexplicáveis.
APROFUNDANDO
1
1
ERROS DE TRUNCAMENTO
Cada vez que precisamos parar um processo simplesmente pelo fato de ele ser 
infinito ou muito grande, surge o erro de truncamento. Truncar significa exata-
mente isso: parar abruptamente um processo. Por exemplo, a função exponencial 
pode ser escrita em termos de um somatório:
e x x x x
n
x
n
� � � � � � �
�
�
��
�
�
��1
2 3
2 3
! !
...
!
...
Fazendo x = 1, temos:
e
n
n
1
2 3
1 1 1
2
1
3
1
� � � � � � �
�
�
��
�
�
��! !
...
!
...
Como é impossível obter essa soma infinita, trunca-se o somatório para um n 
suficientemente grande, obtendo uma aproximação para e, ou seja, e = 2,71828, 
número de Euler.
O número e é uma constante matemática que é a base dos logaritmos naturais. 
Por vezes, é chamado número de Euler. No Google Acadêmico, podemos encon-
trar exemplos e aplicações do número e. Recursos de mídia disponíveis no con-
teúdo digital do ambiente virtual de aprendizagem 
EU INDICO
Você pode notar que só faz sentido truncar o somatório apresentado para um n 
de tal forma que o erro de truncamento seja da mesma ordem que o erro de ar-
redondamento. A partir deste ponto, o erro de arredondamento será dominante.
PROPAGAÇÃO DE ERROS
Em um exemplo simples, se somarmos números que possuam algum tipo de erro, 
o resultado encontrado conterá a soma de todos esses erros. Observe o exemplo 
a seguir para ter uma ideia da dimensão deste problema.
Sabemos que, algebricamente falando, (x1 + x2) - x2 = x1 + (x2 - x2), para quais-
quer números reais x1 e x2. Em particular, para x1 = 0,2345 e x2 = 0,3491 . 104. 
UNIASSELVI
1
1
https://pt.wikipedia.org/wiki/Constante_matem%C3%A1tica
https://pt.wikipedia.org/wiki/Logaritmo_natural
TEMA DE APRENDIZAGEM 1
Entretanto, se utilizarmos, para efetuar esse cálculo, uma máquina que traba-
lha apenas com 4 dígitos significativos, teremos os seguintes valores:
Para (x1 + x2) - x2 = (0,2345 + 0,3491 . 104) - 0,3491 . 104 = 0,3491 . 104 - 0,3491 
. 104 = 0,0000
Para x1 + (x2 - x2) = 0,2345 + (0,3491 . 104 - 0,3491 . 104) = 0,2345 
Isso ocorre porque, como a máquina considera apenas 4 dígitos significativos, 
interpreta, neste caso, (x1 + x2) = x2. É claro que normalmente trabalhamos com 
máquinas muito mais precisas, que levam em conta um número bem superior 
de algarismos significativos, mas dependendo da precisão que procuramos, é 
possível que nos deparemos com erros similares.
VOCÊ SABE RESPONDER?
Quais os tipos de erros que podem surgir durante um processo de Cálculo 
Numérico?
Após os conhecimentos básicos sobre a teoria dos erros, iremos entender melhor 
sobre os sistemas de numeração.
Figura 6 – Sistema de numeração decimal.
Descrição da Imagem: a figura representa o sistema de numeração mais utilizado no dia a dia. Sistema de base 
10: 0,1,2,3,4,5,6,7,8,9. Fim da descrição.
1
8
SISTEMAS DE NUMERAÇÃO
O sistema de numeração que estamos habituados a utilizar é o sistema posicional 
de base 10. No entanto, existem outros sistemas de numeração que são bastante 
usuais e que tem sua base de análise fortemente ligadas à Aritmética.
Por exemplo, o sistema sexagesimal, que possui registro em fontes históricas 
por volta de 1700 a.C. na civilização dos babilônicos, era usado frequentemente 
por matemáticos e astrônomos. Eles faziam uma combinação de base 60 e de base 
10, pois os sinais até 59 mudam de 10 em 10. Por exemplo, para representarmos 
o valor decimal de 1h 4min 23s, temos que calcular (1. 3600 + 4.60 + 23 = 6023s). 
Portanto, o sistema que usamos para representar as horas é um sistema sexagesimal.
Na história, vários povos diferentes usaram sistemas de numeração e existem 
alguns deles que foram mais estudados: os sistemas de numeração chinês, maia, 
egípcio, romano e babilônico. O sistema numeração que adotamos hoje não 
apareceu pronto tal como é, mas foi sendo aperfeiçoado com o passar do tempo. 
Ele é conhecido como sistema decimal posicional e sua origem é indo-arábica. 
PENSANDO JUNTOS
SISTEMA DE NUMERAÇÃO DECIMAL
O sistema que utilizamos é o sistema de base 10, ele está organizado através de 
agrupamentos de 10 em 10, conforme você pode visualizar no Quadro 1.
UNIASSELVI
1
9
TEMA DE APRENDIZAGEM 1
C
L
A
S
S
E
S
M
IL
H
Õ
E
S
M
IL
H
A
R
E
S
U
N
ID
A
D
E
S
 S
IM
P
L
E
S
O
R
D
E
N
S
9°
8
°
7°
6
°
5°
4°
3°
2°
1°
C
e
nt
e
n
as
 
d
e
 m
ilh
ão
D
ez
e
n
as
 
d
e
 m
ilh
ão
U
n
id
ad
e
s 
d
e
 m
ilh
ão
C
e
nt
e
n
as
 
d
e
 m
ilh
ar
D
ez
e
n
as
 
d
e
 m
ilh
ar
U
n
id
ad
e
s 
d
e
 m
ilh
ar
C
e
nt
e
n
as
D
ez
e
n
as
U
n
id
ad
e
s
Q
ua
dr
o 
1
 – 
Cl
as
se
s 
e 
or
de
ns
 d
o 
si
st
em
a 
de
 n
um
er
aç
ão
 d
ec
im
al
. /
 F
on
te
: h
tt
ps
://
w
w
w
.to
da
m
at
er
ia
.c
om
.b
r/
si
st
em
a-
de
-n
um
er
ac
ao
-d
ec
im
al
/. 
A
ce
ss
o 
em
: 2
8
 s
et
. 2
0
2
3
.
1
1
https://www.todamateria.com.br/sistema-de-numeracao-decimal/
Por exemplo, no nosso sistema decimal, no número 325, o 3 representa 100; o 2 
representa 20 e o 5 representa 5 mesmo. Assim, 325 = 3.10² + 2 .10¹ + 5.100. Mais 
genericamente, podemos escrever um número n, em base 10, como sendo: 
n a a a ar
r� � � � �0 1 2
210 10 10. . ... . , 
r
a
i r
i
�
�
�
0
0 1 9
0 1 2
,
, ,...,
, , ,..., .
 
Por exemplo: 11547 = 7 + 4 × 10 + 5 × 102 + 1 × 103 + 1 × 104
Este livro tem por objetivo capacitar o leitor a: entender o sis-
tema de numeração decimal; definir o conceito de base; en-
tender o princípio da posição decimal; identificar as ordens das 
unidades, dezenas e centenas; identificar as classes: unidades, 
milhares, milhões, bilhões, trilhões; ensinar como se lê um nú-
mero; identificar algarismos significativos e não significativos; 
reconhecer o valor absoluto de um algarismo; identificar nú-
meros simples e compostos; identificar números pares e ímpa-
res; entender o conceito de grandeza; reconhecer grandezas 
discretas e contínuas; e reconhecer grandezas homogêneas e 
heterogêneas. O livro utiliza a técnica da Instrução Programa-
da, que é uma tecnologia instrucional que produz excelentes 
resultados, possibilitando que o leitor atinja seus objetivos com 
a maior eficiência. A obra também apresenta uma introdução à 
calculadora HP-12C.
INDICAÇÃO DE LIVRO
Este sistema de numeração supracitado já está no nosso íntimo em processos 
matemáticos que já vivenciamos. Agora, generalizaremos os sistemas de nume-
ração para uma base qualquer.
UNIASSELVI
1
1
TEMA DE APRENDIZAGEM 1
SISTEMA DE NUMERAÇÃO EM UMA BASE QUALQUER
Ao utilizar uma base qualquer (chamaremos b), devemos supor um conjunto de 
b símbolos 0, 1, 2, … , b – 1, que representará quaisquer números. Utilizaremos 
o Teorema a seguir para garantir a existência destes números nesta base b.
Teorema 5: seja b um número natural e M = 0, 1, 2, …, b − 1 com b > 1. Todo 
número natural n pode ser representado, de modo único, da seguinte maneira:
n a a b a b a br
r� � � � �0 1 2
2. . ... . , 
r
a M
i r
a
i
r
�
�
�
�
0
0 1 2
0
,
,
, , ,..., ,
.
EXPANSÃO DE UM NÚMERO NA BASE B
O Teorema a seguir também nos permite determinar um dispositivo (algoritmo) 
para encontrar a expansão de qualquer número inteiro relativamente à base b.
qn-1 = b . qn + rn
Essa expansão nos permite representar números naturais, através de um conjunto 
S, com b símbolos. Para nosso sistema (b = 10), temos: S = {0,1,2,3,4,5,6,7,8,9}. 
Se tivermos b ≤ 10, utilizaremos os símbolos 0,1,…, b −1. O q corresponde ao 
número a ser representado e os quocientes das divisões sucessivas e r corresponde 
ao resto das divisões sucessivas.
Por exemplo: representar o número 723 na base 5.
Utilizando a expansão (divisão euclidiana sucessiva), temos:
723 = 144. 5 + 3
144 = 28. 5 + 4
 28 = 5. 5 + 3
 5 = 5. 1 + 0
 1 = 0. 5 + 1
Tomando os restosdas divisões, escrevemos:
1
1
723 = 3 + 4.5¹ + 3.5² + 0.5³ + 1.5⁴. Assim, o número 723 se representa como 
10343 na base 5.
Vamos ver outro exemplo com o mesmo número, porém na base 2.
Utilizando a expansão (divisão euclidiana sucessiva), temos:
723 = 361. 2 + 1
361 = 180. 2 + 1
180 = 90. 2 + 0
 90 = 45. 2 + 0
 45 = 22. 2 + 1
22 = 11. 2 + 0
11 = 5. 2 + 1
 5 = 2. 2 + 1
 2 = 1. 2 + 0
 1 = 0. 2 + 1
Tomando os restos das divisões, escrevemos:
723 = 1 + 1.2¹ + 0.2² + 0.2³ + 1.2⁴ + 0.2⁵ + 1.2⁶ + 1.2⁷ + 0.2⁸ + 1.2⁹. Assim, o 
número 723 se representa como 1011010011 na base 2.
O Jogo da Imitação
Durante a Segunda Guerra Mundial, o governo britânico monta 
uma equipe que tem por objetivo quebrar o Enigma, o famoso 
código que os alemães usam para enviar mensagens aos sub-
marinos. Um de seus integrantes é Alan Turing, um matemático 
de 27 anos estritamente lógico e focado no trabalho. Seu gran-
de projeto é construir uma máquina que permita analisar todas 
as possibilidades de codificação do Enigma em apenas 18 ho-
ras, de forma que os ingleses conheçam as ordens enviadas 
antes que elas sejam executadas. Alan aplica a matemática em 
um sistema abstrato em que, em vez dos nove dígitos que em-
pregamos para calcular, ele usava apenas 0 e 1 combinados 
em cifras. Essa máquina hipotética deu origem a nosso com-
putador. Um excelente exemplo de sistema de numeração. 
INDICAÇÃO DE FILME
Na próxima fase, será desenvolvido o tópico ponto flutuante, que irá complemen-
tar o entendimento sobre teoria dos erros e sistema métrico decimal.
UNIASSELVI
1
1
TEMA DE APRENDIZAGEM 1
Figura 7 – Computador programável eletromecânico Z3, que incluía aritmética de ponto flutuante / Fonte: 
https://commons.wikimedia.org/wiki/File:Z3_Deutsches_Museum.JPG. Acesso em: 28 set. 2023.
Descrição da Imagem: a figura apresenta um painel de controle à esquerda e 2400 relés à direita. Fim da 
descrição.
PONTO FLUTUANTE
Em muitas aplicações do dia a dia é necessário realizar operações com quantidades 
fracionárias ou representar valores muito grandes ou muito pequenos. Para estas 
situações, deve-se representar números em ponto fixo ou em ponto flutuante.
Um número com ponto fixo tem dígitos fixos para determinar o número em 
cada parte. Um número com ponto flutuante varia para mais ou menos.
1
4
https://commons.wikimedia.org/wiki/File:Z3_Deutsches_Museum.JPG
Um computador ou calculadora representa um número real no sistema denomi-
nado aritmética de ponto flutuante. Um número x será representado na forma: 
x = ± ( 0,d1d2....dj ). βm
Onde:
dj é um dígito binário;
j é o número de dígitos da mantissa, indo de 0 a β-1;
β é base em que a máquina opera; e
m é o expoente do intervalo [1, u].
Por exemplo, uma máquina que opera no sistema de base 10:
β = 10 ; j = 3 e m = [-5, 5].
Você terá:
x = ± (0,d1d2....dj). βm = 0,d1d2d3 . 10m
Sendo:
O menor número em valor absoluto será: 0,100 . 10-5 = 10-6 e o maior número 
em valor absoluto será: 0,999 . 105 = 99900.
Em uma determinada máquina, apenas um subconjunto dos números reais 
é representado exatamente e a representação de um número real será realizada 
através de truncamento ou de arredondamento.
O estudo da Matemática Computacional pode se tornar trágico 
se não for precedido por conhecimentos básicos sobre a Arit-
mética de Ponto Flutuante, principalmente sobre os erros ope-
ratórios desse sistema operacional e, por isso, o capítulo inicial 
é dedicado a esse estudo. Cada método estudado está acom-
panhado pelo respectivo algoritmo, em Português Estruturado 
e por planilhas. Os algoritmos, bastante detalhados, facilitam 
muito a implementação dos métodos em qualquer linguagem 
de programação que o leitor conheça. 
INDICAÇÃO DE LIVRO
UNIASSELVI
1
5
TEMA DE APRENDIZAGEM 1
Por exemplo: x = 105,79 = 0,10579 . 103. Observe que este número possui 5 
dígitos na mantissa. Se for usado o truncamento, x será representado por 0,105 . 
103 e se for usado o arredondamento, x será representado por 0,236 x 103.
Mais exemplos sobre representação dos números em ponto flutuante, com β 
= 10, você pode observar na Tabela 1.
X TRUNCAMENTO ARREDONDAMENTO
2,35 0,235 . 10 0,235 . 10
54,084 0,540 . 102 0,541 . 102
3,81729... 0,381 . 10 0,382 . 10
-778,12 -0,778 . 103 -0,778 . 103
Tabela 1 – Representação dos números em ponto flutuante. / Fonte: o autor.
A maioria das linguagens de programação utilizam a palavra-chave float para 
identificar uma variável que pode receber um número fracionário. Isso porque a 
máquina utiliza o sistema de ponto flutuante (floating-point).
APROFUNDANDO
Agora, você irá entender o ponto flutuante na base 2, usado em computadores.
PONTO FLUTUANTE NA BASE 1
Primeiramente, precisamos entender sobre ponto fixo. Para representar frações em 
ponto fixo, deve-se reservar certo número de bits para armazenar a parte fracionária. 
Tome como exemplo o número binário em base 2, que corresponde ao nú-
mero decimal 103: 
0 1 1 0 0 1 1 1
Para a mesma cadeia de 8 bits, tem-se os seguintes números, conforme a 
posição da vírgula: 
1
1
0 1 1 0 0 1 1, 1 = 51,5 
0 1 1 0 0 1, 1 1 = 27,75 
0 1 1 0 0, 1 1 1 = 12,875 
0 1 1, 0 0 1 1 1 = 3,21875 
0, 1 1 0 0 1 1 1 = 0,8046875
Para uma determinada notação em ponto fixo, indica-se somente quantos bits 
são usados para a fração e quantos bits representam a parte inteira.
Outra questão importante que você deve saber é que as operações de soma e 
subtração em ponto fixo são realizadas exatamente da mesma maneira que para 
números inteiros. Naturalmente, podem ser somados ou subtraídos apenas nú-
meros que possuam a mesma posição para a vírgula. Entretanto, os números em 
ponto fixo com diferentes posições para a vírgula também podem ser operados, 
desde que um dos números seja convertido para a representação do outro.
Um exemplo completo de representação seria o número 42,5. Sua representação 
em notação de ponto fixo utilizando a base 2 começa com a conversão do número 
para binário e uma mantissa de 16 bits.
(42, 5)10 = (101010, 1)2
00101010 10000000 (ponto fixo)
PENSANDO JUNTOS
Agora você irá entender sobre ponto flutuante.
A faixa de números que podem ser representados em ponto fixo é insuficiente 
para a maioria das aplicações científicas, onde existe a necessidade de representar 
números muito grandes e/ou muito pequenos.
Para contornar este problema, desenvolveu-se a notação científica, na qual 
um quintilhão é representado por 1,0 × 1018, em vez de escrevê-lo por extenso.
A representação de números em ponto flutuante é basicamente a versão bi-
nária da notação científica. A cada número em ponto flutuante estão associados 
três outros números: a mantissa, o expoente e a base.
O número em ponto flutuante é então calculado por:
N = w . β m
Onde:
w pertence ao conjunto dos números racionais;
UNIASSELVI
1
1
TEMA DE APRENDIZAGEM 1
β é base; e
m é o expoente.
Os números em ponto flutuante são inerentemente redundantes, no sentido 
de que um mesmo número pode ser representado de maneiras diferentes. 
Um quintilhão é representado por 1,0 . 1018 ou 0,1 . 1019, ou 100,0 . 1016. É 
desejável que exista uma forma normalizada de representar um número.
Uma mantissa está normalizada quando é constituída somente de uma par-
te fracionária (não existe parte inteira) e quando o primeiro dígito à direita da 
vírgula é diferente de zero. 
Assim, a forma normalizada de representar um quintilhão é dada por 0,1. 1019.
Na base binária, a normalização da mantissa exige que seus dois bits mais 
significativos sejam diferentes.
Para números em base 2, isso implica que o dígito mais significativo da man-
tissa e o bit de sinal sejam diferentes. Para números positivos, a mantissa inicia 
por (0,1)2 e para número negativos, por (1,0)2.
O formato mais recomendado de ponto flutuante seria o do IEEE (Institute of Electrical 
and Electronics Engineers), o IEEE 754.
O bit de sinal é representado no bit mais significativo; os bits seguintes represen-
tam o expoentee os bits menos significativos são destinados à mantissa.
A IEEE define três formatos, conforme a Tabela 2.
SIMPLES
32 BITS
DUPLO
64 BITS
QUÁDRUPLO
128 BITS
Sinal 1 bit 1 bit 1 bit
Expoente 8 bits 11 bits 15 bits
Mantissa 23 bits 52 bits 112 bits
Tabela 2 – Formatos de representação dos números em ponto flutuante no IEEE / Fonte: o autor.
1
8
Números em ponto flutuante, para serem somados ou subtraídos, devem apre-
sentar o mesmo expoente. Neste caso, a soma ou subtração é realizada sobre 
as mantissas. O número resultado é formado com a mantissa resultada e o 
expoente dos operandos.
Passaremos para um exemplo completo de transformação de base 10 para 
base 2 em ponto flutuante do número 25,5.
1. Transformar 25,5 em algo parecido com 1,x . 2y.
25,5 / 2 = 12,75 
12,75 / 2 = 6,375 
6,375 / 2 = 3,1875 
3,1875 / 2 = 1,59375
Logo, 1,59375 . 24
2. Calcular a mantissa baseado na parte fracionária de R1.
Esse processo se dá sempre através de multiplicações sucessivas, até que o resul-
tado seja 0 ou até um máximo de 23 multiplicações. Como R1 = 1,59375, logo, 
sua parte fracionária é 0,59375.
0,59375 × 2 = 1,1875 
0,1875 × 2 = 0,375 
0,375 × 2 = 0,75 
0,75 × 2 = 1,5 
0,5 × 2 = 1,0 
0,0 × 2 = 0,0
Mantissa calculada = 100110. Como a quantidade de bits da mantissa ficou 
inferior à 23, completa-se o final com zeros até formar 23 dígitos. Mantissa final: 
10011000000000000000000.
3. Coletar as informações necessárias para criar a representação binária.
Um exemplo completo de representação seria o número 42,42. Sua representação 
em notação de ponto flutuante na base 2 seria, utilizando 32 bits, com 1 bit para o 
sinal, 8 bits para o expoente e 23 bits para a mantissa:
(42, 42)10 = (101010, 0110101110000101000111)2
0 10000100 01010011010111000010100 (ponto flutuante)
PENSANDO JUNTOS
UNIASSELVI
1
9
TEMA DE APRENDIZAGEM 1
Sinal: Positivo = 0. Se fosse negativo seria 1. Expoente: 4. No entanto, devido ao 
padrão estabelecido pela IEEE para números de ponto flutuante, esse expoente 
deve ser acrescido de 127. Assim: 4 + 127 = 131 = 10000011.
4. Montar a representação binária.
Basta juntar o sinal, o expoente e a mantissa coletados nos passos anteriores, para 
montar o valor de 32 bits que representa o valor inicial. Assim, a representação final é:
01000001110011000000000000000000
VOCÊ SABE RESPONDER?
Segundo a IEEE, o formato simples apresenta quantos bits no sinal, no expoente 
e na mantissa?
NOVOS DESAFIOS
No decorrer deste tema, você teve a oportunidade de aprender sobre a teoria dos 
erros, o sistema de numeração e o ponto flutuante. 
No cálculo numérico, a teoria dos erros apresenta a possibilidade de existir 
erros de modelagem, erros na fase de resolução, erros de arredondamento, erros 
de truncamento e propagação de erros.
No sistema de numeração, a ênfase é a conversão da base 10, usada em nosso 
dia a dia, para a base 2, aplicada na linguagem de máquina.
Com respeito ao ponto flutuante, os números que podem ser representados 
em ponto fixo são insuficientes para a maioria das aplicações científicas, onde 
existe a necessidade de representar números muito grandes e/ou muito pequenos.
Uma situação de aplicação desta teoria na prática seria um número perten-
cente ao intervalo (0; 0,0009765625), que não pode ser representado por um 
computador com 16 bits. Qualquer número intermediário será arredondado 
pelo computador para um dos extremos do intervalo anterior, provocando um 
erro de arredondamento nos cálculos. 
Neste contexto, na vida real, em um trabalho profissional, temos que enten-
der que os computadores e até mesmo calculadoras comuns podem arredondar 
valores dentro do intervalo (0; 0,0009765625).
1
1
1. Qualquer número x pode ser representado numa base β da seguinte forma, modelo ma-
temático:
X x x x xn
n
k� � � � � �( ... ).1
1
2
2
3
3b b b b
b
Neste contexto, esta representação fornece uma informação mais detalhada de um número 
em uma determinada base.
O sistema binário é usado pelos computadores e é constituído de dois dígitos o 0 e o 1. A 
combinação desses dígitos leva o computador a criar várias informações.
Como exemplo, número x pode ser representado numa base 2 da seguinte forma, modelo 
matemático:
77 1001101 1
2
0
2
0
2
1
2
1
2
0
2
1
2
210 2 1 2 3 4 5 6 7
7� � � � � � � � � � �� ( ).
Represente o número (77)10 por meio do modelo matemático número x na base β, sendo 
o β = 2.
2. Todo número natural 𝑛 pode ser representado, de modo único, da seguinte maneira:
n a a b a b a br
r� � � � �0 1 2
2. . ... . , 
r
a M
i r
a
i
r
�
�
�
�
0
0 1 2
0
,
,
, , ,..., ,
.
Os computadores digitais trabalham internamente com dois níveis de tensão, sendo ne-
cessária a utilização do sistema binário. O sistema binário ou de base 2 é um sistema de 
numeração posicional em que todas as quantidades se representam com base em dois 
números, ou seja, zero e um.
Um número n pode, por exemplo, ser representado desta forma na base 2:
AUTOATIVIDADE
1
1
n = 1 + 0.2 + 1.22 + ⋯ + 1.2r.
Represente o número 83 na base 2 na forma n a a b a b a br
r� � � � �0 1 2
2. . ... . , .
3. No contexto dos erros na fase de resolução, há erros que são gerados por uma parada 
abrupta em um processo. Um exemplo clássico é a obtenção do número de Euler ou 
número e.
e
n
n
1
2 3
1 1 1
2
1
3
1
� � � � � � �
�
�
��
�
�
��! !
...
!
...
Como é impossível obter essa soma infinita, considere-se o somatório para um n suficiente-
mente grande, obtendo uma aproximação para o número e, ou seja, e = 2,71828. O número 
e é uma constante matemática que é a base dos logaritmos naturais.
Qual tipo de erro surge quando temos que parar um processo pelo fato de ele ser infinito 
ou muito grande?
a) Arredondamento.
b) Modelagem.
c) Truncamento. 
d) Propagação.
e) Base.
4. Ao longo da história os povos encontraram diversas formas de representar os números. Os 
incas, na América do Sul, por exemplo, conseguiam representá-los através de diferentes 
tipos de nós feitos em cordas, o quipu. E antes disso, na região da Mesopotâmia, os sumérios 
fabricavam pequenos objetos de barro que eram efetivamente seus numerais. Resumindo, 
a mente criativa do homem não se limitou às palavras, nem mesmo esperou o desenvolvi-
mento da escrita, quando precisou encontrar meios para representar os números.
O desenvolvimento de um sistema de numeração eficiente, como é o caso do Sistema de 
Numeração Posicional Decimal, não foi algo que ocorreu rapidamente e, embora estejamos 
habituados com o seu uso, nem sempre os homens dominaram as regras que governam 
seu funcionamento, em especial, o princípio de posição.
Considerando o sistema de base 10, podemos afirmar em relação ao número 2023:
AUTOATIVIDADE
1
1
https://pt.wikipedia.org/wiki/Constante_matem%C3%A1tica
https://pt.wikipedia.org/wiki/Logaritmo_natural
I - O zero está na classe do milhar.
II - O três está na segunda ordem.
III - O número como um todo possui duas classes, unidades simples e milhares.
É correto o que se afirma em:
a) I, apenas.
b) III, apenas.
c) I e II, apenas.
d) II e III, apenas.
e) I, II e III.
5. Nos padrões numéricos do IEEE, o padrão IEEE-754 descreve formatos de ponto flutuante, 
uma maneira de representar números reais no hardware. Este padrão foi adotado em 1985 
e desde então define algumas regras de normalização a serem seguidas nas operações 
e representações de números binários com ponto flutuante. Os principais são: simples, 
duplo e quádruplo.
Segundo o IEEE, o formado duplo apresenta a seguinte distribuição de bits:
a) 32 no geral, com 1 para o sinal, 8 para o expoente e 23 para a mantissa.
b) 64 no geral, com 1 para o sinal, 11 para o expoente e 52 para a mantissa.
c) 64 no geral, com 1 para o sinal, 12 para o expoente e 51 para a mantissa.
d) 128 no geral, com 1 para o sinal, 15 para o expoente e 112 para a mantissa.
e) 128 no geral, com 0 para o sinal, 16 para o expoente e 112 para a mantissa.
AUTOATIVIDADE
1
1
REFERÊNCIAS
COSTA,D. C. B. Cálculo Numérico. Indaial: Uniasselvi, 2011.
1
4
1. 77 1001101 1
2
0
2
0
2
1
2
1
2
0
2
1
2
210 2 1 2 3 4 5 6 7
7� � � � � � � � � � �� ( ).
2. 83 = 41.2 + 1
41 = 20.2 + 1
20 = 10.2 + 0
10 = 5.2 + 0
 5 = 2.2 + 1
 2 = 1.2 + 0
 1 = 0.2 + 1
83 = 1 + 1..2 + 0.22 + 0.23 + 1.24 + 0.25 + 1.26
3. Opção C. Por definição, o erro de truncamento surge quando precisamos parar um processo 
simplesmente pelo fato de ele ser infinito ou muito grande.
4. Opção B. 
I O zero está na classe das unidades simples.
II O três está na primeira ordem.
III O número como um todo possui duas classes, unidades simples e milhares.
5. Opção B. Segundo o IEEE, o correto na distribuição dos bits para o formato duplo seria: 64 
no geral, com 1 para o sinal, 11 para o expoente e 52 para a mantissa.
GABARITO
1
5
MINHAS METAS
LÓGICA PROPOSICIONAL
Introduzir os conceitos fundamentais da lógica proposicional.
Identificar as aplicações da lógica proposicional na matemática e na ciência da 
computação.
Compreender e aplicar os conceitos e símbolos da lógica matemática.
Identificar e diferenciar os conectivos utilizados na lógica matemática.
Construir tabelas-verdade usando os conectivos e suas tabelas específicas.
Construir árvores de refutação e, por meio delas, verificar a validade de argumentos e 
teoremas.
T E M A D E A P R E N D I Z A G E M 2
1
1
INICIE SUA JORNADA
Quando pensamos, a lógica, ou a ilógica, necessariamente, nos acompanham. 
Ao falarmos ou escrevermos, estamos expressando nosso pensamento. Logo 
precisamos usar a lógica nessas atividades. Como devemos proceder no falar ou 
no escrever para não sermos ilógicos?
Podemos perceber a importância da lógica em nossa vida, não somente na 
teoria, como na prática. Quando queremos pensar, falar, escrever ou agir correta-
mente, precisamos colocar ordem no pensamento. Neste sentido, a lógica objetiva a 
criação de uma representação mais formal, que se contrapõe à linguagem natural.
Um exemplo prático e simples de ordem no pensamento seria:
A gaveta está fechada.
A caneta está dentro da gaveta.
Precisamos primeiro abrir a gaveta para depois pegar a caneta.
Um segundo exemplo, já com aplicação em lógica de programação, na construção 
de um algoritmo (sequência de passos a fim de atingir um objetivo) da troca de 
lâmpada, utilizando o português coloquial, seria:
Pegar uma escada.
Posicionar a escada embaixo da lâmpada.
Buscar uma lâmpada nova.
Subir na escada.
Retirar a lâmpada velha.
Colocar a lâmpada nova.
UNIASSELVI
1
1
TEMA DE APRENDIZAGEM 2
Nestes exemplos, você pode observar a necessidade de colocar ordem no pensa-
mento a fim de se chegar a uma solução. 
Agora, observe um exemplo envolvendo falso ou verdadeiro:
O GitHub é a melhor plataforma de versionamento de código (Proposição ver-
dadeira).
1 + 1 = 2 (Proposição verdadeira).
São Paulo é a capital do Brasil (Proposição falsa).
Neste último exemplo, observe que a lógica está preocupada em verificar se é 
falso ou verdadeiro, ou seja, sua validade. 
A lógica matemática não se refere a nenhum ser, a nenhuma coisa ou a algum ob-
jeto em particular, nem a um conteúdo, mas à forma e à correção do pensamento, 
isto é, ela nos ensina a usar corretamente o raciocínio. Desta forma, pensar com 
lógica significa ordenar o pensamento e verificar sua validade.
Neste podcast, você aprenderá sobre a lógica proposicional, dando destaque à 
lógica matemática e ao cálculo proposicional. Recursos de mídia disponíveis no 
conteúdo digital do ambiente virtual de aprendizagem 
PLAY NO CONHECIMENTO
1
8
Na próxima fase, será desenvolvido o tópico conhecendo a lógica matemática, dan-
do destaque em conceitos, simbologias, classificação dos conectivos e formalização.
DESENVOLVA SEU POTENCIAL
CONHECENDO A LÓGICA MATEMÁTICA
A maneira como escrevemos as afirmações matemáticas (lemas, teoremas, pre-
posições, corolários) sempre parte de algumas hipóteses e tudo o que está dito 
depois delas precisa ser provado. Esta estrutura vem da lógica matemática.
Podemos definir a lógica como sendo o estudo dos argumentos e, neste tema, da-
remos início aos conceitos próprios da lógica matemática, bem como sua simbologia.
VAMOS RECORDAR?
Para que você tenha uma visão geral da histórica da lógica, retomando conteúdos 
básicos, focando principalmente na lógica matemática, sugiro a leitura do texto 
Escorço Histórico da Lógica Matemática de Carlos Magno Corrêa Dias. Recursos 
de mídia disponíveis no conteúdo digital do ambiente virtual de aprendizagem 
Lógica de Programação 
Comece sabendo: qualquer iniciante poderá seguir nosso pas-
so a passo sozinho para sair do zero e aprender a pensar com-
putacionalmente, criando algoritmos que na sequência pode-
rão ganhar vida no computador usando a linguagem Python.
Claro, simples, direto e repleto de exemplos graduais, práticos 
e ilustrados com situações cotidianas, aliado a explicações de-
talhadas que descomplicam o aprendizado. Conta ainda com 
grande diversidade de exercícios minuciosamente resolvidos.
Este livro se tornou referência desde a primeira edição e agora 
foi totalmente remodelado e modernizado. Ele mostra o cami-
nho, passo a passo, linha a linha, lado a lado com você para 
implementar sua lógica de programação usando Python.
O livro traz aplicações da lógica matemática na computação.
INDICAÇÃO DE LIVRO
UNIASSELVI
1
9
TEMA DE APRENDIZAGEM 2
ARGUMENTO
Argumento vem do vocábulo latim e deriva da palavra argumentum, que sig-
nifica prova ou razão. Trata-se de uma sequência de enunciados ou proposi-
ções. Um enunciado é a conclusão e os demais são premissas, as quais servem 
para provar a conclusão. Seria o raciocínio que utilizamos para demonstrar ou 
comprovar uma proposição, ou ainda, para convencer outra pessoa daquilo 
que se afirma ou se nega.
Por exemplo:
Argumento: 
Todos os números racionais podem ser expressos como quociente de dois intei-
ros. Contudo, π não pode ser expresso como quociente de dois inteiros. Portanto, 
π não é um número racional. Evidentemente, π é um número. Logo, existe pelo 
menos um número não racional.
 ■ Premissa: todos os números racionais podem ser expressos como quo-
ciente de dois inteiros.
 ■ Premissa: π não pode ser expresso como quociente de dois inteiros.
 ■ Conclusão intermediária das premissas: π não é um número racional.
 ■ Premissa: π é um número.
 ■ Conclusão: existe pelo menos um número não racional.
Os argumentos complexos são formados por etapas. O argumento complexo 
anterior consiste em duas etapas. Os três primeiros enunciados formam a pri-
meira etapa e os três últimos formam a segunda etapa. O terceiro enunciado é 
componente das duas etapas, funcionando como a conclusão da primeira e como 
uma premissa da segunda.
É possível identificar as premissas e a conclusão, através de indicadores 
de inferência. Indicadores de inferência são palavras ou frases utilizadas no 
argumento. Existem os indicadores de premissas e os indicadores de conclusão. 
A seguir, no Quadro 1, listamos alguns exemplos de indicadores:
4
1
INDICADORES DE PREMISSA INDICADORES DE CONCLUSÃO
Pois Portanto
Desde que Por conseguinte
Como Assim
Porque Dessa maneira
Assumindo que Neste caso
Visto que Podemos deduzir que
Admitindo que Logo
Isto é verdade porque De modo que
A razão é que Então
Em vista de Consequentemente
Como consequência de Assim sendo
Como mostrado pelo fato de Segue-se que
Dado que O qual implica que
Sabendo-se que O qual acarreta que
Supondo que O qual prova que
Como foi dito O qual inferimos que
Devido a Resulta em 
Quadro 1 – Indicadores de Premissa e de Conclusão / Fonte: Jenske (2015, p. 5).
UNIASSELVI
4
1
TEMA DE APRENDIZAGEM 2
PROPOSIÇÃO
Conforme vimos anteriormente, argumento é um conjunto de proposições. Assim, 
as premissas e a conclusão de um argumento são proposições. Proposições ou 
enunciados são significados ou ideias expressáveis por sentenças declarativas, onde 
afirmam fatos ou exprimem juízosque formamos a respeito de determinada coisa.
As sentenças declarativas são foco de nosso estudo, pois a elas podemos atri-
buir a propriedade de ser “verdadeira” ou “falsa”. Vejamos alguns exemplos de 
proposições no Quadro 2:
PROPOSIÇÃO VALOR LÓGICO
A lua é um satélite natural da Terra. Verdadeiro
½ é um número natural. Falso
São Paulo é a capital do Brasil. Falso
Janeiro é o primeiro mês do ano. Verdadeiro
Quadro 2 – Proposição X Valor Lógico / Fonte: Jenske (2015, p. 6).
Um argumento pode ter uma ou mais premissas, mas só pode ter uma única 
conclusão.
PENSANDO JUNTOS
Na Língua Portuguesa, temos vários tipos de sentenças: imperativas, exclamativas, 
interrogativas e declarativas. No entanto, apenas as declarativas exprimem propo-
sições, pois podemos atribuir um valor verdadeiro ou falso.
APROFUNDANDO
4
1
Os enunciados a seguir não são preposições, pois não é possível atribuir um valor 
de verdade (verdadeiro/falso).
Traga o livro. Sentença imperativa.
Você gosta de estudar? Sentença interrogativa.
Que lindo! Sentença exclamativa.
O Cálculo Proposicional analisa a relação entre as proposições, considerando a 
forma que essa relação assume e não especificamente o seu conteúdo ou o seu 
significado.
As proposições podem ser substituídas por letras maiúsculas do alfabeto latino: 
A, B, C, ..., Z. 
Por exemplo: Esta é a melhor turma e vocês são os melhores alunos.
Se tomarmos:
R = Esta é a melhor turma.
S = Vocês são os melhores alunos.
Teremos: R e S, a tradução simbólica da proposição.
Uma proposição pode ser simples ou composta. 
Uma proposição é dita simples se, e somente se, contiver uma única afirma-
ção. Exemplos:
M = Maria é estudiosa.
N = Eduardo joga futebol.
P = O número 5 é primo.
Q = Todo número par é divisível por 2.
Uma proposição é dita composta quando for constituída por pelo menos duas 
proposições simples, relacionadas entre si pelo que chamamos de conectivos. 
UNIASSELVI
4
1
TEMA DE APRENDIZAGEM 2
Exemplos:
T = Está frio e choveu hoje.
U = Ele é alto ou baixo.
V = Se Ana chegou atrasada, então ela perdeu o ônibus.
Z = João irá sair hoje se, e somente se, terminar todo o trabalho.
Outros exemplos de argumentos e de proposições podem ser encontrados no 
Google Acadêmico, na obra Introdução à Lógica, de Cézar A. Mortari. Recursos 
de mídia disponíveis no conteúdo digital do ambiente virtual de aprendizagem.
EU INDICO
LÓGICA FORMAL
A lógica está dividida em formal e informal. 
A lógica informal é o estudo de argumentos particulares em linguagem natural e 
do contexto no qual elas ocorrem. Ela se concentra na análise prática dos argumentos.
A lógica formal é o estudo das formas de argumento, onde utiliza modelos 
abstratos comuns a argumentos distintos, mas que apresentam a mesma estru-
tura. Este é o foco dos nossos estudos.
A lógica matemática, na sua versão formal ou clássica, assume como regras 
fundamentais do pensamento válido três princípios básicos.
4
4
 ■ Princípio da Identidade: toda proposição é idêntica a si mesma. Sim-
bolicamente, P é P.
 ■ Princípio da Não Contradição: uma proposição não pode ser verda-
deira e falsa ao mesmo tempo. Simbolicamente, P e não P.
 ■ Princípio do Terceiro Excluído: toda proposição ou é verdadeira ou é 
falsa, não existindo um terceiro valor que ela possa assumir. Simbolica-
mente, P ou não P (ou exclusivo).
O Princípio da Identidade garante que P deve ser igual a P e não pode ser A, ou 
B. Na prática, é dizer que um cachorro é um cachorro e não pode ser um pássaro. 
Este princípio nos garante que tudo tem uma identidade e não podemos pensar 
nada sem sua identidade. Tudo que existe na natureza só pode ser representado 
e percebido pelo pensamento com sua identidade.
O Princípio da Não Contradição garante que o que é, é e não pode ser sua 
negação. Um exemplo disso é que um cachorro é um cachorro e não pode ser um 
não cachorro. Ou seja, ou é um cachorro ou não é. Note que, sem este princípio, 
não há o princípio de identidade.
O Princípio do Terceiro Excluído garante que toda afirmação é verdadeira ou 
é falsa, não existe uma terceira possibilidade. “Ou o aluno é estudioso ou o aluno 
não é estudioso”; “ou este relógio funciona ou não funciona”.
VOCÊ SABE RESPONDER?
Para que seja possível uma análise lógica, é necessário que sejam satisfeitos os 
três princípios da lógica formal?
CLASSIFICAÇÃO DOS CONECTIVOS E FORMALIZAÇÃO
No tema anterior, vimos que os conectivos proposicionais (e; ou; se... então...; se, 
e somente se; não) são utilizados para unir duas ou mais proposições simples, 
formando assim uma proposição composta.
Apresentaremos a seguir os conectivos que, com suas representações sim-
bólicas, serão usados na tradução de proposições para a linguagem simbólica.
UNIASSELVI
4
5
TEMA DE APRENDIZAGEM 2
CONJUNÇÃO
É o resultado da combinação de duas proposições ligadas pelo conectivo e, sim-
bolicamente representado por ∧ ou &. A conjunção também pode ser expressa 
pelas palavras: mas, contudo, embora, visto que, entre outras.
Por exemplo: Ana gosta de Matemática e Maria gosta de Artes.
A = Ana gosta de Matemática.
M = Maria gosta de Artes.
Simbolicamente: 
A M∧ .
DISJUNÇÃO
É o resultado da combinação de duas proposições ligadas pelo conectivo ou, 
simbolicamente representado por V. Na linguagem coloquial, a palavra ou pode 
ser empregada em dois sentidos, inclusivo ou exclusivo, representados simboli-
camente por V e ou, respectivamente.
Observe as seguintes proposições:
A = Ana é alta ou bonita.
B = Bruna é de áries ou de peixes.
Raciocínio Lógico Simplificado (Vol. 1) 
Este primeiro volume disseca, com teorias e questões, os Fun-
damentos de Lógica, a Equivalência Lógica e a Negação de 
Proposições, os Diagramas Lógicos, a Lógica de Argumenta-
ção, a Implicação Lógica, as Verdades e Mentiras, a Associação 
Lógica.
Os autores lançam mão de uma didática particular, marcada 
principalmente pelo uso de cores para alcançar o máximo 
aprendizado do aluno.
Além da teoria, cada capítulo traz questões resolvidas e exercí-
cios propostos com gabarito, para fixação da matéria.
INDICAÇÃO DE LIVRO
4
1
Na proposição A, pode ocorrer que Ana seja alta e bonita, neste caso, trata-se do 
ou inclusivo, isto é, pode ocorrer se as duas proposições sejam verdadeiras. Já na 
proposição B, Bruna não pode ser de áries e de peixes ao mesmo tempo. Ou Bruna 
é de áries ou ela é de peixes. Trata-se do ou exclusivo, ou a primeira proposição é 
verdadeira ou a segunda é verdadeira.
Por exemplo: Ana gosta de Matemática ou de Artes.
A = Ana gosta de Matemática.
M = Ana gosta de Artes.
Simbolicamente: A V M (ou inclusivo).
ZOOM NO CONHECIMENTO
Quando a disjunção V é empregada no sentido inclusivo, P V Q, o argumento é 
válido se:
(i) apenas P for verdadeiro.
(ii) apenas Q for verdadeiro.
(iii) P e Q forem ambos verdadeiros.
Isto é importante para diferenciar da disjunção exclusiva, P V Q, onde pode ocorrer 
apenas a situação (i) apenas P for verdadeiro ou a situação (ii) apenas Q for verda-
deiro, mas não pode ocorrer a situação (iii). A disjunção exclusiva ocorre na forma 
“Ou ... ou”, por exemplo “ou é dia ou é noite.
APROFUNDANDO
UNIASSELVI
4
1
TEMA DE APRENDIZAGEM 2
CONDICIONAL
Duas proposições formam uma condicional quando forem colocadas no seguinte 
modelo:
Se (proposição 1), então (proposição 2).
O símbolo utilizado para ligar as duas proposições de uma condicional é →.
Por exemplo: Se todos os homens são mortais e Sócrates é um homem, então 
Sócrates é mortal.
H = Todos os homens são mortais.
S = Sócrates é um homem.
M = Sócrates é mortal.
Simbolicamente: ( )HV S M → .
BICONDICIONAL
Utilizamos o conectivo bicondicional em toda proposição composta, formada 
por duas proposições, que pode ser colocada na forma:
(proposição 1) se, e somente se, (proposição 2)
O símbolo que representa o conectivo bicondicional é ↔.
Por exemplo: Um número é dito par, se e somente se, for divisível por dois.
Condicionais implícitas: 
(i) Se um número é ditopar, então é divisível por dois. 
(ii) Se o número é divisível por dois, então ele é par.
P = Um número par.
D = Divisível por dois.
Simbolicamente: P D ↔ .
Note que a proposição bicondicional pode ser entendida como uma conjunção de 
dois condicionais, ou seja, dado A B ↔ , temos A B → e B A → .
PENSANDO JUNTOS
4
8
NEGAÇÃO
Este conectivo nega a afirmação da proposição que o precede. Este é um conecti-
vo unário, pois diferente dos conectivos binários, ele não liga duas proposições. 
O símbolo utilizado para esse conectivo é ~, ele é colocado antes da letra que 
representa a proposição. 
Por exemplo: Fernanda não gosta de cachorros.
F = Fernanda gosta de cachorros.
Simbolicamente: ~ F.
FORMALIZAÇÃO
O processo de formalização consiste em converter uma sentença ou argumen-
to em particular em uma forma sentencial composta de letras proposicionais, 
conectivos lógicos e parênteses. Os conjuntos de símbolos utilizados nestas es-
truturas são:
Letras proposicionais são letras maiúsculas do alfabeto, como: A, B, C, D, E, ..., Z.
Conectivos proposicionais: ~, ∧ , V, →, ↔
Parênteses: ( ).
Por exemplo: Três não é um número par, mas é um número primo.
P: Três é um número par.
Q: Três é um número primo.
Simbolicamente: ~ � P Q∧ .
Os símbolos da lógica formal expõem com maior clareza as estruturas lógicas de 
proposições e argumentos, que muitas vezes ficam obscuros na linguagem comum.
PENSANDO JUNTOS
UNIASSELVI
4
9
TEMA DE APRENDIZAGEM 2
REGRAS DE FORMALIZAÇÃO
Qualquer sequência composta por elementos do vocabulário do cálculo propo-
sicional constitui uma fórmula. No entanto, nem toda fórmula é aceita pelo cál-
culo proposicional. Para ser aceita, ela precisa ser uma fórmula bem formada, 
conhecida como fbf.
Para se obter fbfs é preciso que a sequência formada siga as seguintes regras 
de formação:
1. Qualquer letra proposicional isolada é uma fbf.
2.Se j é uma fbf, então ~j também é uma fbf.
3.Se j e d são fbfs, então (ϕ δ∧ � ), (ϕ δ∨ ), (ϕ δ→ ) e (j j↔ � ) também são 
fbfs.
Por exemplo: (R P Q � �~ �( ) ) é uma fbf, pois:
Construção Justificativa
P regra 1
Q regra 1
(P ∧ Q) regra 3
~ (P ∧ Q) regra 2
R regra 1
R P Q � �~ �( ) regra 3
Duas destas regras empregam letras gregas. Note que as letras gregas não são 
elementos do vocabulário e, portanto, não devem ser empregadas ao se escrever 
uma fbf. Cada letra grega serve apenas, na regra, para representar uma fbf qual-
quer. As letras utilizadas são o delta (d ), phi (j ) e o psi ( Y ).
APROFUNDANDO
5
1
Para finalizar o tópico de lógica matemática, você pode memorizar o resumo do 
Quadro 3, que irá lhe ajudar em muito nos próximos tópicos.
CONECTIVO SÍMBOLO LÊ-SE
Conjunção ∧ ... e ...
Disjunção
∨ ... ou ...
ou ou ou ... ou ...
Condicional → se ... então ...
Bicondicional ↔ ... se e somente se ...
Negação ~ não (é o caso de ...)
Quadro 3 – Conectivos utilizados na Lógica Proposicional / Fonte: Jenske (2015, p. 23).
Enigmas de Um Crime 
A história se passa na faculdade de Oxford, e reúne um es-
tudante americano e um professor de lógica da universidade 
inglesa. Eles tentam solucionar uma série de crimes relaciona-
dos a símbolos matemáticos.
Para isso, utilizam técnicas de estratégia e raciocínio calcadas 
na matemática, como em uma solução de problemas. Além 
disso, empregam técnicas que o escritor Arthur Conan Doyle 
descreve em seus livros de Sherlock Holmes.
INDICAÇÃO DE FILME
UNIASSELVI
5
1
TEMA DE APRENDIZAGEM 2
Na próxima fase, será desenvolvido o cálculo proposicional, dando 
ênfase a tabelas-verdade e árvores de refutação.
CÁLCULO PROPOSICIONAL
TABELAS-VERDADE
Anteriormente, tratamos a lógica proposicional do ponto de vista 
sintático. Nos próximos, temas abordaremos dois testes sistemáti-
cos, tabela-verdade e árvore de refutação, que interpretam os ope-
radores da lógica proposicional, permitindo dar valor de verdade 
a um argumento.
O conceito central da semântica da lógica proposicional é o 
valor de verdade. O enunciado verdadeiro tem valor de verdade 
V e o enunciado falso tem o valor de verdade F, respectivamente, 
verdadeiro e falso.
As tabelas-verdade, ou tabelas de valores de verdade, mos-
tram o valor da verdade de uma proposição composta para cada 
combinação de valores de verdade que se pode atribuir aos seus 
componentes.
A seguir, estudaremos como analisar o valor de verdade de uma 
proposição na forma de uma tabela-verdade.
Lógica sem Dúvidas: desmistificando o racicínio lógico 
O livro é didático e contextualizado, mantendo o rigor forma, 
dos principais conceitos da lógica clássica, como proposição, 
tabela-verdade, lógica de argumentação, dentre outros. 
É uma excelente ferramenta para questões que venham a apa-
recer em seu cotidiano, sejam elas pessoais ou profissionais. 
Sempre, a teoria vem acompanhada de exercícios para o leitor 
fixar exercitar os conceitos
INDICAÇÃO DE LIVRO
5
1
LINHAS NA TABELA-VERDADE
Vamos pensar em uma proposição qualquer P, por exemplo: Isto é um compu-
tador. Esta proposição pode ser verdadeira ou falsa. Logo, isto é um computador 
(V) ou não (F). Podemos organizar esse pensamento em uma tabela, a qual cha-
mamos de tabela-verdade. Observe o Quadro 4.
P
1 V
2 F
Quadro 4 – Tabela-verdade com uma proposição / Fonte: o autor.
Agora, vamos pensar em uma proposição composta, P e Q, onde P representa 
“hoje é sábado” e Q “o dia está ensolarado”. 
Perceba que hoje pode ser sábado (V) e pode estar um dia ensolarado (V), 
mas também pode ser que hoje seja sábado (V) e que não esteja ensolarado (F). 
Também pode ser que hoje não seja sábado (F) e que o dia esteja ensolarado (V). 
Por fim, pode ser que hoje não seja sábado (F) e que o dia não esteja ensolarado 
(F). Representando isso na tabela-verdade, temos o Quadro 5.
P Q
1 V V
2 V F
3 F V
4 F F
Quadro 5 – Tabela-verdade com duas proposições / Fonte: o autor.
UNIASSELVI
5
1
TEMA DE APRENDIZAGEM 2
O valor lógico de qualquer proposição composta é determinado pelos valores lógicos 
das proposições simples que a constituem e pela operação do conectivo envolvido.
Já em uma proposição composta por três proposições simples, teremos um 
número de possibilidades maior. Observe o Quadro 6.
P Q R
1 V V V
2 V V F
3 V F V
4 V F F
5 F V V
6 F V F
7 F F V
8 F F F
Quadro 6 – Tabela-verdade com três proposições / Fonte: o autor.
O número de linhas de uma tabela para representar uma proposição composta 
por quatro proposições simples será definido por 2n
, onde n representa o nú-
mero de proposições.
VOCÊ SABE RESPONDER?
Quantos linhas de verdadeiro e falso terá uma tabela-verdade com quatro 
proposições?
5
4
OPERAÇÕES LÓGICAS DAS PROPOSIÇÕES
A semântica de cada operador lógico também pode ser expressa 
na forma de tabela-verdade, onde os valores-verdade das propo-
sições compostas que têm o operador lógico como seu operador 
principal são determinados através do valor lógico dos operan-
dos a que se aplicam. A seguir, vamos analisá-los um a um.
NEGAÇÃO (~)
Dada uma proposição P, onde P: hoje é sábado, podemos formar 
uma proposição negando P, ~P: não é verdade que hoje é sábado 
ou, simplesmente, hoje não é sábado.
Na tabela-verdade, a negação inverte o valor de verdade da 
proposição, isto é, se P for verdadeiro, então ~P será falso e se P 
for falso, então ~P será verdadeiro. Veja o Quadro 7.
P ~P
1 V F
2 F V
Quadro 7 – Tabela-verdade para a negação / Fonte: o autor.
CONJUNÇÃO ( ∧ , &)
A conjunção de duas proposições simples, P ∧ Q, somente será 
verdadeira se P e Q forem ambas verdadeiras. Se uma das propo-
sições (ou ambas) for falsa, a proposição composta P ∧ Q será 
considerada falsa. Veja o Quadro 8.
UNIASSELVI
5
5
TEMA DE APRENDIZAGEM 2
P Q P ∧ Q
1 V V V
2 V F F
3 F V F
4 F F F
Quadro 8 – Tabela-verdade para a conjunção / Fonte: o autor.
DISJUNÇÃO INCLUSIVA (V)
A disjunção inclusiva de duas proposições P e Q é a proposição composta P V Q, 
que é falsa quando os valores lógicos das proposições(P, Q) forem ambos falsos, 
e verdadeira nas demais possibilidades de valor de verdade. Veja a Quadro 9.
P Q P V Q
1 V V V
2 V F V
3 F V V
4 F F F
Quadro 9 – Tabela-verdade para a disjunção inclusiva / Fonte: o autor.
DISJUNÇÃO EXCLUSIVA (OU OU)
A disjunção exclusiva de duas proposições P e Q é a proposição composta P OU 
OU Q, que é verdadeira quando os valores lógicos das proposições (P, Q) forem 
diferentes, e falsa quando P e Q forem ambas falsas ou ambas verdadeiras. 
5
1
Lembre-se de que a disjunção exclusiva, como a própria denominação carac-
teriza, exclui uma das duas possibilidades: ambas sejam verdadeiras ou ambas as 
falsas, nunca as duas são verdadeiras ou falsas. Veja o Quadro 10.
P Q P OU OU Q
1 V V F
2 V F V
3 F V V
4 F F F
Quadro 10 – Tabela-verdade para a disjunção exclusiva / Fonte: o autor.
VOCÊ SABE RESPONDER?
Para se obter um valor verdadeiro na conjunção ∧ , quais devem ser os valores de 
duas proposições?
UNIASSELVI
5
1
TEMA DE APRENDIZAGEM 2
CONDICIONAL ( → )
Vimos que quando duas proposições são conectadas com a palavra se antes da 
primeira inserção e da palavra então antes da segunda inserção, a proposição 
formada é condicional.
A proposição P → Q pode ser interpretada de duas maneiras:
(i) P é condição suficiente para Q.
(ii) Q é a condição necessária para P.
A condicional de duas proposições P e Q possui valor de verdade falso quando 
o antecedente é verdadeiro e a concedente é falsa, nos demais casos é sempre 
verdadeiro. Veja o Quadro 11.
P Q P → Q
1 V V V
2 V F F
3 F V V
4 F F V
Quadro 11 – Tabela-verdade para condicional / Fonte: o autor.
BICONDICIONAL (↔)
Estudamos o bicondicional, proposição esta representada por P se, e somente 
se, Q, cujo valor lógico é verdade (V) quando P e Q são ambos verdadeiros ou 
ambos falsos e o valor lógico é falso (F) quando P e Q têm valores lógicos dife-
rentes. Veja a Quadro 12.
A proposição P Q↔ pode ser interpretada de duas maneiras:
5
8
(i) P é condição necessária e suficiente para Q.
(ii) Q é a condição necessária e suficiente para P.
P Q P ↔ Q
1 V V V
2 V F F
3 F V F
4 F F V
Quadro 12 – Tabela-verdade para bicondicional / Fonte: o autor.
Para verificar a validade de argumentos utilizando a tabela-verdade, você irá 
sempre consultar os valores-verdade de cada operador lógico. Para facilitar esta 
consulta, as reunimos em uma tabela única:
P Q P ∧ Q P V Q P OU OU Q P → Q P ↔ Q
1 V V V V F V V
2 V F F V V F F
3 F V F V V V F
4 F F F F F V V
Quadro 10 – Tabela-verdade resumo / Fonte: o autor.
UNIASSELVI
5
9
TEMA DE APRENDIZAGEM 2
CONSTRUINDO TABELAS-VERDADE
Para construir uma tabela-verdade para uma fbf complexa, determinamos os 
valores-verdade para suas fbfs e então utilizamos as tabelas-verdade para os ope-
radores lógicos, a fim de calcular os valores para as subfbfs cada vez maiores, até 
obtermos os valores para a fórmula toda.
Por exemplo, na proposição ( ) ( )~ �P Q P Q� �� , no Quadro 11, faça as com-
binações da esquerda para a direita, seguindo o Quadro 10.
P Q P Q∨ ( )�P Q∧ ~ �( )P Q∧ ( ) ( )�~ �P Q P Q � � � 
1 V V V V F F
2 V F V F V V
3 F V V F V V
4 F F F F V F
Quadro 11 – Tabela-verdade resolvida de ( ) ( )�~ �P Q P Q � � � / Fonte: o autor.
TAUTOLOGIAS, INCONSISTÊNCIAS E CONTIGÊNCIAS
Qualquer fórmula cuja tabela-verdade contém somente F sob seu operador prin-
cipal é denominada inconsistente. Fórmulas que apresentam ao menos um va-
lor V e ao menos um valor F, são chamadas de contingentes. Se uma fórmula 
A ordem de resolução dos conectivos é: ~, , , ,� � � não havendo ne-
nhum parêntese; quando houver parênteses, segue-se a mesma ordem dentro 
dos parênteses.
APROFUNDANDO
1
1
apresenta em sua tabela-verdade somente V sob seu operador principal, ela é 
chamada de tautologia. Veja o Quadro 12 para um exemplo de tautologia em 
~ ~( )P P∧ .
P ~P P P∧ ~ ~ ~( )P P∧
1 V F F V
2 F V F V
Quadro 12 – Tabela-verdade resolvida de ~ ~( )P P∧ . / Fonte: o autor.
EQUIVALÊNCIAS
As equivalências podem também ser provadas utilizando tabelas-verdade. Veja 
como o processo é simples. Vamos construir a tabela-verdade da equivalência 
no Quadro 13:
( ( )) (( ) ( ))� � � .P Q R P Q P R� � � � ��
UNIASSELVI
1
1
TEMA DE APRENDIZAGEM 2
P
Q
R
Q
R
∨
 
(
)
P
Q
R
�
�
�
�
(
)
P
Q
∧
 
(
)
P
R
∧
 (
(
)
(
))
�
�
P
Q
P
R
�
�
�
 
(
(
))
((
)
(
))
�
�
P
Q
R
P
Q
P
R
�
�
�
�
�
�
 
 
1
V
V
V
V
V
V
V
V
V
2
V
V
F
V
V
V
F
V
V
3
V
F
V
V
V
F
V
V
V
4
V
F
F
F
F
F
F
F
V
5
F
V
V
V
F
F
F
F
V
6
F
V
F
V
F
F
F
F
V
7
F
F
V
V
F
F
F
F
V
8
F
F
F
F
F
F
F
F
V
Q
ua
dr
o 
1
3
 – 
Ta
be
la
-v
er
da
de
 re
so
lv
id
a 
de
 (
(
))
((
)
(
))
P
Q
R
P
Q
P
R
 /
 F
on
te
: o
 a
ut
or
.
1
1
Observe que a coluna do (P ∧ (Q ∨ R)) e ((P ∧ Q) ∨ (P ∧ R) deram iguais, ou seja, 
ambas V ou ambas F, por isso são equivalentes.
ÁRVORES DE REFUTAÇÃO
Vimos que o uso de tabela-verdade nos fornece um teste rigoroso e completo para 
a validade ou invalidade de formas de um argumento da lógica proposicional, 
mas que são ineficazes em problemas que envolvem muitas letras proposicionais, 
pois o número de linhas cresce na ordem 2n.
Desta forma, as árvores de refutação fornecem um algoritmo mais eficaz 
para verificar a validade ou a invalidade de argumentos comparados às tabelas-
-verdade. Elas constituem uma forma gráfica da forma normal disjuntiva de um 
argumento refutado.
Neste tema, estudaremos como se constituem as árvores de refutação, suas regras 
e como analisar a validade ou invalidade de argumentos através deste algoritmo.
Introdução a Lógica Matemática 
Esta obra foi escrita por docentes da Academia da Força Aérea 
(AFA), responsáveis pela disciplina Lógica Matemática e tem por 
objetivo dar ao leitor o fundamento introdutório necessário para 
o estudo aprofundado da Lógica e suas aplicações, além de 
suprir uma deficiência bibliográfica de textos mais acessíveis e 
didáticos. Para tanto, este livro é composto de uma parte inicial, 
em que o Cálculo Proposicional é apresentado com conectivos, 
tabelas-verdade, tautologias mais relevantes, formalização de 
argumentos e prova de sua validade ou invalidade. Na segun-
da parte, é apresentado o Cálculo de Predicados com a prova 
de validade de argumentos usando o quantificador universal 
e o existencial. Em cada capítulo, o conteúdo é ilustrado com 
exemplos esclarecedores, seguidos por exercícios resolvidos.
INDICAÇÃO DE LIVRO
UNIASSELVI
1
1
TEMA DE APRENDIZAGEM 2
CONSTRUINDO ÁRVORES DE REFUTAÇÃO
Em uma definição mais formal, uma árvore é um conjunto de nós ou vértices liga-
dos por arestas ou ramos, conforme podemos verificar na Figura 3 a seguir. Os nós 
estão rotulados por números inteiros e os nós finais são denominados de folhas.
Folhas
Raiz
Nós2
1
3
4 5
9
876
Figura 3 – Composição de uma Árvore / Fonte: Jenske (2015, p. 91).
Descrição da Imagem: a figura apresenta o número 1 como nó ou vértice raiz, os números 3, 4 e 5 como nós e 
os números 2, 6, 7, 8 e 9 como nós finais ou folhas. Os nós são ligados entre si por segmentos de reta ou arestas 
ou ramos.Fim da descrição.
Já uma árvore de refutação é uma árvore na qual os vértices internos representam 
proposições, as arestas representam os valores lógicos de uma proposição e as 
folhas representam os resultados finais e que servem para determinar a validade 
de uma fórmula (ou proposição) a partir da estrutura de dados do tipo árvore. 
Para testar a validade de uma forma de argumento utilizando uma árvore de 
refutação, constrói-se uma lista consistindo em suas premissas e na negação de 
sua conclusão. 
Depois, desmembramos as fbfs da lista em letras proposicionais ou sua negação. 
Se encontrarmos atribuições de verdade e falsidade para as letras proposicionais 
1
4
Para compreender melhor, acompanhe o processo do algoritmo para a se-
guinte forma de argumento:
P Q P� ~~∧ 
que tornem verdadeiras todas as fbfs da lista, então, as premissassão verdadeiras, 
enquanto sua conclusão é falsa. Nesse caso, refutamos a forma de argumento, pois 
ela é inválida. 
Se na busca não surgir atribuição de verdade e falsidade para as letras proposicionais 
que tornem verdadeiras todas as fbfs da lista, então, a refutação é falha, ou seja, a 
forma de argumento é válida.
Na formalização da Lógica Matemática, a vírgula separa as premissas e o símbolo 
⊢ significa “implica”, isto é, indica a conclusão do argumento.
APROFUNDANDO
Passo 1: liste a(s) premissa(s).
P ∧ Q
Passo 2: abaixo da(s) premissa(s), liste a negação da conclusão.
P ∧ Q
~~~P
Passo 3: a desmembração da raiz consiste em escolher uma das fórmulas e subs-
tituir quando possível por sua razão lógica. Neste exemplo, começaremos pela 
premissa, mas poderíamos começar pela conclusão. A premissa é verdadeira se, 
e somente se, P e Q forem verdadeiras. Então, podemos substituir P ∧ Q por 
essas duas letras proposicionais. Mostraremos isso empilhando (uma em cima 
da outra) P e Q no final da lista e ticamos a fórmula P ∧ Q para indicar que a 
eliminamos. Uma fórmula ticada está eliminada da lista.
Figura 4 – Primeiro Empilhamento e Substituição em uma Árvore / Fonte: Jenske (2015, p. 92).
UNIASSELVI
1
5
TEMA DE APRENDIZAGEM 2
Passo 4: ~~~P é verdadeira se, e somente se, ~P é verdadeira (dupla negação). 
Portanto, podemos ticar ~~~P e substituí-la por ~P, conforme a Figura 5.
Descrição da Imagem: a figura apresenta o terceiro passo na construção de árvores de refutação. Substitui a 
forma P ∧ Q pelo empilhamento P e Q. Fim da descrição.
Figura 5 – Segundo Empilhamento e Substituição em uma Árvore / Fonte: Jenske (2015, p. 93).
Descrição da Imagem: a figura apresenta o quarto passo na construção de árvores de refutação. Substitui a 
forma ~~~P pelo empilhamento ~P. Fim da descrição.
Passo 5: “A árvore terminou de crescer”, pois todas as fórmulas foram desmem-
bradas em uma lista de letras proposicionais ou de suas negações, as quais devem 
ser verdadeiras se todos os membros da lista original são verdadeiros. 
Um galho para de desmembrar quando encontramos acima dele sua propo-
sição contrária, ou quando não temos mais fórmulas para ticar. Neste exemplo, 
entre as letras proposicionais e suas negações, temos ~P e, acima dele, P, as quais 
não podem ser ambas verdadeiras. Logo, é impossível que todas as fórmulas desta 
última lista sejam verdadeiras. Expressamos isso escrevendo um X no final da 
lista, indicando que o galho não crescerá mais, Figura 6.
X
proposição contrário
fechamento do galho
Figura 6 – Fechamento do galho da Ár-
vore / Fonte: Jenske (2015, p. 93).
Descrição da Imagem: a figura 
apresenta o quinto passo na cons-
trução de árvores de refutação. O X 
representa o fechamento do galho 
da árvore. Fim da descrição.
1
1
Assim, a árvore de refutação está completa e nossa busca por uma refutação da 
forma de argumento falhou. Portanto, essa forma é válida.
Perceba que, quando negamos a conclusão, estamos refutando o argumento. As-
sim, quando entre as letras proposicionais e suas negações temos apenas verda-
de, isso indica que nossa refutação está correta, ou seja, a negação da conclusão 
é verdadeira e, portanto, o argumento é inválido. Agora, se tivermos entre as letras 
proposicionais e suas negações verdades e falsidade, então nosso esforço em re-
futar a conclusão falhou e o argumento é válido.
PENSANDO JUNTOS
A seguir, vamos sistematizar a ação que devemos ter em cada um dos conectivos 
proposicionais.
CONECTIVOS PROPOSICIONAIS NAS ÁRVORES DE REFUTAÇÃO
Vimos que uma árvore de refutação é uma análise na qual uma lista de enun-
ciados é desmembrada em letras proposicionais ou em suas negações, que 
mostram as condições nas quais os membros da lista inicial podem ser verda-
deiros. As condições para que um enunciado possa ser verdadeiro dependem 
dos operadores lógicos que ele contém, ou seja, dos conectivos proposicionais. 
Cada operador lógico possui uma forma diferente de ser desmembrado e são 
essas formas que veremos agora.
Para explicar como se comporta cada um dos dez operadores lógicos (ne-
gação, conjunção, disjunção, condicional, bicondicional, bem como a negação 
de cada um deles), inicialmente, precisamos definir o conceito de ramo aberto 
e fechado. Um ramo aberto é aquele que não termina com um X. Já os ramos 
que terminam com um X são denominados de ramos fechados.
UNIASSELVI
1
1
TEMA DE APRENDIZAGEM 2
NEGAÇÃO (~)
Se um ramo aberto contém uma fórmula e sua negação, colocamos um X no final do 
ramo.
A ideia é que qualquer ramo que contém uma fórmula e sua negação não é um ramo 
em que todas as fórmulas podem ser verdadeiras, que é o objetivo ao se construir 
uma árvore de refutação. Desta forma, podemos fechar esse ramo como uma tentativa 
falha de refutação.
j
j~
X
NEGAÇÃO NEGADA OU DUPLA NEGAÇÃO (~~)
Se um ramo aberto contém uma fbf não ticada da forma ~~ j , ticamos ~~ j e 
escrevemos j no final de cada ramo aberto que contém ~~ j ticada.
~~ j
j
CONJUNÇÃO (⋀, &)
Se um ramo aberto contém uma fbf não ticada da forma j ∧ �Y , ticamos ⊢ ∧ ⊢ e 
escrevemos j e Y no final de cada ramo aberto que contém j ∧ �Y ticada.
ϕ ψ
ϕ
ψ
∧
1
8
CONJUNÇÃO NEGADA (~ ∧ , ~&)
Se um ramo aberto contém uma fbf não ticada da forma ~ ( �)j ∧Y , ticamos 
~ ( �)j ∧Y e bifurcamos o final de cada ramo aberto que contém ~ ( �)j ∧Y 
ticada, onde no final do primeiro ramo escrevemos ~ j e no final do segundo ramo 
escrevemos ~ Y .
~ ( �)j ∧Y
 ~ j ~ Y
DISJUNÇÃO (V)
Se um ramo aberto contém uma fbf não ticada da forma j�� �Y , ticamos 
j�� �Y e bifurcamos o final de cada ramo aberto que contém j�� �Y ticada, 
onde no final do primeiro ramo escrevemos j e no final do segundo ramo 
escrevemos Y .
j∨ �Y
 j Y
DISJUNÇÃO NEGADA (~V)
Se um ramo aberto contém uma fbf não ticada da forma ~ j�� �Y , ticamos 
~ j�� �Y e escrevemos ~ j e ~ Y no final de cada ramo aberto que contém 
~ j�� �Y
.
~
~
~
j
j
�� �Y
Y
UNIASSELVI
1
9
TEMA DE APRENDIZAGEM 2
CONDICIONAL (→)
Se um ramo aberto contém uma fbf não ticada da forma j�� �Y , ticamos 
j�� �Y e bifurcamos o final de cada ramo aberto que contém j�� �Y ticada, 
onde no final do primeiro ramo escrevemos ~ j e no final do segundo ramo escreve-
mos Y .
j�� �Y
 ~ j Y
CONDICIONAL NEGADA (~ →)
Se um ramo aberto contém uma fbf não ticada da forma ~ j�� �Y , ticamos 
~ j�� �Y e escrevemos j e ~ Y no final de cada ramo aberto que contém 
~ j�� �Y ticada. ~
~
j
j
�� �Y
Y
 
BICONDICIONAL (↔)
Se um ramo aberto contém uma fbf não ticada da forma j�� �Y , ticamos 
j�� �Y e bifurcamos o final de cada ramo aberto que contém j�� �Y ticada, 
onde no final do primeiro ramo escrevemos j e Y e, no final do segundo ramo 
escrevemos ~ j e ~ Y .
j�� �Y
 j ~ j
 Y ~ Y
1
1
BICONDICIONAL NEGADA (~ ↔)
Se um ramo aberto contém uma fbf não ticada da forma ~ j�� �Y , ticamos 
~ j�� �Y e bifurcamos o final de cada ramo aberto que contém ~ j�� �Y 
ticada, onde no final do primeiro ramo escrevemos j e ~ Y e, no final do segundo 
ramo escrevemos ~ j e Y .
~ j�� �Y
 j ~ j
~ Y ~ Y
- Um ramo termina se ele se fecha ou se as fbfs não ticadas que ele contém se-
jamo letras proposicionais ou suas negações, tal que nenhuma regra se aplica às 
suas fórmulas. 
- Assim, uma árvore está completa se todos os seus ramos terminam.
- Quando uma árvore termina, podemos avaliar a validade ou invalidade da forma 
de argumento. 
- Um argumento é válido quando todos os ramos de uma árvore completa estão 
fechados; e a forma de argumento é inválida quando algum ramo de uma árvore 
completa estiver aberto.
APROFUNDANDO
Observe o exemplo ( )� .P Q R� � A Figura 7 apresenta três etapas.
Figura 7 – Resolução de ( )�P Q R� � por meio da árvore de refutação / Fonte: Jenske (2015, p. 100). 
Descrição da Imagem: a figura apresenta três etapas de resolução, da esquerda para a direita, até o término dos 
galhos da árvore. Fim da descrição.UNIASSELVI
1
1
TEMA DE APRENDIZAGEM 2
Neste caso, não houve fechamento e a forma é inválida.
Para finalizarmos este tópico, colocamos um resumo, no Quadro 14, que repre-
senta os operadores lógicos estudados nos itens anteriores. 
OPERADOR LÓGICO FÓRMULA REGRA EXEMPLO
NEGAÇÃO NEGADA OU 
DUPLA NEGAÇÃO ~~ j EMPILHA
~~ j
j
CONJUNÇÃO
j �∧Y
ou
j&Y
EMPILHA
j
j
�
�
∧Y
Y
CONJUNÇÃO NEGADA
~ �( )j∧Y 
ou
~ &( )j Y
BIFURCA
~ �( )
~ ~
j
j
∧Y
Y
DISJUNÇÃO j �∨Y BIFURCA j �∨Y j Y
DISJUNÇÃO NEGADA ~ ( )j∨ Y EMPILHA
~ ( )
~
~
j
j
j
∨ Y
CONDICIONAL j → Y BIFURCA
j → Y
~ j Y
1
1
CONDICIONAL NEGADA ~ ( )j → Y EMPILHA
~
~
( )j j∨ Y
Y
 
BICONDICIONAL j ↔ Y EMPILHA 
BIFURCA
j ↔ Y j 
~ j
 Y ~ Y
BICONDICIONAL NEGADO ~ ( )j ↔ Y EMPILHA 
BIFURCA
~ ( )j ↔ Y 
 ~ j j
 Y ~ Y
Quadro 14 – Resumo dos operadores lógicos / Fonte: Jenske (2015, p. 103-104).
Você pode confirmar o resultado dos exemplos anteriores construindo tabelas-
-verdade para as respectivas formas de argumento.
PENSANDO JUNTOS
Quebrando a Banca 
Quebrando a Banca conta a história de Ben, um garoto inteli-
gente que ganha uma bolsa de estudos na aclamada Univer-
sidade de Harvard.
Com uma facilidade imensa para contas e um raciocínio lógico 
apurado, Ben é convidado por seu professor Micky para parti-
cipar de um grupo de estudantes brilhantes que vai para Las 
Vegas jogar 21.
Aplicando conceitos de estatística e probabilidades, os jovens 
e o professor começam a fazer um dinheiro nos cassinos, dan-
do início a uma trama emocionante. 
INDICAÇÃO DE FILME
UNIASSELVI
1
1
TEMA DE APRENDIZAGEM 2
NOVOS DESAFIOS 
No decorrer deste tema, no primeiro momento, você teve a oportunidade de 
aprender sobre a lógica matemática, com destaque em conceitos, simbologias, 
classificação dos conectivos e formalização.
No segundo momento, você aprendeu cálculo proposicional, dando ênfase 
a tabelas-verdade e árvores de refutação.
Na área de computação, principalmente em linguagens de programação, 
como linguagem C e Python, as tabelas-verdade são de suma importância.
As tabelas-verdade fornecem um teste rigoroso e completo para a validade ou 
invalidade de formas de um argumento da lógica proposicional. Elas constituem 
um algoritmo que sempre dá uma resposta após um número finito de operações. 
Um exemplo comum a todas as linguagens de programação, aplicando a teo-
ria deste tema, assimilado na prática de programação e os valores lógicos envol-
vidos em uma expressão lógica, seria (FORBELLONE; EBERSPACHER, 2005):
F ou 20 div (18/3) <> (21/3) div 2 
F ou 20 div 6 <> 7 div 2 (nesta divisão temos apenas a parte inteira)
F ou 3 <> 3 (<> significa diferente de)
F ou F 
F
Neste contexto, podemos ver uma aplicação real e simples para os iniciantes em 
programação. 
Acesse e confira a aula referente a este tema. Recursos de mídia disponíveis no 
conteúdo digital no ambiente virtual de aprendizagem 
EM FOCO
1
4
1. Uma das aplicações das tabelas-verdade é na linguagem de programação, nas expres-
sões lógicas. As operações de negação, de conjunção e disjunção são muito utilizadas. No 
exemplo a seguir, foi utilizado o operador de conjunção.
2 < 5 e 15/3 = 5
V e 5 = 5
V = V
V
Nesta aplicação, basta lembrar a tabela-verdade da conjunção:
P Q P ⋀ Q
1 V V V
2 V F F
3 F V F
4 F F F
Desenvolva a expressão lógica a seguir e verifique se é V ou F.
-3 > 0 e 50/5 = 11
2. Uma das aplicações das tabelas-verdade é na linguagem de programação, nas expres-
sões lógicas. As operações de negação, de conjunção e disjunção são muito utilizadas. 
No exemplo a seguir, foi utilizado o operador de disjunção inclusiva. Considere div como 
“divisão”, como resultado a parte inteira. Também considere <> como sendo “diferente de”.
AUTOATIVIDADE
1
5
Não V ou 15/5 <> 15 – 0/1
Não V ou 3 <> 15 – 0
Não V ou V
F ou V
V
Nesta aplicação, basta lembrar a tabela-verdade da disjunção inclusiva
P Q P V Q
1 V V V
2 V F V
3 F V V
4 F F F
Na linguagem de programação, utilizamos as tabelas-verdade. Desenvolva a expressão 
lógica a seguir e verifique se é V ou F.
Não F ou 35/7 <> 15 – 4/2 - 0
3. Duas proposições formam uma condicional quando forem colocadas no seguinte modelo:
Se (proposição 1), então (proposição 2).
Exemplo:
Se um número é primo, então é divisível por ele mesmo e por um 
AUTOATIVIDADE
1
1
As proposições interligadas pelo condicional recebem o nome de antecedente e conse-
quente, na forma “se antecedente, então consequente”, ou simbolicamente: antecedente 
→ consequente.
Qual tipo de conectivo foi utilizado no exemplo: se um número é ímpar, então não é divisível 
por dois?
a) Negação.
b) Disjunção.
c) Conjunção. 
d) Condicional.
e) Bicondicional.
4. Qualquer sequência composta por elementos do vocabulário do cálculo proposicional 
constitui uma fórmula. No entanto, nem toda fórmula é aceita pelo cálculo proposicional. 
Para ser aceita, ela precisa ser uma fórmula bem formada, conhecida como fbf.
Para se obter fbfs é preciso que a sequência formada siga as seguintes regras de formação:
1. Qualquer letra proposicional isolada é uma fbf.
2. Se φ é uma fbf, então ~ φ também é uma fbf.
3. Se φ e δ são fbfs, então (φ ⋀ δ), (φ ⋁ δ), (φ → δ) e (φ ↔ φ) também são fbfs.
Exemplo: (P ⋀ Q) é uma fbf, pois:
 Construção Justificativa
P regra 1
Q regra 1
 (P ⋀ Q) regra 3
Considerando a fórmula ~ (A ⋁ B) → C, podemos afirmar:
I - ~(A ⋁ B) obedece à primeira e à segunda regra de formação.
II - (A ⋁ B) obedece à primeira e à terceira regra de formação.
III - ~ (A ⋁ B) → C é uma fórmula bem formada, fbf.
AUTOATIVIDADE
1
1
É correto o que se afirma em:
a) I, apenas.
b) III, apenas.
c) I e II, apenas.
d) II e III, apenas.
e) I, II e III.
5. A tabela-verdade é uma ferramenta de natureza matemática muito utilizada no campo 
do raciocínio lógico na computação. Seu objetivo é verificar a validade lógica de uma 
proposição composta.
Um resumo dos conectivos principais em duas proposições é apresentado na tabela a 
seguir:
P Q P ⋀ Q P V Q P ⋁ Q P → Q P ↔ Q
1 V V V V F V V
2 V F F V V F F
3 F V F V V V F
4 F F F F F V V
Neste exemplo, (P ⋀ (Q ⋁ R)), podemos ter a seguinte construção:
AUTOATIVIDADE
1
8
P Q R
QV⊢R (P⋀(Q⋁R))
1 V V V V V
2 V V F V V
3 V F V V V
4 V F F F F
5 F V V V F
6 F V F V F
7 F F V V F
8 F F F F F
Na expressão lógica ((P ⋀ Q) ⋁ (P ⋀ R)), podemos afirmar:
a) P⋀Q será sempre V.
b) P ⋀ Q será sempre F.
c) P ⊢⋀ R terá duas opções V.
d) ((P⋀Q) V (P⋀R)) será sempre F.
e) ((P ⊢⋀ Q) V ⊢ (P ⋀ R)) terá seis opções F.
AUTOATIVIDADE
1
9
REFERÊNCIAS
FORBELLONE, A. L. V.; EBERSPACHER, H. F. Lógica de Programação: a construção de algorit-
mos e estruturas de dados São Paulo: Prentice Hall, 2005.
JENSKE, G. Lógica Matemática Indaial: Uniasselvi, 2015.
MENEZES, P. B. Matemática Discreta para Computação e Informática 2001. Disponível em: 
ftp://ftp.inf.ufrgs.br/pub/blauth/Discretas/Mat_Discreta2.pdf. Acesso em: 8 jun. 2023. 
8
1
1. Desenvolvendo a expressão lógica, temos:
-3 > 0 e 50/5 = 11
F e F
F
P Q P ⋀ Q
1 V V V
2 V F F
3 F V F
4 F F F
2. Desenvolvendo a expressão lógica, temos:
Não F ou 35/7 <>15 – 4/2 - 0
Não F ou 5 <> 13
V ou V
P Q P ⋀ Q
1 V V V
2 V F F
3 F V F
4 F F F
V
GABARITO
8
1
3. Opção D. Por definição, o conectivo condicional permite que duas proposições formem o 
modelo: Se (proposição 1), então (proposição 2).
4. Opção E. 
Considerando ~ (A ⋁ B) → C,
Temos
A, B e C, obedecem a primeira regra;
~ (AVB), obedece a segunda regra;
(AVB), obedece a terceira regra; e
~ (A ⋁ B) → C, obedece a terceira regra.
I ~ (A VB) obedece a primeira e a segunda regras de formação; (Verdadeiro)
II (AVB) obedece a primeira e a terceira regras de formação; e (Verdadeiro)
III ~ (A ⋁ B) → C é uma fórmula bem formada, fbf. (Verdadeiro)
5. Opção C. A tabela-verdade para a expressão lógica ((P ⋀ Q) ⋁ (P ⋀ R)) será:
P Q R
(P⋀Q) (P⋀R) ((P⋀Q)⋁(P⋀R))
1 V V V V V V
2 V V F V F V
3 V F V F V V
4 V F F FF F
5 F V V F F F
6 F V F F F F
7 F F V F F F
8 F F F F F F
Portanto, P ⋀ R terá duas opções V.
GABARITO
8
1
MINHAS ANOTAÇÕES
8
1
MINHAS METAS
LÓGICA DE PREDICADOS
Compreender os conceitos fundamentais da lógica de predicados.
Identificar as aplicações da lógica de predicados na matemática e na ciência da 
computação.
Compreender a teoria dos conjuntos, principalmente as operações com conjuntos.
Identificar as verdades lógicas, ressaltando a questão da simbolização da linguagem e 
das técnicas dedutivas.
Analisar a legitimidade dos argumentos através das regras de inferências.
Identificar os teoremas e equivalências.
T E M A D E A P R E N D I Z A G E M 3
8
4
INICIE SUA JORNADA 
Existem tipos de argumentos que não podem ser adequadamente formalizados 
na lógica proposicional. 
Por exemplo: 
Computador é uma máquina eletrônica. 
Toda máquina eletrônica é eficaz. 
Logo, o computador é eficaz.
Veja mais um exemplo:
Todos os gatos não são brancos.
Alguns felinos são gatos.
Logo, alguns os felinos não são brancos.
De forma geral, esses argumentos são válidos. No entanto, na lógica proposi-
cional, a formalização desses argumentos resulta em r e s acarreta k e não há 
como mostrar que a conclusão k é uma consequência lógica das premissas r e s. 
Isso acontece porque a validade desses argumentos depende do significado das 
palavras todo(a) e alguns, que não podem ser expressos na lógica proposicional. 
Para resolver argumentos desse tipo, precisamos da lógica de predicados.
Desta forma, a lógica proposicional é bastante limitada. A razão desta limi-
tação é devida, primeiro, a determinar como válidos ou inválidos os argumen-
tos cuja validade depende apenas dos conectores proposicionais. Segundo, os 
conectores não são o único fator de que depende a validade destes argumentos.
A lógica de predicados é mais ampla. Ela permite determinar as condições de 
validade de argumentos, como os silogismos, que além dos conectores, dependem 
de expressões como todos e alguns, geralmente designadas por quantificadores. 
A lógica de predicados é uma ampliação da lógica proposicional e inclui a 
lógica proposicional como um dos seus elementos.
Na área da computação, a lógica proposicional modela sentenças, é de fácil 
compreensão e é o primeiro aprendizado na área de representação do conheci-
mento e raciocínio, não consegue modelar de forma simples objetos e suas pro-
priedades, não consegue modelar quantidades e não consegue enumerar objetos 
de forma simples (SILVA, 2017).
Também na área da computação, a lógica de predicados modela objetos através 
de variáveis, modela relações entre objetos, modela funções, permite composição 
UNIASSELVI
8
5
TEMA DE APRENDIZAGEM 3
de atributos, permite derivação de relacionamentos de forma mais simples e con-
segue tratar problemas de quantificação através de quantificadores (SILVA, 2017).
Neste podcast, você aprenderá sobre a lógica de predicados, dando destaque à 
teoria de conjuntos e ao cálculo de predicados. Recursos de mídia disponíveis no 
conteúdo digital do ambiente virtual de aprendizagem 
PLAY NO CONHECIMENTO
Na próxima fase, será desenvolvido o tópico teoria dos conjuntos, sendo as ope-
rações com conjuntos o item relevante na área de computação.
DESENVOLVA SEU POTENCIAL 
TEORIA DOS CONJUNTOS
Teoria dos conjuntos é o ramo da matemática dedicada ao estudo da associação 
entre objetos com uma mesma propriedade. Sua origem pode ser encontrada nos 
trabalhos do matemático russo Georg Cantor (1845-1918).
A teoria dos conjuntos também ficou conhecida como teoria ingênua ou 
teoria intuitiva, por causa da descoberta de vários paradoxos associados à ideia 
central da própria teoria, influenciando de modo permanente as ciências da ma-
temática e da lógica.
VAMOS RECORDAR?
Para que você tenha uma visão da importância da lógica matemática e a semântica 
auxiliando na aprendizagem, retomando conteúdos base, focando principalmente 
na lógica matemática, sugiro a leitura do artigo do professor Raul Enrique Cuore. 
Recursos de mídia disponíveis no conteúdo digital do ambiente virtual de 
aprendizagem 
8
1
Neste tema, iremos rever alguns conceitos básicos da teoria dos conjuntos 
e estudaremos de que forma a teoria dos conjuntos e a lógica estão associadas.
Matemática Aplicada a informática 
Este livro parte da conhecida demanda dos professores de in-
tegrarem bases científicas e tecnológicas para o desenvolvi-
mento de competências e habilidades previstas no currículo do 
ensino técnico. 
Com linguagem, conteúdo e projeto gráfico totalmente adapta-
dos às necessidades de seu público-alvo, Matemática Aplicada 
à Informática aborda, de forma didática e contextualizada, con-
teúdos como lógica matemática, teoria dos conjuntos, relações, 
funções, matrizes, frações, análise combinatória e probabilidade.
INDICAÇÃO DE LIVRO
UNIASSELVI
8
1
TEMA DE APRENDIZAGEM 3
CONJUNTO E ELEMENTO
Um conjunto é uma coleção de elementos distintos que o identificam. Para in-
dicar se um elemento faz parte ou não de um determinado conjunto, usamos os 
símbolos ∈ (pertence) e ∉ (não pertence). Veja os exemplos a seguir:
 ■ Seja A = {1, 3, 5, 7, 9} o conjunto dos números naturais ímpares menores 
que 10. O número 9 é um elemento do conjunto A. Indica-se por 9 ∈ A. 
Lê-se: nove pertence ao conjunto A.
 ■ Seja C = {3, {4}, {1, 2}, 5, 7} um conjunto formado por cinco elementos. 
Indicamos neste exemplo 3 ∈ C e {3} ∉ C, pois 3 é elemento de C e {3} 
não é elemento de C. Assim, de modo análogo, temos: 4 ∉ C e {4} ∈ C.
REPRESENTAÇÃO DOS CONJUNTOS
Um conjunto pode ser representado de várias maneiras. Considerando o conjun-
to D dos números naturais menores que seis, podemos representá-lo:
 ■ Explicitando ou enumerando os seus elementos. 
 ■ Por exemplo: D = {0, 1, 2, 3, 4, 5}
 ■ Usando a notação de conjunto, propriedade característica de todos os 
seus elementos. 
 ■ Por exemplo: D = {x / x é natural menor que 6}
 ■ � /{ }D � � � � x x N x 6 
 ■ Usando a linguagem coloquial. 
 ■ Por exemplo: D é o conjunto dos números naturais menores que seis.
 ■ Diagrama do matemático John Venn.
A utilização do Diagrama de Venn forma um teste rápido e eficaz para validar as 
formas de silogismos categóricos.
O Diagrama de Venn é um método que consiste na representação das relações 
entre conjuntos numéricos por meio de círculos. 
Por exemplo: representar no Diagrama de Venn o conjunto Z = {0, 2, 4, 6, 8, 12}.
8
8
 No exemplo seguinte, veja como fica a representação no Diagrama de Venn dos 
conjuntos A = {1, 2, 3, 4, 5} e B = {3, 4, 5, 6, 7}, onde existe uma intersecção entre 
os conjuntos A e B (a intersecção é a área pintada).
Z
0 2
6
4
812
Figura 1 – Diagrama de Venn / Fonte: Jenske (2015, p. 108).
Descrição da Imagem: a figura apresenta um conjunto contendo seis elementos: 0, 2, 4, 6, 8 e 12. Neste caso, 
temos um conjunto finito. Fim da descrição.
A B
1
2
3
4
5
6
7
Figura 2 – Intersecção de Conjuntos / Fonte: Jenske (2015, p. 109).
Descrição da Imagem: a figura apresenta o conjunto A, contendo cinco elementos: 1, 2, 3, 4 e 5. Também, apre-
senta o conjunto B, contendo cinco elementos: 3, 4, 5, 6 e 7. A intersecção representa a parte pintada, ou seja, 
elementos 3, 4 e 5, que estão em ambos os conjuntos. Fim da descrição.
UNIASSELVI
8
9
TEMA DE APRENDIZAGEM 3
TIPOLOGIA
Um conjunto pode ser definido em:
 ■ Finito: quando possui um número finito de elementos.
Por exemplo: A = {dias da semana}
A = {segunda, terça, quarta, quinta, sexta, sábado, domingo}
 ■ Infinito: quando possui um número infinito de elementos.
Por exemplo: B = {números naturais maiores que onze}
B = {12, 13, 14, ...}
 ■ Unitário: quando possui apenas um elemento.
Por exemplo: C = {satélite natural da Terra}
C = {Lua}
 ■ Vazio: quando não possui elemento algum.
Por exemplo: D = {mês do ano que possui 32 dias}
D = { } ou D = Ø
Os diagramas de Venn foram criados pelo matemático inglês John Venn.
PENSANDO JUNTOS
Para iniciar o entendimentosobre conjuntos em programação, indico a leitura dos 
capítulos 2, 7 e 8 (Fundamentos, vetores e registros) do fragmento da obra Algorit-
mos e Programação, Teoria e Prática, de Marco Medina e Cristina Fertig, disponível 
no Google Acadêmico. Recursos de mídia disponíveis no conteúdo digital do 
ambiente virtual de aprendizagem.
EU INDICO
9
1
RELAÇÕES DE INCLUSÃO
Dado o conjunto Universo U =  (conjunto dos números naturais) e os con-
juntos A = {1, 2, 3} e B = {1, 2, 3, 4, 5}, podemos observar que todo elemento de 
A é também elemento de B. Pode-se, então, dizer que A é um subconjunto de B. 
Perceba que os dois conjuntos, tanto A quanto B, são subconjuntos de ℕ.
Esta relação de inclusão é indicada por: A ⊂ B (lê-se: A está contido em B) ou B ⊃
A (lê-se: B contém A).
Numa linguagem simbólica, podemos definir a relação de inclusão da seguinte 
maneira: A B x x A x B� �� � � � ( ) que se lê: A está contido em B, se e 
somente se, qualquer que seja x, se x pertence a A, então, x pertence a B.
Simbolicamente, representamos: A B x x A x B� � � � � �( ) . Lê-se: A não 
está contido em B, se, e somente se, existe pelo menos um elemento x que per-
tence a A e não pertence a B.
APROFUNDANDO
UNIASSELVI
9
1
TEMA DE APRENDIZAGEM 3
Visualize o seguinte Diagrama de Venn, na Figura 3:
U
U
B
B
A
A
Figura 3 – Subconjuntos do Conjunto U / Fonte: Jenske (2015, p. 110). 
Descrição da Imagem: a figura apresenta o conjunto A como subconjunto de B e de U. Também, o conjunto B 
como subconjunto de U, valendo a representação A B C⊂ ⊂ . Fim da descrição.
Relação de inclusão e propriedades:
 ■ Todo conjunto é subconjunto de si mesmo.
� �A A A ( ) 
 ■ Todo conjunto é subconjunto do conjunto universo.
� �A A U ( ) 
 ■ O conjunto vazio é subconjunto de qualquer conjunto.
� � �A A ( ) 
Conjunto das partes de um conjunto P(X).
Por exemplo: Dado um conjunto A = {1, 2, 3}, o conjunto das partes de A é:
P(A) = { ∅ , {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}.
Cada parte de A é obrigatoriamente subconjunto de A; note que ∅ sempre é 
parte de um conjunto. A quantidade de subconjuntos pode ser obtida por 2n , 
9
1
onde n representa a quantidade de elementos de um conjunto. No exemplo an-
terior temos: 23 = 8 subconjuntos.
VOCÊ SABE RESPONDER?
Você sabe responder quantos elementos temos no conjunto das partes P(A), para 
quatro elementos de um conjunto A? Quais são estes elementos? Represente na 
forma P(A) = { ∅ , {1}, {2}, ....
IGUALDADE DOS CONJUNTOS
Dois conjuntos A e B são iguais quando todos os elementos de A são os mesmos 
elementos de B. A representação matemática será da seguinte forma:
A B A B B A� � � �e
OPERAÇÕES COM CONJUNTOS
As operações com conjuntos são muito comuns no estudo da Lógica Matemática. 
Passaremos a descrever a seguir como essas operações podem ser realizadas.
UNIASSELVI
9
1
TEMA DE APRENDIZAGEM 3
UNIÃO
Dado o conjunto universo U de todos os acadêmicos do curso de Matemática 
da IES e os subconjuntos de U:
 ■ A, conjunto dos acadêmicos de lógica.
 ■ B, conjunto dos acadêmicos de cálculo.
O conjunto A ∪ B (lê-se: A união com B) é formado pelos acadêmicos que estu-
dam só lógica, pelos acadêmicos que estudam lógica e cálculo e pelos acadêmicos 
que estudam só cálculo.
Da união de conjuntos, podemos escrever as propriedades:
 ■ A ∪ B = B ∪ A propriedade comutativa.
 ■ (A ∪ B) ∪ C = A ∪ (B ∪ C) propriedade associativa.
 ■ A ∪ A = A propriedade idempotente.
 ■ A ∪ ∅ = A propriedade do conjunto vazio.
 ■ A ∪ U = U propriedade do conjunto universo.
A representação do Diagrama de Venn fica da seguinte forma:
U
A B
A B
Figura 4 – União de dois Conjuntos A e B do Conjunto U / Fonte: Jenske (2015, p. 112).
Descrição da Imagem: a figura apresenta o conjunto U com os subconjuntos A e B. Também apresenta a união 
dos conjuntos A e B, na parte pintada de verde, valendo a representação A U B. Fim da descrição.
9
4
INTERSECÇÃO
A ∩ B (lê-se: A intersecção com B, ou A inter B) é formado pelos acadêmicos 
que estudam lógica, mas também estudam cálculo.
Da intersecção de conjuntos, podemos escrever as propriedades:
 ■ A ∩ B = B ∩ A propriedade comutativa.
 ■ (A ∩ B) ∩ C = A ∩ (B ∩ C) propriedade associativa.
 ■ A ∩ A = A propriedade idempotente.
 ■ A ∩ ∅ = ∅ propriedade do conjunto vazio.
 ■ A ∩ U = A propriedade do conjunto universo.
Se tivermos A ∩⊢ B =∅ ⊢, dizemos que A e B são conjuntos disjuntos, isto é, não 
possuem nenhum elemento comum.
PENSANDO JUNTOS
A representação do Diagrama de Venn fica da seguinte forma:
U
A B
A B
Figura 5 – Intersecção de dois Conjuntos A e B do Conjunto U / Fonte: Jenske (2015, p. 112).
Descrição da Imagem: a figura apresenta o conjunto U com os subconjuntos A e B. Também apresenta a inter-
secção dos conjuntos A e B, na parte pintada de verde, valendo a representação A∩B. Fim da descrição.
UNIASSELVI
9
5
TEMA DE APRENDIZAGEM 3
PRINCÍPIO DA INCLUSÃO E DA EXCLUSÃO PARA DOIS OU 
TRÊS CONJUNTOS
 ■ n n n n( )A B A B A B-
 ■ ( )n n n n n n n nA B C A B C A B A C B C A B C-
A, B e C são conjuntos e n(X) indica o número de elementos do conjunto X.
Ainda para as operações com conjuntos, podemos realizar subtração dos 
conjuntos e realizar associações dos conceitos apresentados anteriormente. Ini-
cialmente, faremos uma explicação de como realizar a subtração de dois con-
juntos e, depois, daremos exemplos de como poderemos calcular associações 
desses conceitos.
 ■ A – B (lê-se: A menos B): É formado pelos acadêmicos que só estudam 
lógica.
A representação do Diagrama de Venn fica da seguinte forma:
Simbolicamente, pode-se representar na forma matemática para a união:
A B A B{ ) x x x
Simbolicamente, pode-se representar na forma matemática para a intersecção:
A B A B� / �{ )� � � � � x x x
APROFUNDANDO
U
B
A B
A
Figura 6 – Diferença dos conjuntos A menos B 
do Conjunto U / Fonte: Jenske (2015, p. 113). 
Descrição da Imagem: a figura apresenta 
o conjunto U com os subconjuntos A e B. 
Também apresenta a diferença de A me-
nos B, na parte pintada de verde, valendo 
a representação A - B. Fim da descrição.
9
1
 ■ B – A (lê-se: B menos A): É formado pelos acadêmicos que só estudam 
cálculo.
A representação do Diagrama de Venn fica da seguinte forma:
U
A B
A B
Figura 7 – Diferença dos conjuntos B 
menos A do Conjunto U / Fonte: Jenske 
(2015, p. 114). 
Descrição da Imagem: a figura 
apresenta o conjunto U com os sub-
conjuntos A e B. Também apresenta 
a diferença de B menos A, na parte 
pintada de verde, valendo a repre-
sentação B - A. Fim da descrição.
O conjunto de todos os acadêmicos de U que não são alunos de lógica é deno-
minado de Complementar de A ou complemento de A em relação ao U, ou 
ainda, o que falta em A para que fique igual ao U.
Podemos representar o complementar da seguinte forma:
C AU ou A ou A ' ou como U – A.
A representação do Diagrama de Venn fica da seguinte forma:
U
CUA
A
Figura 8 – Complementar do Conjunto A do Conjunto U / Fonte: Jenske (2015, p. 114).
Descrição da Imagem: a figura apresenta o conjunto U com o subconjunto A. Também apresenta o complementar 
de A, na parte pintada de verde, valendo a representação U - A. Fim da descrição.
UNIASSELVI
9
1
TEMA DE APRENDIZAGEM 3
A representação do Diagrama de Venn fica da seguinte forma:
Simbolicamente, pode-se representar na forma matemática para o complementar 
de A:
C A U A U AU { }x x x-
APROFUNDANDO
É importante que você não faça confusão entre A – B e B – A, pois A – B ≠B – A. 
Há uma importante representação que une os dois resultados mostrados. Diferença 
simétrica entre dois conjuntos A e B é o conjunto formado pelos elementos de A 
que não pertencem a B ou (exclusivo) pelos elementos de B que não pertencem a A.
Representação matemática:
A BD (Lê-se: só de A ou só de B; ou A ou B.)
ZOOM NO CONHECIMENTO
U
A∆B
A B
Figura 9 – Diferença Simétrica dos conjuntos A e B, usando a união e a intersecção no Conjunto U
 Fonte: Jenske (2015, p. 116).
Descrição da Imagem:a figura apresenta o conjunto U com os subconjuntos A e B. Também apresenta diferença 
simétrica dos conjuntos A e B, usando a união e a intersecção, na parte pintada de verde, valendo a representa-
ção A BD . Fim da descrição.
9
8
O DIAGRAMA DE VENN NA LÓGICA MATEMÁTICA E NA 
COMPUTAÇÃO
A seguir, demonstraremos alguns exemplos utilizando o Diagrama de Venn na 
Lógica Matemática e na computação.
Por exemplo: faça o teste da validade da proposição categórica a seguir uti-
lizando o Diagrama de Venn.
Todo S é M. 
Todo M é P. 
Logo, todo S é P.
Na lógica matemática, teremos:
Para a primeira premissa, deve-se pintar toda a parte de M que não esteja contida 
em P.
M
S P
Figura 10 – Primeira parte da Resolução Todo S é M. Todo M é P, logo, todo S é P / Fonte: Jenske (2015, p. 117).
Descrição da Imagem: a figura apresenta três conjuntos relacionados, S, P e M. A parte pintada representa a 
primeira parte da resolução de Todo S é M. Todo M é P. Logo, todo S é P, ou seja, Todo S é M. Fim da descrição
UNIASSELVI
9
9
TEMA DE APRENDIZAGEM 3
Para a segunda premissa, pintamos toda a parte de S não contida em M. A Figura 
11 apresenta a conclusão. Neste contexto, a proposição é válida.
M
S P
Figura 11 – Conclusão da Resolução Todo S é M. Todo M é P. Logo, todo S é P / Fonte: Jenske (2015, p. 118).
Descrição da Imagem: a figura apresenta três conjuntos relacionados, S, P e M. A parte pintada representa a 
conclusão de Todo S é M. Todo M é P. Logo, todo S é P, ou seja, a proposição é válida. Fim da descrição
Na computação, utilizando a linguagem de programação de alto nível, o Python, 
teremos o algoritmo: 
‘A intersecção entre os conjuntos é feita por &’
‘ A união entre os conjuntos é feita por |’
S=4
M=3
P=1
Para entender a aplicação da lógica matemática na computação, sugiro que você 
faça o download do Python em seu computador.
Você também pode baixar no seu celular, no Play Store, procurando por Pydroid 
3 – IDE for Python 3. Recursos de mídia disponíveis no conteúdo digital do am-
biente virtual de aprendizagem 
EU INDICO
1
1
1
print(‘Considere os conjuntos onde S possui 4 elementos, M possui 3 ele-
mentos e P possui 1 elemento.’)
I =(S&M&P)
print(‘A intersecção entre S, M e P é:’)
print(I)
J =(M&P)
print(‘A intersecção entre M e P é:’)
print(J)
K =(S&P)
print(‘A intersecção entre S e P é:’)
print(K)
X =(S&M)
print(‘A intersecção entre S e M é:’)
print(X)
U1 = M - I - J
print(‘Todo S é M’)
print(U1)
U2 = P - I - K 
print(‘Todo M é P’)
print(U2)
T = S - I + K - X
print(‘Todo S é P’)
print(T)
Resultado após executar o programa:
Considere os conjuntos onde S possui 4 elementos, M possui 3 elementos e 
P possui 1 elemento.
A intersecção entre S, M e P é:
0
A intersecção entre M e P é: 
1
A intersecção entre S e P é: 
0
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 3
A intersecção entre S e M é: 
0
Todo S é M
2
Todo M é P
1
Todo S é P
4
Este algoritmo pode ser testado em outras linguagens de programação, como o 
C e o Java, bastando apenas fazer adaptações.
Python é uma linguagem de programação de alto nível. As principais caracterís-
ticas do Python são: multiplataforma, apresenta versões para diversos sistemas 
operacionais; multiparadigma, é possível programar com base em diferentes esti-
los de programação; e é uma linguagem interpretada, não gera arquivos executá-
veis, como acontece na linguagem C. 
PENSANDO JUNTOS
Na próxima fase, será desenvolvido o tópico cálculo de predicados, conside-
rando principalmente variáveis, quantificadores e predicados, itens relevantes 
na área de computação.
CÁLCULO DE PREDICADOS
Você já deve ter observado que a forma de estruturar o pensamento matemático é 
diferente do que a feita em outras áreas, ou mesmo no dia a dia. A maneira como 
escrevemos as afirmações matemáticas (lemas, teoremas, preposições, corolários) 
sempre parte de algumas hipóteses e tudo o que está dito depois delas precisa ser 
provado. Esta estrutura vem da lógica matemática.
Nos tópicos anteriores, você teve a oportunidade de conhecer essa linguagem, 
fazendo o estudo do conceito de argumento, validade e verdade, bem como das 
1
1
1
operações lógicas e o cálculo proposicional. Viu que o cálculo de proposições 
ou cálculo proposicional é a área que trata da análise de proposições compostas, 
isto é, proposições simples ligadas por conectivos: ~, &, v, → , ↔ .
No entanto, você deve ter percebido que este tipo de análise não é suficiente 
para expressar todas as sentenças importantes da aritmética elementar. Neste con-
texto, este tópico é uma continuidade dos estudos até aqui realizados. O cálculo de 
predicados visa desenvolver uma linguagem formal que possa expressar qualquer 
conjunto de fatos sistemáticos, ou seja, sanar insuficiências da lógica proposicional.
Evidenciada a limitação dos recursos do cálculo proposicional, uma nova 
linguagem é introduzida para a análise da legitimidade de argumentos. Essa nova 
linguagem consiste na combinação entre conceitos de quantificadores com os da 
lógica proposicional, o que resulta em um sistema lógico mais amplo. 
Veremos, a seguir, de que forma substantivos, adjetivos e predicados (grama-
ticais) se atrelam para formar sentenças. As palavras todo e alguns desempe-
nham papel fundamental, por indicarem quantidade, razão pela qual o cálculo 
de predicados também é conhecido como cálculo quantificável.
Para compreender essa nova linguagem, faremos primeiramente um resumo 
sobre as regras de inferência e de equivalência do cálculo proposicional. 
Pense em Phyton 
Se você quer aprender como programar, usar Python é uma 
ótima forma de começar. Este guia prático apresenta a lin-
guagem passo a passo, começando com conceitos de pro-
gramação básicos antes de chegar a funções, recursividade, 
estruturas de dados e design orientado a objeto. 
Comece com o básico, incluindo sintaxe e semântica da lin-
guagem. Tenha uma definição clara de cada conceito de pro-
gramação. Aprenda sobre valores, variáveis, instruções, fun-
ções e estruturas de dados em uma progressão lógica.
O livro irá facilitar a entendimento da linguagem de alto nível 
Python. 
INDICAÇÃO DE LIVRO
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 3
RESUMOS DAS REGRAS DE INFERÊNCIA E DE EQUIVALÊNCIA 
DO CÁLCULO PROPOSICIONAL
Regras de inferência são regras de transformação sintáticas que podem ser 
usadas para inferir uma conclusão a partir de uma premissa, para criar um 
argumento, ou seja, elas permitem gerar todas as formas de argumentos válidas 
no Cálculo Proposicional
Existem dez regras básicas de inferência: uma de introdução e uma de elimina-
ção para cada um dos cinco operadores lógicos. Em uma regra de eliminação do 
operador, o mesmo ocorre com o operador principal em uma das premissas, mas 
não na conclusão. No entanto, em uma regra de introdução, sucede o contrário.
Raciocínio hipotético é um raciocínio baseado em uma hipótese; uma 
suposição feita a fim de mostrar que uma conclusão particular segue daquela 
suposição. De modo diferente de outras suposições de uma prova, as hipóteses 
não são declaradas como verdadeiras. Elas são artifícios lógicos, as quais aco-
lhemos temporariamente, como um tipo especial de estratégia de prova.
A seguir, apresentamos dois os Quadros 1 e 2, contendo as regras básicas 
de inferência (não hipotéticas e hipotéticas), que continuarão fazendo parte de 
nossos estudos.
Na formalização da Lógica Matemática, a vírgula separa as premissas e o símbolo 
⊢ significa implica, isto é, indica a conclusão do argumento.
PENSANDO JUNTOS
1
1
4
INTRODUÇÃO DA REGRA ELIMINAÇÃO DA REGRA
Modus Ponens (MP)
j j→ Y Y, 
Eliminação da Negação (~E)
~~ j j
Introdução da Conjunção (&I)
j j, &Y Y
ou
j j, &Y Y
Eliminação da Conjunção (&E)
j j&Y 
ou
j&Y Y
Introdução da Disjunção (⊢V)
j j ∨ Y
ou
j j Y ∨
Eliminação da Disjunção (⊢V)
ϕ ϕ χ χ χ� � �Y Y, � ,  
Introdução do Bicondicional (↔)
j j j� � �Y Y Y, 
Eliminação do Bicondicional (↔)
j j� �Y Y
ou
j j� �Y Y
Quadro 1 – Regras de InferênciasNão Hipotéticas / Fonte: Jenske (2015, p. 132).
A seguir, apresentamos exemplos da primeira linha da Quadro 1. Os demais 
modelos seguem a mesma formalística. 
 ■ Laura é estudiosa. 
Se Laura é estudiosa, então ela tira boas notas. 
Laura tira boas notas.
A: Laura é estudiosa.
B: Laura tira boas notas.
Formalização: A A B B, →  .
Prova do argumento:
Linha Proposição Justificativa
1 A P (premissa)
2 A B → P (premissa)
3 B 1, 2 MP (modus ponens)
UNIASSELVI
1
1
5
TEMA DE APRENDIZAGEM 3
 ■ Não é verdade que a Grace não sabe correr. 
Portanto, ela sabe correr.
C: Grace sabe correr.
Formalização: ~~ C C .
Prova do argumento:
Linha Proposição Justificativa
1 ~~C P
2 C ~E
No caso do bicondicional, os enunciados da forma j ↔ Y são equivalentes aos 
enunciados da forma φ ϕ� �� � � �Y Y & . Em vista dessa equivalência, as re-
gras de introdução e eliminação para o bicondicional funcionam como &I e &E. 
Introdução do Condicional ( → I )
Dada uma derivação de uma fórmula bem formada (fbf) Y a partir de uma hipótese 
j , podemos descartar a hipótese e inferir j → Y .
Redução ao Absurdo (RAA)
Dada a derivação de uma contradição a partir de uma hipótese j , podemos descartar 
a hipótese e inferir ~ j .
Quadro 2 – Regras de Inferências Hipotéticas / Fonte: Jenske (2015, p. 133).
O segundo modelo segue a mesma formalística. 
 ■ Vamos supor que você deseja convencer um atleta de não continuar cor-
rendo (em treino). Para isso, você lança o seguinte argumento:
Seu tornozelo está inchado (I). 
Se o seu tornozelo está inchado e você continuar andando de bicicleta (C), 
então seu tornozelo não irá sarar (S). 
Se ele não sarar até domingo, então você não estará apto à prova (~P). Portan-
do, se você continuar andando de bicicleta, então não estará apto para a prova.
Se o atleta responde: Prove isso!
1
1
1
Você poderia argumentar discursivamente, da seguinte forma:
Faça de conta que você continua andando de bicicleta. Com seu tornozelo 
inchado e você andando de bicicleta, o seu tornozelo não irá sarar até domingo 
e, por conseguinte, você não estará apto. Portanto, se você insiste em continuar 
andando de bicicleta, você não estará apto no domingo para participar da prova.
Quando você diz ao atleta “faça de conta que você continua andando de 
bicicleta”, está sendo lançada uma hipótese. Formalizando o argumento temos:
I I C S S A C A, & ~ ,~ ~ ~ � � � � �
Veja que a conclusão é uma proposição condicional, pois não se encontra em 
parte alguma dentro das premissas. Neste caso, devemos utilizar a Prova do Con-
dicional (PC). Vejamos a prova do argumento:
Linha Proposição Justificativa
1 I P
2 (I & C) → ~S P
3 ~S → ~A P
4 C H para PC (hipótese para prova do condicional)
5 I & C 1, 4 & I
6 ~S 2, 5 MP
7 ~A 3, 6 MP
8 C → ~A 4 – 7 PC (prova do condicional)
Note que a abertura da hipótese deve ocorrer com o antecedente da condicional 
e o fechamento deve ocorrer quando obtemos seu consequente.
PENSANDO JUNTOS
Das regras básicas de inferência, derivam outras cinco regras que nos auxiliam a 
simplificar as provas. O Quadro 3 a seguir apresenta um resumo das regras derivadas.
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 3
NOME REGRA
Silogismo Hipotético (SH) ϕ χ ϕ χ→ → →Y Y,  
Modus Tollens (MT) j j→ Y Y, ~ ~ 
Contradição (CONTRAD) j j, ~  Y 
Repetição (REP) j j 
Silogismo Disjuntivo (SD) j j∨ Y Y, ~  
Dilema Construtivo (DC) ϕ ϕ χ θ χ θ� � �Y Y, , � V 
Quadro 3 – Regras Derivadas / Fonte: Jenske (2015, p. 133).
Faremos uso dos teoremas de equivalência do cálculo proposicional, que tam-
bém podem ser usados em provas. Desta forma, é fundamental tê-los sempre em 
mãos. Veja a seguir o quadro com as equivalências mais importantes.
NOME EQUIVALÊNCIA
Tautologia (TAUT)
⊢ V ⊢ ⇔ φ
φ & φ ⇔ φ
Comutativa (COM)
⊢V Ψ ⇔ Ψ V φ
φ & Ψ ⇔ Ψ & φ
Associativa (ASSOC)
φ V (Ψ V χ) ⇔ (φV Ψ) V χ
φ & (Ψ & χ) ⇔ (φ & Ψ) & χ
1
1
8
Distributiva (DIST)
φ & (Ψ V χ) ⇔ (φ & Ψ) V (φ & χ)
φV (Ψ & χ) ⇔ (φ V Ψ) & (φ V χ)
Lei de Morgam (DM)
~(φ & Ψ) ⇔ ~φV ∼Ψ
~(φ V Ψ) ⇔ ~φ V ~Ψ
Implic. Material (IM)
φ → Ψ ⇔ ~φ V Ψ
~(φ → Ψ) ⇔ φ & ∼Ψ
Dupla Negação (DN) φ ⇔ ~~φ
Transposição (TRAN) φ → Ψ ⇔ ∼Ψ→ ~φ
Exportação (EXP) (φ & Ψ) → χ ⇔ φ → (Ψ→ χ)
Ambivalência (AMB)
φ ↔ Ψ ⇔ ~φ ↔ ∼Ψ
φ ↔ Ψ ⇔ (φ & Ψ) V (~φ & ∼Ψ)
Quadro 4 – Equivalências / Fonte: Jenske (2015, p. 132).
VARIÁVEIS, QUANTIFICADORES E PREDICADOS
Quando combinamos os conceitos de quantificadores com os da lógica proposi-
cional, obtemos um sistema mais amplo, capaz de expressar qualquer conjunto 
de fatos sistemáticos, conhecido como o cálculo de predicados.
Considere, por exemplo, a sentença:
“Todo homem é mortal”
Podemos enunciá-la como:
Todo H é M
UNIASSELVI
1
1
9
TEMA DE APRENDIZAGEM 3
Por sua vez, pode ser expresso com o uso da letra x para denotar uma variá-
vel que tem a função de representar objetos individuais e assim expressamos o 
enunciado por:
Qualquer que seja x, se x é H, então x é M
Para representar a expressão qualquer que seja, utilizamos o símbolo ∀, que 
também é conhecido como para todo, e é um quantificador universal. Logo, 
em vez de escrevermos x é H, escrevemos Hx e x é M como Mx. Usando o co-
nectivo → para representar o condicional, o enunciado se torna ∀x(Hx → Mx).
Na computação, utilizando a linguagem de programação de alto nível, o Py-
thon, teremos o algoritmo, apenas como impressão na tela:
1
1
1
‘Exemplo na programação Python’
print(‘Todo homem é mortal’)
print(‘∀x = qualquer que seja x’)
print(‘Hx = x é homem’)
print(‘Mx = x é mortal’)
print(‘Qualquer que seja x, se x é H, então x é M’)
print(‘∀x(Hx → Mx)’)
Resultado após executar o programa:
Todo homem é mortal
∀x = qualquer que seja x
Hx = x é homem
Mx = x é mortal
Qualquer que seja x, se x é H, então x é M
∀x(Hx → Mx)
Este algoritmo pode ser testado em outras linguagens de programação, como o 
C e o Java, bastando apenas fazer adaptações.
Para uma introdução a variáveis, a quantificadores e a predicados, indico no goo-
gle acadêmico, o trabalho do professor Alexandre L. M. Levada, Fundamentos de 
Lógica Matemática, com vários exemplos práticos. Recursos de mídia disponíveis 
no conteúdo digital do ambiente virtual de aprendizagem 
EU INDICO
Esta é uma fórmula do cálculo de predicados. Esta nova notação revela uma 
estrutura previamente desconhecida nas proposições lógicas. Já o enunciado 
“Nenhum homem é imortal” é expresso como ∀x(Hx → ~Ix).
Já os enunciados da forma “Algum homem é bonito” e “Existe homem inteli-
gente” necessitam de um quantificador existencial, denotado pelo símbolo ∃, 
que pode significar algum, existe, para algum. Assim, “Algum homem é bonito” 
é expresso como ∃x (Hx & Bx). Uma proposição do tipo “Algum homem não é 
bonito” fica nesta notação, ∃x (Hx & ~Bx).
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 3
Você deve estar se perguntando: todo enunciado precisa conter quantifica-
dores? Não. Existem, por exemplo, alguns predicados do tipo sujeito-predicado, 
os quais atribuem uma propriedade a uma pessoa ou coisa, adotando a nomen-
clatura de prefixar o predicado por uma letra maiúscula, seguida pelo sujeito 
representado por uma letra minúscula. A sentença “Bia é feliz” é formalizada 
por Fb, onde:
F = feliz (o predicado)
b = Bia (o sujeito)
Quantificador Universal (∀): simboliza qualquer que seja ou para todo 
Quantificador Existencial (∃): simboliza algum, existe, para algum 
PENSANDO JUNTOS
VOCABULÁRIO E REGRAS DE FORMATAÇÃO
A seguir, apresentaremos a sintaxe da linguagem formal do Cálculo de Predi-
cados. O vocabulário desta linguagem é dividido em duas partes: os símbolos 
lógicos (cuja interpretação permanece fixa em todos os contextos) e os símbolos 
não lógicos (cuja interpretação varia de problema a problema).
Alguns predicados podem ser combinados com dois ou mais nomes para formar 
uma sentença. Isso ocorre para alguns verbos transitivos, os quais exigem um 
sujeito e um objeto direto. Eles são usualmente escritos em notação lógicana 
sequência predicado-sujeito-objeto. Um exemplo desta situação pode ser enun-
ciado por Jorge ama Grazielle, e é formalizada por Ajg 
APROFUNDANDO
1
1
1
SÍMBOLOS LÓGICOS
Operadores Lógicos “~”; “&”; “v”; “→”; “ ↔ ”
Quantificadores “∀”; “∃”
Parênteses “(“; “)”
Quadro 5 – Símbolos Lógicos / Fonte: Jenske (2015, p. 137).
SÍMBOLOS NÃO LÓGICOS
Letras Nominais Letras minúsculas de “a” até “t”
Variáveis Letras minúsculas de “u” a “z”
Letras Predicativas Letras maiúsculas “A”, “B”, “C”, ...
Quadro 6 – Símbolos não lógicos / Fonte: Jenske (2015, p. 137).
Qualquer sequência finita de elementos do vocabulário, que seja composta 
por símbolos lógicos ou não lógicos, é definida como fórmula de linguagem. 
Quando uma fórmula é composta por uma letra predicativa seguida por nenhu-
ma, uma ou mais letras nominais, recebe o nome de fórmula atômica.
Fórmulas atômicas sem letras nominais são exatamente as letras sentenciais 
do cálculo proposicional. Podem também representar verbos intransitivos, como 
a fórmula C poderia significar CHOVE.
O conceito de fórmula bem formada (fbf) do cálculo de predicados é definido 
pelas seguintes regras de formação:
Toda fórmula atômica é uma fbf.
Se φ é uma fbf, então ~φ também é.
Se φ e Ψ são fbf, então (φ & Ψ), (φ ⋁ Ψ), (φ → Ψ) e (⊢ ↔ ⊢) são fbf.
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 3
REGRAS DE INFERÊNCIA
Podemos dizer que o cálculo proposicional é um caso particular do cálculo de 
predicados que possui, além disso, regras de introdução e eliminação para os 
quantificadores.
A seguir, enunciaremos a primeira das quatro novas regras, a regra de eli-
minação do quantificador universal. Ela estabelece que o que é verdadeiro para 
qualquer coisa deve ser verdadeiro, também, para um indivíduo particular.
Se ⊢ é uma fbf contendo uma letra nominal ⊢, então, qualquer fórmula da forma ⊢ β φ β 
/ α ou ∃ β φ β / α também é uma fbf, onde φ β / α é o resultado de se substituir uma 
ou mais ocorrências de α em φ por uma variável β que não ocorre em φ.
A regra 4 nos permite gerar fórmulas quantificadas a partir de uma fórmula ⊢. Seja, 
por exemplo, φ a fórmula “Ajg” (Jorge ama Grazielle). 
Consideremos a letra nominal ⊢ como sendo g e ⊢ a variável x. 
Podemos, então, produzir a fórmula bem formada ∃xAjx (Jorge ama alguém), ou, 
alternativamente, ∀xAjx (Jorge ama todo mundo).
APROFUNDANDO
VOCÊ SABE RESPONDER?
Como ficaria o enunciado formalizado de Jorge ama alguém, onde alguém é 
representado pela variável x?
Eliminação Universal (EU): de uma fbf universalmente quantificada ∀ β φ podemos 
inferir uma fbf φ β / α, a qual resulta substituindo-se cada ocorrência da variável ⊢ em 
φ por uma letra nominal α.
Por exemplo:
1
1
4
 ■ Vamos formalizar e provar o seguinte argumento: 
Todos os homens são mortais. 
Sérgio é um homem. 
Portanto, Sérgio é mortal.
Usando H para é um homem, M para é mortal e s para Sérgio, formalizamos 
este argumento por: 
∀x (Hx → Mx), Hs ⊢ Ms.
Provemos a validade:
Linha Proposição Justificativa
1 ∀x (Hx → Mx) P (premissa)
2 Hs P (premissa)
3 Hs → Ms 1 EU (linha 1, eliminação do universal)
4 Ms 2, 3 MP (linhas 2 e 3, modus ponens)
Na linha 3, aplicamos a eliminação do universal (EU). 
Como vimos anteriormente, ela estabelece que o que é verdadeiro para qual-
quer coisa deve ser verdadeiro, também, para um indivíduo particular.
Neste caso, é verdadeiro que Todos os homens são mortais.
Assim, podemos derivar que, se Sérgio é um homem, então Sérgio é mortal.
Com relação à regra EU, β é “x”, α é “s”, φ é “(Hx → Mx)” e φβ/α é “Hs → Ms”.
Introdução do Universal (IU): Para uma fbf φ contendo uma letra nominal α que não 
ocorre em qualquer premissa ou hipótese vigente na linha em que ⊢ ocorre, podemos 
inferir uma fbf da forma ∀ β φ β / α, onde φ β / α é o resultado de se substituir todas 
as ocorrências de α em φ por uma variável β que não ocorra em φ.
Introduzir o quantificador universal significa generalizar. 
Como não podemos generalizar a partir de casos particulares, existe a exi-
gência de que o indivíduo α não ocorra em qualquer premissa ou em qualquer 
hipótese vigente. 
UNIASSELVI
1
1
5
TEMA DE APRENDIZAGEM 3
O indivíduo α deve ser anônimo, o que significa que este pode ser qualquer 
indivíduo do universo. 
Tudo se passa como se o indivíduo α já fosse uma variável. 
Por exemplo:
 ■ Todo indaialense (I) é catarinense (C). 
Todo catarinense é brasileiro (B). 
Logo, todo indaialense é brasileiro.
∀x(Ix → Cx), ∀x(Cx → Br) ⊢ ∀x(Ix → Bx)
Provemos a validade:
Linha Proposição Justificativa
1 ∀x(Ix → Cx) P 
2 ∀x(Cx → Bx) P
3 Ia → Ca 1 EU
4 Ca → Ba 2 EU
5 Ia → Ba 3,4 SH
6 ∀x(Ix → Bx) 5 IU
Observe que este é um exemplo em que a introdução do universal (IU) foi utilizada 
corretamente (linha 6), pois nada se conhece, em premissas, a respeito do indiví-
duo a. Na verdade, ele foi obtido a partir da regra EU e funciona como indivíduo 
anônimo, podendo ser qualquer um. Assim, é permitido o uso da regra oposta IU.
ZOOM NO CONHECIMENTO
Prosseguindo os estudos, veremos as regras de inferência para o quantificador 
existencial (∃). Tal como o quantificador universal, o quantificador existencial 
apresenta duas regras: de introdução e de eliminação.
A regra para introdução do existencial (IE) trata-se de uma regra direta que 
diz: se um ente, representado por uma letra nominal, tem uma propriedade, 
segue-se que existe alguém que tem esta propriedade. 
1
1
1
Por exemplo:
 ■ Todos são felizes (F). 
Logo, existe alguém feliz.
∀x Fx ⊢ ∃xFx
Provemos a validade:
Linha Proposição Justificativa
1 ∀x Fx P
2 Fa 1 EU
3 ∃x Fx 2 IE
Uma fbf existencial afirma que pelo menos um indivíduo tem a propriedade, 
colocamos como hipótese um indivíduo (representado por uma letra nominal) 
que representa uma dessas coisas que tem essa propriedade. 
Como não se sabe quem ele é, ele deve ser assumido como um novo indiví-
duo (anônimo), não presente em nenhum outro lugar, como numa premissa ou 
numa hipótese em aberto. 
Então, derivamos desta hipótese (para EE) alguma fbf que interessa manter. 
Se nesta fbf concluída não ocorrer o indivíduo introduzido na hipótese, então 
o raciocínio hipotético pode ser finalizado na hipótese.
Eliminação do Existencial (EE): Dada uma fbf quantificada existencialmente ∃ β 
φ e uma derivação de alguma conclusão Ψ de uma hipótese da forma φ α / β (o 
resultado de se substituir cada ocorrência da variável β em φ por uma letra nominal 
α que não ocorra em ⊢), podemos descartar φ α / β e reafirmar Ψ. Restrição: a letra 
nominal α não pode ocorrer em Ψ, nem em qualquer premissa, nem em qualquer 
hipótese vigente na linha em que EE é aplicada.
Por exemplo:
 ■ Existem professores (P) e médicos (M). 
Portanto, existem professores.
∃x (Px & Mx) ⊢ ∃xPx
Provemos a validade:
Introdução do Existencial (IE): Dada uma fbf φ contendo uma letra nominal 
α, podemos inferir uma fbf da forma ∃ β φ β / α, onde φ β / α é o resultado de se 
substituir uma ou mais ocorrências de ⊢ em ⊢ por uma variável β, que não ocorra em φ.
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 3
Linha Proposição Justificativa
1 ∃x (Px & Mx) P
2 Pa & Ma H (p/ EE)
3 Pa 2 &E
4 ∃xPx 3 IE
5 ∃xPx 1,2 – 4 EE
Na derivação anterior, ∃ β φ é ∃x (Px & Mx), α é a, φ α / β é Pa & Ma e Ψ é ∃xPx. 
φ α / β é uma instância representativa de ∃ β φ, pois α representa uma das coisas 
que tem a propriedade φ.
TEOREMAS E EQUIVALÊNCIAS
Assim como no cálculo proposicional, o cálculo de predicados possui teoremas 
expressáveis em termos de quantificadores e variáveis.
⊢ ∀x(Gx → Gx)
⊢ ∀x(Gx → Ga)
⊢ ~(∀xGx & ∃x~Gx)
Existem quatro importantes equivalências que relacionam de forma próxima 
os dois quantificadores do cálculo de predicados com o operador de negação.
Note que teoremas são fbfs sem premissas.
PENSANDO JUNTOS
⊢ ~∀β~φ ↔ ∃βφ
⊢ ~∀βφ ↔ ∃β~φ
⊢ ∀β~φ ↔ ~∃βφ
⊢ ∀βφ ↔ ~∃β~φ
1
1
8
As quatro regras seguem o mesmo princípio, intercambiam os quantificadores 
universal e existencial entre si e deslocam a posiçãodo operador ~ do início 
para antes de φ, lembrando que quando ocorre ~~ há cancelamento por dupla 
negação.
Por exemplo:
 ■ Todo corintiano (C) é não gremista (G). 
Portanto, não existem torcedores que são corintianos e gremistas.
∀x(Cx → ~Gx) ⊢ ~∃x(Cx & Gx)
Provemos a validade:
Linha Proposição Justificativa
1 ∀x(Cx → ~Gx) P
2 Ca → ~Ga 1 EU
3 ~Ca ⋁ ~Ga 2 IM
4 ~(Ca & Ga) 3 DM
5 ∀x~(Cx & Gx) 4 IU
6 ~∃x(Cx & Gx) 5 IQ
IDENTIDADE
Ampliaremos o cálculo de predicados através da introdução de um predicado 
especial, = que significa é idêntico a ou é igual a. 
Diferentemente dos outros predicados, ele é escrito entre as letras nominais 
às quais se aplica, e não antes dela. 
Para representar que Xuxa (x) é a mesma pessoa que Maria da Graça Meneghel (m), 
escrevemos x = m. Uma expressão como ~a = b é frequentemente escrita como a ≠ b.
Introdução da Identidade (=I): para qualquer letra nominal α, podemos afirmar α = α 
numa linha qualquer de prova.
Eliminação da Identidade (= E): se φ é uma fbf contendo uma letra nominal α, então 
de φ e de α = β podemos inferir φ β / α, o resultado de se substituir pelo menos uma 
ocorrência de α por β.
UNIASSELVI
1
1
9
TEMA DE APRENDIZAGEM 3
Por exemplo:
 ■ Ha, a = b ⊢ Hb
Provemos a validade:
Linha Proposição Justificativa
1 Ha P
2 a = b P
3 Hb 1, 2 = E
VOCÊ SABE RESPONDER?
Como você provaria a validade de Ga, ~Gb ⊢ ~a = b ?
Primer 
Primer  é um filme  de  ficção científica  sobre uma descoberta 
acidental de como viajar no tempo. 
Os engenheiros Aaron e Abe suplementam seus dias de em-
pregos com projetos de tecnologia empresarial, trabalhando 
fora da garagem de Aaron. 
Durante uma pesquisa, envolvendo a redução eletromagnéti-
ca de objetos de peso, os dois descobrem acidentalmente um 
efeito colateral que liga o tempo de A para B.
O filme trabalha com um nível básico de lógica matemática.
INDICAÇÃO DE FILME
1
1
1
NOVOS DESAFIOS
 No decorrer deste tema, no primeiro tópico, você aprendeu sobre teoria dos 
conjuntos, em especial sobre operações com conjuntos. Também teve uma noção 
inicial de programação no Python com a teoria dos conjuntos.
No segundo tópico, você aprendeu cálculo de predicados, considerando re-
sumos sobre as regras de inferência e de equivalência do cálculo proposicional. 
Nesta fase, a importância esteve nas variáveis, nos quantificadores, nos predica-
dos, nas regras de inferência, nos teoremas, nas equivalências e na identidade. 
Na área de computação, como exemplo de identidade, em linguagens de pro-
gramação, como no Python, podemos utilizar as variáveis Ga = nGb (a = ~b) e 
nGa = Gb (~a = b).
Você pode criar um algoritmo como o exemplo a seguir e verificar que o pro-
grama, ao ser executado, dirá se for Falso (False) ou Verdadeiro (True), conforme 
a lógica não for obedecida ou for obedecida, respectivamente.
Foram atribuídos valores hipotéticos para as variáveis a = nb = Ga = nGb = 
100 e na = b = Gb = nGa = 200. 
‘Exemplo identidade na lógica de predicados’
print(‘~ é o mesmo que n’)
print(‘-------------------’)
print(‘Ga é nGb’)
print(‘-------------------’)
print(‘nGa é Gb’)
a=Ga=100
nb=nGb=100
b=Gb=200
Acesse e confira a aula referente a este tema. Recursos de mídia disponíveis no 
conteúdo digital no ambiente virtual de aprendizagem 
EM FOCO
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 3
na=nGa=200
print(‘-------------------’)
print(‘Analisando, temos’)
print(‘-------------------’) 
print(‘Ga é nGb’,(Ga==nGb))
print(‘-------------------’) 
print(‘Ga é Gb’,(Ga==Gb))
print(‘-------------------’) 
print(‘nGa é Gb’,(nGa==Gb))
print(‘-------------------’) 
print(‘nGa é nGb’,(nGa==nGb))
print(‘-------------------’)
print(‘Ga é a’, (Ga==a))
print(‘-------------------’)
print(‘Gb é b’, (Gb==b))
print(‘-------------------’)
print(‘Analisando, temos’)
print(‘-------------------’)
print(‘na é b’, (na==b))
print(‘-------------------’)
print(‘na é nb’, (na==nb))
print(‘-------------------’)
print(‘a é nb’, (a==nb))
print(‘-------------------’)
print(‘a é b’, (a==b))
print(‘-------------------’)
print(‘FIM’)
O resultado será:
~ é o mesmo que n
-------------------
Ga é nGb
-------------------
nGa é Gb
-------------------
1
1
1
Analisando, temos 
-------------------
Ga é nGb True 
-------------------
Ga é Gb False 
-------------------
nGa é Gb True 
-------------------
nGa é nGb False 
-------------------
Ga é a True 
-------------------
Gb é b True
-------------------
Analisando, temos
-------------------
na é b True
-------------------
na é nb False
-------------------
a é nb True
-------------------
a é b False
-------------------
FIM
Este algoritmo pode ser testado em outras linguagens de programação, como o 
C e o Java, bastando apenas fazer adaptações.
Desta forma, você pode criar inúmeras maneiras de resolver problemas de 
lógica por meio da computação. Basta treinar os conceitos aprendidos neste tema.
UNIASSELVI
1
1
1
1. O cálculo do número total de elementos de três conjuntos que se relacionam, conforme 
figura abaixo, pode ser obtido pela fórmula n(A ∪ B ∪ C) = n(A) + n(B) + n(C) – n(A ∩ B) - n(A ∩ 
C) - n(B ∩ C) + n(A ∩ B ∩ C). Esta fórmula representa a união de três conjuntos.
Nesta situação, podemos gerar um algoritmo na linguagem de programação de alto nível 
Python, com três variáveis que representam o número de elementos de A, B e C, ou seja, 
n(A), n(B) e n(C). Também, podemos criar mais quatro variáveis que demonstram as relações 
n(A ∩ B), n(A ∩ C), n(B ∩ C) e n(A ∩ B ∩ C).
Na linguagem de programação de alto nível Python, para a união de três conjuntos A, B e C, 
foi gerado o seguinte algoritmo, onde A=n(A), B=n(B), C=n(C), D=n(A ∩ B), E=n(A ∩ C), F=n(B ∩ 
C), G=n(A ∩ B ∩ C) e R= n(A ∪ B ∪ C):
print(‘Cálculo do número de elementos da união dos conjuntos A, B e C’)
print(‘---------------------------------------------’)
print(‘n(A)=12’)
print(‘n(B)=10’)
print(‘n(C)=15’)
print(‘n(A ∩ B)=2’)
print(‘n(A ∩ C)=3’)
print(‘n(B ∩ C)=1’)
print(‘n(A ∩ B ∩ C)=1’)
A=12
AUTOATIVIDADE
1
1
4
B=10
C=15
D=2
E=3
F=1
G=1
R= A+B+C-D-E-F+G
print(‘---------------------------------------------’)
print(‘n(A ∪ B ∪ C)=’)
print(R)
print(‘---------------------------------------------’)
Analisando as informações no algoritmo, qual é o valor de R ou do número de elementos 
da união dos conjuntos A, B e C?
2. A introdução do universal (IU), uma das regras de inferência no cálculo de predicados, 
pode ser explicado da seguinte forma: como não podemos generalizar a partir de casos 
particulares, existe a exigência de que o indivíduo ∩ não ocorra em qualquer premissa ou em 
qualquer hipótese vigente. O indivíduo ∩ deve ser anônimo, o que significa que este pode 
ser qualquer indivíduo do universo.
Exemplo: Todo cão é preto (P) e amável (A). Logo, todo cão é preto e todo cão é amável.
Cuja representação seria: ∀x(Px & Ax) ⊢ ∀xPx& ∀ xAx 
Podemos gerar um algoritmo na programação Python, para imprimir na tela o resultado 
anterior.
Na linguagem de programação Python, podemos construir o seguinte texto para ser im-
presso na tela:
AUTOATIVIDADE
1
1
5
print(‘-----------------------------------------------------------------------’)
print(‘Todo cachorro é amigo e fiel’)
print(‘Logo, todo o cachorro é amigo e todo o cachorro é fiel’)
print(‘-----------------------------------------------------------------------’)
print(∀ ‘⊢x = qualquer que seja x’)
print(‘Ax = x é amigo’)
print(‘Fx = x é fiel’)
print(‘-----------------------------------------------------------------------’)
print(‘A representação final pela regra de inferência IU, seria:’)
print(‘R’)
print(‘-----------------------------------------------------------------------’)
Neste algoritmo, o que devemos colocar no lugar de R?
3. Uma das regras de inferência, a introdução do existencial (IE), pode ser enunciado de ma-
neira bem simples: se um ente, representado por uma letra nominal, tem uma propriedade, 
segue-se que existe alguém que tem esta propriedade.
Exemplo: Não existe alguém bonito. Logo,todos são não bonitos.
A representação correta seria: ~∃x Bx ⊢ ∀x~Bx.
Considere o exemplo: Não existe alguém bobo. Logo, todos são não bobos.
Bx seria a representação lógica de bobo.
Também considere os valores de nJxBx, QxnBx e QxBx no algoritmo abaixo como hipotéticos.
Desta forma, nas linhas 8 e 10 do algoritmo abaixo, na programação Python, resultará, na 
execução do programa:
AUTOATIVIDADE
1
1
1
1 print(‘Exemplo de IE: Não existe alguém bobo. Logo, todos são não bobos.’)
2 print(‘~ é o mesmo que n’)
3 print(‘∃ é o mesmo que J’)
4 print(‘∀ é o mesmo que Q’)
5 nJxBx=100
6 QxnBx=100
7 QxBx=200
8 print(‘nJxBx é QxnBx’,(nJxBx==QxnBx))
9 print(‘-------------------’)
10 print(‘nJxBx é QxBx’,(nJxBx==QxBx))
11 print(‘-------------------’)
a) Verdadeiro (True) e Verdadeiro (True).
b) Verdadeiro (True) e Falso (False).
c) Falso (False) e Falso (False) . 
d) Falso (False) e Verdadeiro (True).
e) O algoritmo irá apresentar erro na execução.
4. O cálculo do número total de elementos de dois conjuntos que se relacionam, conforme 
figura abaixo, pode ser obtido pela fórmula n(A ∪ B) = n(A) + n(B) – n(A ∩ B). Esta fórmula 
representa a união de dois conjuntos.
AUTOATIVIDADE
1
1
1
Nesta situação, podemos gerar um algoritmo na linguagem de programação Python, com 
duas variáveis que representam o número de elementos de A e B, ou seja, n(A) e n(B). Tam-
bém, podemos criar mais uma variável que demonstra a relação n(A ∩ B).
Na linguagem de programação Python, para a união de dois conjuntos A e B, foi gerado o 
seguinte algoritmo, onde A=n(A), B=n(B), C=n(A ∩ B) e R= n(A ∪ B):
print(‘Cálculo do número de elementos da união dos conjuntos A e B’)
print(‘---------------------------------------------’)
print(‘n(A)=5’)
print(‘n(B)=4’)
print(‘n(A ∩ B)=1’)
A=5
B=4
C=1
R= A+B-C
print(‘---------------------------------------------’)
print(‘n(A ∪ B)=’)
print(R)
print(‘---------------------------------------------’)
Analisando as informações no algoritmo, analise as afirmativas a seguir:
I - Na execução do programa, R será 8.
II - Se substituirmos print(‘n(A)=5’) por print(‘n(A)=2’) e A=5 por A=2, na execução do programa, 
R será 4.
III - Se substituirmos print(‘n(B)=4’) por print(‘n(B)=7’) e B=4 por B=7, na execução do programa, 
R será 10.
É correto o que se afirma em:
AUTOATIVIDADE
1
1
8
a) I, apenas.
b) III, apenas.
c) I e II, apenas.
d) II e III, apenas.
e) I, II e III.
5. Interpretada pelas letras G e P os predicados é um gato e é peludo, respectivamente, 
podemos formalizar sentenças, utilizando o cálculo de predicados.
Por exemplo: Todos os gatos são peludos.
Teríamos: ∀x(Gx → Px).
Na sentença lógica Nenhum gato é manhoso, considerando G como é um gato e M como 
é manhoso, podemos afirmar:
a) ∀x(~Gx → ~Mx).
b) ∀x(Gx → ~Mx).
c) ∀x(Gx → Mx).
d) ∀x(~Gx → Mx).
e) ∀x(Mx → ~Gx).
AUTOATIVIDADE
1
1
9
REFERÊNCIAS
DOWNEY, A.B. Pense em Python pense como um cientista da computação. São Paulo: Novatec, 
2016.
FORBELLONE, A. L. V. e EBERSPACHER, H. F. Lógica de Programação: A construção de algorit-
mos e estruturas de dados São Paulo: Prentice Hall, 2005.
JENSKE, G. Lógica Matemática Indaial: Uniasselvi, 2015.
SILVA, F. C. D. Lógica de Predicados 2017. Disponível em: http://wwwp.uniriotec.br. Acesso em: 
14 jun. 2023. 
SOUZA, J.A.L. de. Lógica Matemática. 1. ed. São Paulo: Pearson, 2016.
1
1
1
1. Analisando as informações no algoritmo, temos os seguintes valores:
n(A)=12
n(B)=10
n(C)=15
n(A ∩ B)=2
n(A ∩ C)=3
n(B ∩ C)=1
n(A ∩ B ∩ C)=1
Aplicando na fórmula n(A ∪ B ∪ C) = n(A) + n(B) + n(C) – n(A ∩ B) - n(A ∩ C) - n(B ∩ C) + n(A 
∩ B ∩ C), temos n(A ∪ B ∪ C) = 12+10+15-2-3-1+1 = 32 elementos.
2. Desenvolvendo a expressão lógica no algoritmo no Python, temos:
• print(‘-----------------------------------------------------------------------’)
• print(‘Todo cachorro é amigo e fiel’)
• print(‘Logo, todo o cachorro é amigo e todo o cachorro é fiel’)
• print(‘-----------------------------------------------------------------------’)
• print(‘∀x = qualquer que seja x’)
• print(‘Ax = x é amigo’)
• print(‘Fx = x é fiel’)
• print(‘-----------------------------------------------------------------------’)
• print(‘A representação final pela regra de inferência IU, seria:’)
• print(‘∀x(Ax&Fx) ⊢ ∀xAx & ∀xFx ‘)
• print(‘-----------------------------------------------------------------------’)
• Portanto, o R será ∀x(Ax&Fx) ⊢ ∀xAx & ∀xFx, correspondendo a regra IU da inferência.
3. Opção B. Na execução do algoritmo:
Primeiro: nJxBx = 100 = QxnBx, o que resulta que a linha 8, nJxBx==QxnBx, é verdadeira.
Segundo: nJxBx = 100 ≠ QxBx = 200, o que resulta que a linha 10, nJxBx==QxBx, é falsa.
4. Opção A. Os cálculos corretos seriam:
I. Na execução do programa, R será 8;
n(A ∪ B) = n(A) + n(B) – n(A ∩ B).
n(A ∪ B) = 5 + 4 – 1 = 8. Verdadeiro.
II. Se substituirmos print(‘n(A)=5’) por print(‘n(A)=2’) e A=5 por A=2, na execução do pro-
grama, R será 4; e
n(A ∪ B) = n(A) + n(B) – n(A ∩ B).
GABARITO
1
1
1
n(A ∪ B) = 2 + 4 – 1 = 5. Falso.
III. Se substituirmos print(‘n(B)=4’) por print(‘n(B)=7’) e B=4 por B=7, na execução do pro-
grama, R será 10.
n(A ∪ B) = n(A) + n(B) – n(A ∩ B).
n(A ∪ B) = 5 + 7 – 1 = 11. Falso.
5. Opção B. A resposta correta pelo cálculo de predicados para Nenhum gato é manhoso, seria 
∀x(Gx → ~Mx). Para qualquer gato, nenhum é manhoso.
GABARITO
1
1
1
MINHAS ANOTAÇÕES
1
1
1
UNIDADE 2
MINHAS METAS
INDUÇÃO MATEMÁTICA
Identificar a teoria e as técnicas de indução matemática.
Aplicar a indução matemática em problemas e em exemplos.
Compreender o princípio da indução matemática.
Entender a definição por recorrência.
Identificar as aplicações da indução matemática na ciência da computação.
T E M A D E A P R E N D I Z A G E M 4
1
1
1
INICIE SUA JORNADA
Para entendermos indução matemática, podemos dar dois exemplos do dia a dia. 
O primeiro seria o efeito dominó ou efeito cascata. O problema inicial é en-
tender por que os dominós alinhados em uma fila um após o outro caem de 
forma sequencial. 
O segundo seria como provar a sequência de Fibonacci, que tem aplicação 
na ciência da computação. 
No primeiro caso, a ideia está relacionada com um efeito ser a causa de ou-
tro efeito. De maneira objetiva, significa que um dominó induz o próximo até o 
último dominó da fila.
No segundo caso, para provar a validade da sequência de Fibonacci, precisa-
mos utilizar o método da indução.
A sequência de Fibonacci é uma sequência de números inteiros iniciados por 
zero e um, no qual cada termo subsequente corresponde à soma dos dois números 
anteriores: 0,1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, ... Ela é encontrada na 
natureza. Exemplos: as espirais do girassol, o número de pétalas da margarida e 
a concha do caracol Nautilus.
A famosa fórmula de Fibonacci, que pode ser provada por indução, é com o 
primeiro termo sendo 1:
F F Fn N N� �� �1 2
Nos dois exemplos anteriores, verifica-se a aplicação real da indução. De for-
ma geral, a indução matemática é um instrumento importante para demonstrar 
resultados relativos aos inteiros positivos. 
Na área de computação, na programação, pode-se, por exemplo, definir a mul-
tiplicação de dois números inteiros não negativos a e b em termos da operação 
de adição por indução.
Neste podcast, você aprenderá sobre a indução matemática, considerando o prin-
cípio da indução matemática e a definição por recorrência. Recursos de mídia dis-
poníveis no conteúdo digital do ambiente virtual de aprendizagem.
PLAY NO CONHECIMENTO
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 4
Na próxima fase, será desenvolvido o tema Indução matemática, sendo princípio 
da indução matemática o item relevante na área de computação.
DESENVOLVA SEU POTENCIAL
INDUÇÃO MATEMÁTICA
Neste tema, veremos a forma de demonstrar o princípio da indução matemática. 
Essa expressão designa o princípio que serve para o estabelecer a verdade de um 
teorema matemático em um número indefinido de casos(ABBAGNANO, 2012).
Além de aprender a formalidade da demonstração, traremos várias aplicações 
para situações acadêmicas do estudo da matemática.
VAMOS RECORDAR?
Para que você comece entendendo a indução matemática, é necessária uma 
revisão geral sobre números inteiros, dentro do contexto dos números reais, bem 
como a questão da ordenação. Sugiro a leitura do artigo do Matheus Pereira Lobo, 
disponível no Google Acadêmico. Recursos de mídia disponíveis no conteúdo 
digital do ambiente virtual de aprendizagem 
Livro: Matemática discreta para computação e informática
Organizador: Paulo Blauth Menezes
Editora: Bookman
Ano: 2013
Sobre o livro: este livro traz os principais conceitos de matemá-
tica discreta em uma linguagem simples e acessível. 
Essa disciplina discreta é considerada, pelos alunos, especial-
mente difícil, mais do que a de cálculo, muitas vezes. 
Com isso em mente, o autor procurou dar ênfase aos aspectos 
didáticos, buscando texto simples e acessível, sem abrir mão 
dos aspectos matemáticos formais.
Há um capítulo dedicado à indução matemática, com mode-
los computacionais.
INDICAÇÃO DE LIVRO
1
1
8
PRINCÍPIO DA INDUÇÃO MATEMÁTICA
Para entender o funcionamento do teorema antes de apresentá-lo, vamos supor 
algo bem intuitivo, acredito que você já tenha se divertido com este tipo de brin-
cadeira que envolve dominós.
Imagine uma quantidade de dominós colocados em sequência, de modo que, 
ao derrubar um deles, o procedimento se estenderá até o último deles. Na prática, 
o método da brincadeira com dominós possui um funcionamento bem simples. 
Garanta que todos estejam alinhados, que o primeiro funcione e que este influen-
cie no próximo e assim por diante. Assim, mesmo que a fila seja indefinidamente 
extensa, podemos garantir que todos os dominós cairão.
Teorema 1: (Princípio da indução matemática) sejam S um subconjunto de Z e 
a Z∈ tais que:
 a S∈ ; e
S é fechado em relação à operação de somar 1 a seus elementos, ou seja, ∀n , 
n S n S� � � �1 .
Então, { ; }x Z x a S� � � .
Parece simples o teorema, porém, apesar da simplicidade de imaginar que o su-
cessor de um número pertence a um subconjunto dos inteiros, este serve como 
base para um importante método de demonstração, que chamaremos de Prova 
por indução matemática.
Antes de definirmos o termo indução, iremos enunciar os axiomas de Peano:
 ■ O 0 é um número natural.
 ■ A igualdade é reflexiva: a=a para todo natural a.
 ■ A igualdade é simétrica: se a=b, então b=a, para quais quer a e b naturais.
 ■ A igualdade é associativa: se a=b e b=c, então, a=c, para quaisquer a, b e 
c naturais.
 ■ Os naturais são fechados na igualdade. Se a=b e a é natural, então b é 
natural.
UNIASSELVI
1
1
9
TEMA DE APRENDIZAGEM 4
 ■ Para todo n ∈ N, o sucessor de n, denotado por S(n), também é natural.
 ■ Não existe n ∈ N tal que S(n) = 0.
 ■ S(n) pode ser entendido como uma função, se S(n)=S(m), então m=n, ou 
seja, S(n) é uma função injetora.
 ■ Se C é um conjunto, tal que: 0 ∈ C. Para todo n ∈ N, se n ∈ C, então S(n) 
∈ C.; Esse conjunto contém todos os números naturais.
Segue uma definição de indução:
 “ As ciências naturais utilizam o método chamado indução empíri-
ca para formular leis que devem reger determinados fenômenos a 
partir de um grande número de observações particulares, selecio-
nadas adequadamente. Esse tipo de procedimento, embora não seja 
uma demonstração de que um dado fato é logicamente verdadeiro, 
é frequentemente satisfatório (FONSECA, 2011, p. 30).
Apesar do comentário de Fonseca (2011) ser satisfatório, pode não ser relevante 
para várias situações da matemática, em que o intuito é que uma proposição seja 
válida para um certo conjunto de números.
Para você se aprofundar no entendimento da indução matemática, indico a leitura 
do artigo A indução matemática como método de demonstração, de Vera Lúcia 
Fazoli da Cunha Freitas Viana, disponível no Google Acadêmico. Recursos de mí-
dia disponíveis no conteúdo digital do ambiente virtual de aprendizagem 
EU INDICO
Bertrand Russel (1872-1970), matemático inglês, batizou a indução empírica de for-
ma irônica, chamando de indução galinácea, que apresentava a seguinte história:
 “ Havia uma galinha nova no quintal de uma velha senhora. Diaria-
mente, ao entardecer, a boa senhora levava milho às galinhas. No 
primeiro dia, a galinha, desconfiada, esperou que a senhora se reti-
rasse para se alimentar. No segundo dia, a galinha, prudentemente, 
foi se alimentando enquanto a senhora se retirava. No nonagésimo 
1
4
1
dia, a galinha, cheia de intimidade, já não fazia caso da velha se-
nhora. No centésimo dia, ao se aproximar a senhora, a galinha, por 
indução, foi ao encontro dela para reclamar o seu milho. Qual não 
foi a sua surpresa quando a senhora a pegou pelo pescoço com a 
intenção de pô-la na panela (HEFEZ, 2009, p. 10).
Admitir que algo funcione para uma certa quantidade de valores não significa 
que funcione para qualquer uma delas. Esse foi o caso da galinha da história do 
matemático Russel. Achou que funcionaria novamente no caso 100, porém, a 
prova não foi muito bem o esperado, pelo menos para a galinha.
VOCÊ SABE RESPONDER?
Qual o principal objetivo da indução matemática?
Veremos um exemplo extremamente curioso sobre a raciocínio indutivo que 
dará ênfase ao motivo de demonstrar para validar.
Exemplo: 
Encontramos um polinômio P n n n( ) � � �2 41 que fornece apenas números 
primos. Veja na tabela a seguir os 40 primeiros números obtidos por meio dele:
n P n( ) n P n( ) n P n( ) n P n( )
1 41 11 151 21 461 31 971
2 43 12 173 22 503 32 1033
3 47 13 197 23 547 33 1097
4 53 14 223 24 593 34 1163
5 61 15 251 25 641 35 1231
UNIASSELVI
1
4
1
TEMA DE APRENDIZAGEM 4
n P n( ) n P n( ) n P n( ) n P n( )
6 71 16 281 26 691 36 1301
7 83 17 313 27 743 37 1373
8 97 18 347 28 797 38 1447
9 113 19 383 29 853 39 1523
10 131 20 421 30 911 40 1601
Tabela 1 – Valores aplicados em P(n) / Fonte: adaptada de Pitzer e Santos (2020).
Será que conhecemos um polinômio que fornece apenas números primos? 
Apesar de todos os números obtidos até o momento serem realmente primos, 
o polinômio não funciona para P( )41 1681 41 41� � � . 
Notem como é importante na matemática a demonstração. Apesar de refu-
tarmos a ideia do polinômio com um contraexemplo, é fundamental trabalhar 
com verdades.
Um número primo tem apenas dois divisores, o número 1 e ele mesmo No caso 
do número 1681, não é um número primo, pois tem três divisores: 1, 41 e 1681.
PENSANDO JUNTOS
Para a continuação dos valores da tabela, podemos utilizar o algoritmo a seguir, 
na linguagem de programação Python. Este algoritmo pode ser testado em outras 
linguagens de programação, como o C e o Java, bastando apenas fazer adaptações.
Você pode entrar com qualquer valor inteiro (n = int(input()). Se entrar com 
n = 300, teremos 89741. Teste outros valores e verifique se são números primos.
print(‘--------------------------------------------------------------------------’)
print(‘Exemplos de valores aplicados em P(n) = n**2 - n + 41.’)
print(‘n é um número natural positivo.’)
print(‘P(n) é o número obtido que pode ser ou não primo.’)
1
4
1
print(‘--------------------------------------------------------------------------’)
n = int(input(‘Entre com o valor de n:’))
k = (n**2 -n +41)
print(‘O valor de P(n) será:’, k)
print(‘--------------------------------------------------------------------------’)
Ao executar o programa, teremos:
-------------------------------------------------------------------------
Exemplos de valores aplicados em P n n n( ) **� � �2 41 .
n é um número natural positivo.
P n( ) é o número obtido que pode ser ou não primo.
-------------------------------------------------------------------------
Entre com o valor de n : 300
O valor de P n( ) será: 89741
-------------------------------------------------------------------------
 Teorema 2: (Prova por indução matemática) sejam a Z∈ e seja p n( ) uma
sentença aberta emn . Suponha que:
p a( ) é verdadeiro, e que
� � � �n a p n p n, ( ) ( )1 é verdadeiro.
Então, p n( ) é verdadeiro para todo n a≥ .
O teorema nos diz que se um certo valor a goza da sentença definida nos núme-
ros inteiros e que o sucessor de a também goza dessa sentença, então todos os 
números deste conjunto gozam desta sentença. 
Diferente da indução empírica já comentada, a indução matemática não 
deixa pontos abertos quanto à validade de uma proposição. Mesmo que uma 
sentença seja verdade para uma finidade de valores, isso não significa que fun-
cionará para todos. 
UNIASSELVI
1
4
1
TEMA DE APRENDIZAGEM 4
Segundo Hefez (2016), o primeiro registro da utilização do princípio da indu-
ção matemática foi feito por Francesco Maurolycus, em 1575, na tentativa de en-
contrar uma fórmula exata, para a soma dos n primeiros números naturais ímpares:
S nn � � � � �1 3 2 1... ( )
Acompanhe o resultado obtido quando realizamos a soma dos quatro primei-
ros casos:
S
S
S
S
1
2
3
4
1
1 3 4
1 3 5 9
1 3 5 7 16
�
� � �
� � � �
� � � � �
É intuitivo perceber que a fórmula Sn n� � � � �1 3 2 1... ( ) é o resultado da 
soma dos n números naturais ímpares. Ela nos fornece uma conjectura para 
um raciocínio indutivo em que S nn = 2 . 
Já vimos anteriormente que nada está provado ainda. Vamos, então, utilizar do 
princípio da indução matemática para realizar a demonstração. Os passos para 
realizar tal demonstração são simples:
• Queremos provar que a propriedade P n S nn( ) : = 2
 vale para 
todo n N∈ . Verificaremos, inicialmente, que P( )1 é válida. De fato: 
P S( ) :1 1 11
2= = o que é verdade. 
• Agora, vamos supor que P n( ) é verdadeira para certo valor de n, soma-
mos ambos os membros da igualdade por ( )2 1n + , obtemos:
1 3 2 1 2 1 2 1
1 3 2 1 2 1 1
2� � � � � � � � �
� � � � � � � �
... ( ) ( ) ( )
... ( ) ( ) ( )
n n n n
n n n 22
Logo P n P n( ) ( )� �1 . Assim, pelo princípio da indução, a proposição P n( ) 
vale para todo n N∈ .
APROFUNDANDO
1
4
4
Veremos agora um exemplo.
Mostre que, para n N∈ , vale:
1
1 2
1
2 3
1
1 1. .
...
( )
� � �
�
�
�n n
n
n
Demonstraremos, por meio da programação Python, com as duas principais de-
monstrações, ou seja, P( )1 e P n( )+1 . Este algoritmo pode ser testado em outras 
linguagens de programação, como o C e o Java, bastando apenas fazer adaptações.
print(‘*********************************************************’)
print(‘Mostre que para n pertencente N, vale:’)
print(‘1/1*2 + 1/2*3 + ... + 1/n*(n + 1) = n/(n + 1).’)
print(‘*********************************************************’)
print(‘Para P(1) teremos no lado esquerdo:’)
k = 1/(1*(1 + 1))
print(k)
print(‘Para P(1) teremos no lado direito:’)
w = 1/(1 + 1)
print(w)
print(‘Logo, 1/2 = 1/2’)
print(‘*********************************************************’)
print(‘Para P(n + 1) teremos que somar em ambos os lados 1/(n + 1)(n + 2).’)
print(‘No segundo lado, teremos no final (n + 1)/(n + 2).’)
print(‘Que é o sucessor da expressão mostrada como hipótese de indução.’)
print(‘Logo, P(n) = P(n + 1) e P(n) vale para todo n pertencente a N.’)
print(‘*********************************************************’)
Ao executar o programa, teremos:
*********************************************************
Mostre que, para n pertencente N , vale:
1 1 2 1 2 3 1 1 1/ * / * ... / *( ) / ( )� � � � � �n n n n
*********************************************************
Para P( )1 , teremos no lado esquerdo:
0.5
UNIASSELVI
1
4
5
TEMA DE APRENDIZAGEM 4
Para P( )1 , teremos no lado direito:
0.5
Logo, 1 2 1 2/ /=
*********************************************************
Para P n( )+1 , teremos que somar em ambos os lados 1 1 2/ ( )( )n n+ + . 
No segundo lado, teremos no final ( )( )n n+ +1 2 .
Que é o sucessor da expressão mostrada como hipótese de indução. 
Logo, P n P n( ) ( )� �1 e P n( ) vale para todo n pertencente a N .
*********************************************************
Teorema 3: (Prova por indução completa) seja p n( ) uma sentença aberta tal que:
p a( ) é verdadeiro, e que
∀n p a, ( ) e p a( )+1 e ⋅ ⋅ ⋅ e p n p n( ) ( )� �1 é verdadeiro
Então, p n( ) é verdadeiro para todo n a≥ .
A diferença entre o Princípio de Indução Matemática com este, é que enquanto 
no primeiro tínhamos um número natural n qualquer, tentamos provar que 
P n( )+1 é verdadeira baseado apenas na hipótese de que P n( ) é verdadeira.
Na indução completa, prova-se que P n( )+1 é verdadeira fundamentado 
no fato de que as proposições P P P P n( ), ( ), ( ),..., ( )1 2 3 são todas verdadeiras, 
ou seja, em vez de admitir que apenas P n( ) é verdadeira, pode-se admitir que 
P P P n( ), ( ),..., ( )1 2 são verdadeiros, dessa forma, temos mais base e consistência 
na demonstração.
VOCÊ SABE RESPONDER?
Você sabe demostrar por indução matemática a expressão: 
2 4 8 2 2 2 1� � � � � �... ( )n n
?
1
4
1
Na próxima fase, será desenvolvido o tema Definição por recorrência, comple-
mentando o assunto sobre princípio da indução matemática.
DEFINIÇÃO POR RECORRÊNCIA
Para dar continuidade ao desenvolvimento das aplicações do método da indução, 
veremos o conceito de recorrência, que trará mais rigor no tratamento de algumas 
situações matemáticas.
Muitas sequências, como as aritméticas e geométricas podem ser definidas 
recursivamente, ou seja, mediado de uma regra que possibilita calcular qualquer 
termo, em função do antecessor imediato.
Por exemplo: seja a sequência 1 5 9 4 3� � � � �... ( )n com n N∈ . 
Essa é uma sequência bem conhecida, uma progressão aritmética de razão 
4. Logo, uma forma de definir o próximo termo da sequência an +1 , por recor-
rência, resumir-se-ia na expressão:
a an n� � �1 4
Ou, ainda, a soma de todos Sn os termos, seria definida por:
S S an n n� � � �1 1
Perceba que neste exemplo elementar conseguimos notar a aplicação do conceito 
de recorrência por duas vezes, uma definindo o próximo termo da sequência e 
no outro caso a soma até determinado ponto. 
Podemos citar dois exemplos de sequências aritmética e geométrica, respec-
tivamente:
A = { 1 + 8 + 15 + 21 + ...}, razão 7; e
B = { 1 + 3 + 9 + 27 + ...}, razão 3.
É importante ressaltar que podemos denotar somas como a dos exemplos 
anteriores, pela notação de somatório:
S an ii
n� �� ( )1
Podemos explicar a fórmula anterior conforme a figura a seguir.
UNIASSELVI
1
4
1
TEMA DE APRENDIZAGEM 4
Limite superior
Limite inferior
Letra grega Sigma Argumento
onde parar
onde começar
Símbolo de somatório Expressão a ser somada 
Figura 1 – Explicação da notação de somatório / Fonte: adaptada de Pitzer e Santos (2020).
Descrição da Imagem: a figura apresenta a letra grega sigma, representando a soma de argumentos xi. Também 
temos definidos os limites superior e inferior da letra sigma. Fim da descrição.
Existem algumas propriedades que apenas apresentaremos sobre o somatório. Se-
jam ai e bi duas sequências de elementos de um conjunto A munida de duas 
operações sujeitas às leis da aritmética e seja c A∈ . Vale as seguintes propriedades:
( ) ( ) ( ) ( )i a b a bi i
i
n
i
i
n
i
i
n
� � �
� � �
� � �
1 1 1
( ) . ( ) ( . )ii c a c ai
i
n
i
i
n
� �
� ��
1 1
( ) ( )iii a aa ai
i
n
ni�
�
�� ��� 1
1
1 1
( ) ( )iv c nc
i
n
�
� �
1
1
4
8
Por exemplo: 
Encontre uma expressão fechada para a soma:
1 2 2 3 3 4 1� � � � � � � � �... ( )n n .
Teremos, pela propriedade i :
i i i i i i i i
i
n
i
n
i
n
i
n
.( ) ( . ) .� � � � �
� � � �
� � � �1
1 1 1 1
Usando os resultados das sequências a seguir:
1 2 1
2
� � ���� �
�n n n( )
1 2 1 2 1
6
2 2 2� � ���� �
� �n n n n( )( )
Desenvolvendo, teremos:
i i i
i
n
i
n
. � �
� �
� �
1 1
n n n n n( )( ) ( )� �
�
�
�
1 2 1
6
1
2
n n n n n( )( ) ( )� � � �
�
1 2 1 3 1
6
n n n( )( )� � �
�
1 2 1 3
6
n n n( )( )� �
�
1 2 4
6
n n n( )( )� �
�
1 2
3
UNIASSELVI
1
4
9
TEMA DE APRENDIZAGEM 4
Por recorrência, é possível definir o fatorial de um número natural, denotado por 
n! , comosendo 0 1 1! != = e ( )! ! ( )n n n� � � �1 1 , se n ≥ 1 .
Outra importante aplicação da recorrência está na definição da operação de po-
tenciação. Seja a um elemento de um conjunto A munido de duas operações 
sujeitas às leis básicas da aritmética. As potências an com n inteiro, n ≥ 0 , são 
definidas por recorrência, como:
a a1 = e a0 1= , se a ≠ 0 , então a a an n� � �1
.
Vale as seguintes propriedades:
( ) .i a a am n m n� �
( ) ( ) .ii a am n m n=
( ) ( . ) .iii a b a bm m m=
APROFUNDANDO
Podemos criar, por meio da programação Python, um algoritmo para calcular o 
fatorial de qualquer número natural. 
No algoritmo, colocamos import math, módulo que fornece acesso às funções 
matemáticas definidas pelo padrão C. Também a função math factorial, que per-
mite o cálculo do fatorial. Este algoritmo pode ser testado em outras linguagens 
de programação, como o C e o Java, bastando apenas fazer adaptações.
print(‘*********************************************************’)
import math
x=int(input(‘Entre com o valor para o cálculo do fatorial:’))
print(math.factorial(x))
print(‘*********************************************************’)
Ao executar o programa para o valor 7, teremos:
*********************************************************
Entre com o valor para o cálculo do fatorial:7 
5040
*********************************************************
Outrossim, demonstraremos, por meio da programação Python, com as duas 
principais demonstrações, ou seja, P(1) e P(n+1), mais um exemplo, utilizando 
1
5
1
as propriedades da potenciação. Este algoritmo pode ser testado em outras lin-
guagens de programação, como o C e o Java, bastando apenas fazer adaptações.
print(‘*********************************************************’)
print(‘Mostre que para n pertencente N, vale:’)
print(‘2 + 4 + 8 + ... + 2**n = 2(2**n - 1).’)
print(‘*********************************************************’)
print(‘Para P(1) teremos no lado esquerdo:’)
k = 2**1
print(k)
print(‘Para P(1) teremos no lado direito:’)
w = 2*(2**1 - 1)
print(w)
print(‘Logo, 2 = 2’)
print(‘*********************************************************’)
print(‘Para P(n + 1) teremos que somar em ambos os lados 2**(n + 1).’)
print(‘No segundo lado, teremos no final 2*(2**(n + 1) - 1.’)
print(‘Que é o sucessor da expressão mostrada como hipótese de indução.’)
print(‘Logo, P(n) = P(n + 1) e P(n) vale para todo n pertencente a N.’)
print(‘*********************************************************’)
Ao executar o programa, teremos:
*********************************************************
Mostre que para n pertencente N, vale:
2 + 4 + 8 + ... + 2**n = 2(2**n - 1).
*********************************************************
Para P(1), teremos no lado esquerdo:
2
Para P(1), teremos no lado direito:
2
Logo, 2 = 2
*********************************************************
Para P(n + 1), teremos que somar em ambos os lados 2**(n + 1).
No segundo lado, teremos no final 2*(2**(n + 1) - 1.
Que é o sucessor da expressão mostrada como hipótese de indução. 
Logo, P(n) = P(n + 1) e P(n) vale para todo n pertencente a N.
*********************************************************
UNIASSELVI
1
5
1
TEMA DE APRENDIZAGEM 4
Para você encerrar este tema sobre a indução matemática, indico a leitura do 
artigo Indução matemática, de Abramo Hefez, disponível no Google Acadêmi-
co. Recursos de mídia disponíveis no conteúdo digital do ambiente virtual de 
aprendizagem 
EU INDICO
Acesse seu ambiente virtual de aprendizagem e confira a aula referente a este 
tema.
EM FOCO
NOVOS DESAFIOS
No decorrer deste tema, você aprendeu sobre indução matemática, tendo dois 
temas de destaque: Princípio da indução matemática e Definição por recorrência. 
Após o conhecimento adquirido ao longo deste tema, você deve lembrar 
que, no início deste estudo, na seção, inicie sua jornada, falamos sobre a se-
quência de Fibonacci.
É possível provar ela pela indução matemática. Já vimos em dois algoritmos 
no decorrer do tema como fazer a prova, ou seja, P(n) = P(n + 1).
Na área de computação, você pode utilizar na sua vida profissional o algorit-
mo a seguir, na programação Python, para obter qualquer termo da sequência de 
Fibonacci. Você pode gerar este algoritmo em outras linguagens de programação, 
como o C e o Java, bastando apenas fazer adaptações.
Lembrando da sequência de Fibonacci e considerando a sequência a partir 
do 1, temos: 1,1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, ... Observamos que o 
terceiro termo é 2 e o décimo termo é 55. Se você quiser saber o centésimo termo? 
Seria complicado calcular manualmente. Então, você pode utilizar o algoritmo a 
seguir, obtendo rapidez e precisão.
1
5
1
print(‘Sequência de Fibonacci – Sequência de Fibonacci.’)
print(‘Considere a sequência de Fibonacci a partir do 1.’)
n = int(input(“Qual termo desejas? “))
ult=1
pen=1
print(‘Sequência de Fibonacci – Sequência de Fibonacci.’)
if (n==1) or (n==2):
    print(“1”)
else:
    for count in range(2,n):
        ter = ult + pen
        pen = ult
        ult = ter
        count += 1
    print(ter)
print(‘Sequência de Fibonacci – Sequência de Fibonacci.’)
Nesse algoritmo, foi utilizado importantes elementos do dia a dia da programa-
ção, como o if, else, for e o in. O n define a posição do número; ult, último; pen, 
penúltimo; e ter, termo.
Ao executar o programa, teremos:
Sequência de Fibonacci – Sequência de Fibonacci.
Considere a sequência de Fibonacci a partir do 1.
Qual termo desejas? 100
Sequência de Fibonacci – Sequência de Fibonacci.
354224848179261915075
Sequência de Fibonacci – Sequência de Fibonacci.
O número 354224848179261915075 é muito grande para ser calculado ma-
nualmente.
Podemos gerar algoritmos simples, mas extremamente funcionais com mui-
tas variáveis relacionadas em poucas fórmulas. As grandes vantagens dos algo-
ritmos é tornar a resolução matemática rápida e precisa.
UNIASSELVI
1
5
1
1. Uma das aplicações da recorrência, na indução matemática, é o fatorial.
Temos (n + 1)! = n!⋅(n + 1), se n ≥ 1.
Podemos criar, por meio da linguagem Python, um algoritmo para calcular o fatorial de 
qualquer número.
O algoritmo a seguir é um exemplo.
print(‘*********************************************************’)
import math
n=int(input(‘Entre com o valor para o cálculo do fatorial:’))
print(math.factorial(n))
print(‘*********************************************************
Para o fatorial n!, temos n.(n – 1)!. Para o fatorial (n – 1)!, temos (n - 1). (n - 2)!. Como iríamos 
gerar um algoritmo na linguagem Python para (n – 1)!? O n deve ser número natural positivo 
maior que 1.
2. Considerando a sequência de números ímpares positivos (2n – 1), podemos criar, por meio 
da linguagem Python, um algoritmo para calcular a posição de um número na sequência 
de números. Por exemplo, para n = 3, teremos 5.
1, 3, 5, ... a partir de (2n – 1). Para n = 3, (2.3 – 1) = 5.
O algoritmo a seguir é um exemplo.
print(‘--------------------------------------------------------------------------’)
print(‘Exemplos de valores aplicados em P(n) = 2*n - 1.’)
print(‘n é um número natural positivo maior que 0.’)
print(‘P(n) é o número ímpar positivo.’)
print(‘--------------------------------------------------------------------------’)
AUTOATIVIDADE
1
5
4
n = int(input(‘Entre com o valor de n:’))
k = (2*n - 1)
print(‘O valor de P(n) será:’, k)
print(‘--------------------------------------------------------------------------’)
Considerando a sequência de números pares positivos divisíveis por 4, crie, por meio da 
linguagem Python, um algoritmo para calcular a posição de um número na sequência de 
números. O n deve ser número natural par positivo maior que 1.
3. A sequência de Fibonacci é uma sequência de números inteiros iniciados por zero e um, no 
qual cada termo subsequente corresponde à soma dos dois números anteriores: 0,1, 1, 2, 
3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, ... Ela é encontrada na natureza. Exemplos: as espiraisdo girassol, o número de pétalas da margarida e a concha do caracol Nautilus.
Você pode utilizar o algoritmo a seguir, na linguagem Python, para obter qualquer termo da 
sequência de Fibonacci.
print(‘Sequência de Fibonacci - Sequência de Fibonacci.’)
print(‘Considere a sequência de Fibonacci a partir do 1.’)
n = int(input(“Qual termo desejas? “))
ult=1
pen=1
print(‘Sequência de Fibonacci - Sequência de Fibonacci.’)
if (n==1) or (n==2):
    print(“1”)
else:
    for count in range(2,n):
        ter = ult + pen
AUTOATIVIDADE
1
5
5
        pen = ult
        ult = ter
        count += 1
    print(ter)
print(‘Sequência de Fibonacci - Sequência de Fibonacci.’)
Considerando a sequência de Fibonacci, qual seria o termo 45?
a) 1134903170. 
b) 12586269025. 
c) 1548008755920. 
d) 23416728348467685. 
e) 354224848179261915075. 
4. Os passos para realizar a demonstração pelo princípio da indução matemática seriam dois.
Considere o exemplo 2 + 4 + 6 + ··· + 2n = n(n + 1).
Verificaremos inicialmente que P(1) é válida. 
Agora, vamos supor que P(n) é verdadeira para certo valor de n, somamos ambos os mem-
bros da igualdade por 2n + 2.
Logo P(n) ⇒ P(n + 1). Assim, pelo Princípio da Indução, a proposição P(n) vale para todo n ∈ Ν.
Podemos também testar vários valores no lugar de n e verificar as igualdades.
Considere a sequência 0 + 1 + 2 + ··· + n = n(n + 2)/2 . A aplicando a indução matemática, po-
demos afirmar:
I - Verificaremos inicialmente que P(0) é válida;
II - Verificaremos inicialmente que P(1) é válida; e
III - Verificaremos inicialmente que P(2) é válida.
É correto o que se afirma em:
AUTOATIVIDADE
1
5
1
a) I, apenas. 
b) III, apenas. 
c) I e II, apenas. 
d) II e III, apenas. 
e) I, II e III.
5. Um número primo tem apenas dois divisores, o número 1 e ele mesmo. No caso do número 
20 não é um número primo, pois tem os divisores: 1, 2, 4, 5, 10 e 20.
O polinômio P(n) = n2 – n + 41 permite calcular números primos numa faixa de n = 1 até n = 40.
Na linguagem Python, podemos utilizar o seguinte algoritmo para P(n) = n2 – n + 41 e encon-
trar um número:
print(‘--------------------------------------------------------------------------’)
print(‘Exemplos de valores aplicados em P(n) = n**2 - n + 41.’)
print(‘n é um número natural positivo.’)
print(‘P(n) é o número obtido que pode ser ou não primo.’)
print(‘--------------------------------------------------------------------------’)
n = int(input(‘Entre com o valor de n:’))
k = (n**2 -n +41)
print(‘O valor de P(n) será:’, k)
print(‘--------------------------------------------------------------------------’)
No polinômio P(n) = n2 – n + 41, com n = 35, obtemos um número que pode ser primo ou não. 
Podemos utilizar um algoritmo na linguagem Python para P(n) = n2 – n + 41 e encontrar um 
número para n = 35. Este é:
a) 1164 e é primo. 
b) 1231 e é primo. 
c) 1231 e não é primo. 
d) 1373 e não é primo. 
e) 1601 e não é primo. 
AUTOATIVIDADE
1
5
1
REFERÊNCIAS
ABBAGNANO, N. Dicionário de filosofia. São Paulo: Martins Fontes, 2003.
FONSECA, R. V. Teoria dos números. Belém: UEPA, 2011.
HEFEZ, A. Iniciação à aritmética. Rio de Janeiro: Sociedade Brasileira de Matemática, 2009.
HEFEZ, A. Aritmética. Rio de Janeiro: Sociedade Brasileira de Matemática, 2016.
PITZER, L. C.; SANTOS, L. G. dos. Aritmética e teoria dos números. Indaial: Uniasselvi, 2020.
1
5
8
1. Analisando as informações no algoritmo a seguir, bastava substitui n por n – 1.
print(‘*********************************************************’)
import math
n=int(input(‘Entre com o valor para o cálculo do fatorial:’))
print(math.factorial(n - 1))
print(‘*********************************************************’)
Se utilizarmos como entrada o valor 4, teremos 3! na resolução. O valor será 6.
(n + 1)! = n!⋅(n + 1), se n ≥ 1.
2. Analisando as informações no algoritmo a seguir, bastava utilizar (2n) como fórmula base e 
realizar os ajustes nas linhas.
print(‘--------------------------------------------------------------------------’)
print(‘Exemplos de valores aplicados em P(n) = (2*n).’)
print(‘n é um número natural par positivo maior que 1.’)
print(‘P(n) é o número par positivo divisível por 4.’)
print(‘--------------------------------------------------------------------------’)
n = int(input(‘Entre com o valor de n:’))
k = (2*n)
print(‘O valor de P(n) será:’, k)
print(‘--------------------------------------------------------------------------’)
Se utilizarmos como entrada o valor 4, teremos 2.4 = 8. 
(2n).
3 Opção A.
Aplicando no algoritmo, fazendo-o executar, teríamos:
print(‘Sequência de Fibonacci – Sequência de Fibonacci.’)
print(‘Considere a sequência de Fibonacci a partir do 1.’)
n = int(input(“Qual termo desejas? “))
ult=1
pen=1
print(‘Sequência de Fibonacci – Sequência de Fibonacci.’)
if (n==1) or (n==2):
    print(“1”)
else:
    for count in range(2,n):
        ter = ult + pen
GABARITO
1
5
9
        pen = ult
        ult = ter
        count += 1
    print(ter)
print(‘Sequência de Fibonacci – Sequência de Fibonacci.’)
Sequência de Fibonacci – Sequência de Fibonacci.
Considere a sequência de Fibonacci a partir do 1.
Qual termo desejas? 45
Sequência de Fibonacci – Sequência de Fibonacci.
1134903170
Sequência de Fibonacci – Sequência de Fibonacci.
4 Opção A.
Os cálculos corretos seriam:
I. Verificaremos inicialmente que P(0) é válida; verdadeira.
0 = 0(0 + 2)/2 = 0
II. Verificaremos inicialmente que P(1) é válida; e Falso.
0 + 1 = 1(1 + 2)/2
1 ≠ 3/2
III. Verificaremos inicialmente que P(2) é válida. Falso.
0 + 1 + 2 = 2(2 + 2)/2
3 ≠ 4
0 + 1 + 2 + ··· + n = n(n + 2)/2.
5 Opção B.
Executando o algoritmo a seguir:
print(‘--------------------------------------------------------------------------’)
print(‘Exemplos de valores aplicados em P(n) = n**2 - n + 41.’)
print(‘n é um número natural positivo.’)
print(‘P(n) é o número obtido que pode ser ou não primo.’)
print(‘--------------------------------------------------------------------------’)
n = int(input(‘Entre com o valor de n:’))
k = (n**2 -n +41)
print(‘O valor de P(n) será:’, k)
print(‘--------------------------------------------------------------------------’)
Teremos para n = 35, P(35) =1231.
P(n) = n2 – n + 41.
GABARITO
1
1
1
MINHAS ANOTAÇÕES
1
1
1
MINHAS METAS
RELAÇÕES E FUNÇÕES
Identificar relações entre grandezas variáveis dadas por gráficos, tabelas e representação 
algébrica na computação.
Compreender o conceito de função.
Analisar o domínio, o contradomínio e a imagem de uma função.
Identificar quando uma função é sobrejetiva, injetiva e bijetiva.
Analisar gráficos de função crescente e decrescente.
Compreender as funções inversa, composta, do primeiro e do segundo grau e modular.
Compreender as funções exponencial e logarítmica.
T E M A D E A P R E N D I Z A G E M 5
1
1
1
INICIE SUA JORNADA
Há situações do dia a dia em que necessitamos relacionar grandezas. 
Como iríamos relacionar e representar graficamente uma compra em uma 
feira de hortifruti envolvendo duas grandezas: o peso de maçãs com o valor das 
frutas? Se o valor de 1 kg de maças vale 18,23 reais, quanto valeria 3 kg de maças? 
Nesse caso simples, a relação entre as grandezas peso e valor pode ser feita 
por uma regra de três simples ou uma função do primeiro grau. Neste exemplo, 
poderíamos utilizar a função v p � � �18 23, , em que podemos dizer que v , o 
valor, é função de p , peso.
Observe na Tabela 1 a seguir que podemos construir a partir da função 
v p � � �18 23, . 
Peso das 
maças
1 2 3 4 5
Valor das 
maças
18,23 36,46 54,69 72,92 91,15
Tabela 1 – Tabela relacionado peso das maças com o valor / Fonte: o autor.
Mesmo estando na feira, poderíamos fazer esses cálculos da Tabela 1 na calcula-
dora do celular. Também, por meio do celular, baixar um app chamado GeoGebra 
e realizar a representação gráfica desta função v p � � �18 23, , permitindo uma 
visão espacial dessa relação. Nográfico a seguir, o v é o y e o p é o x . 
Observe o gráfico desta função desenvolvido no GeoGebra, Figura 1.
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 5
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
3 4 5 6 7 81-1
-2
-4
-6
-8
2
2
4
6
8
10
12
14
16
18
Figura 1 – Valores de maças em função do peso das maças / Fonte: o autor.
Descrição da Imagem: a figura apresenta um gráfico da função afim. No eixo vertical, foi representado valores 
das maças e, no eixo horizontal, peso das maças. Gerado no aplicativo GeoGebra com base na função (18,23)p. 
Fim da descrição.
1
1
4
Em situações reais, podemos criar inúmeras funções práticas, como:
 ■ na meteorologia, relação de dia com a temperatura média; 
 ■ na construção civil, relação de medida do lado de uma sala de apartamen-
to com o perímetro desta sala;
 ■ na física mecânica, relação da distância percorrida por um móvel com o 
tempo gasto para percorrer esta distância;
 ■ nas aplicações financeiras, relação do montante obtido com o tempo de 
aplicação, mediante uma taxa anual.
Neste podcast, você aprenderá sobre relações e funções, considerando funções 
polinomiais, modulares, exponenciais e logarítmicas. Recursos de mídia disponí-
veis no conteúdo digital do ambiente virtual de aprendizagem.
PLAY NO CONHECIMENTO
VAMOS RECORDAR?
Para que você comece entendendo relações e funções, é importante uma revisão 
geral sobre o plano cartesiano, dentro da relação entre dois conjuntos numéricos. 
Sugiro a realização da atividade de localização de pontos no plano cartesiano no 
algoritmo do GeoGebra (aplicativo de acesso livre), na seção material didático, 
tema Plano cartesiano. Selecione a opção ponto e marque no papel quadriculado, 
obtendo x y, � � . Recursos de mídia disponíveis no conteúdo digital do 
ambiente virtual de aprendizagem.
Na próxima fase, será desenvolvido o tema Relações e funções, sendo que, inicial-
mente, falaremos sobre conceito de função, conceito de domínio, contradomínio 
e imagem, tipos de função sobrejetiva, injetiva e bijetiva, e tipos de função cres-
cente e decrescente, complementando com funções pares e ímpares.
UNIASSELVI
1
1
5
TEMA DE APRENDIZAGEM 5
DESENVOLVA SEU POTENCIAL
RELAÇÕES E FUNÇÕES
A definição de função como uma relação entre duas variáveis, uma variável é 
função da outra, y f x � � � , em que y é função de x , pois facilitará a com-
preensão das diversas representações de uma função. A capacidade de representar 
e identificar o mesmo conceito em diferentes representações permite perceber 
relações importantes e desenvolver uma compreensão profunda do conceito. 
No estudo das funções, é necessário promover a distinção entre o conceito de 
função e os seus diferentes tipos de representação (numérica, algébrica, gráfica). 
O uso da representação gráfica tem um papel fundamental na compreen-
são de tal distinção. As conexões entre as representações gráficas e as expressões 
algébricas trazem benefícios para a sua compreensão. Entende-se por gráfico 
de uma função f o conjunto de todos os pares ordenados x y; � � , em que x 
pertence ao domínio da função e y é a imagem correspondente, tal que a cada 
x só corresponde um e um só y , podendo este ser ou não o mesmo que um 
outro anterior. Os diferentes tipos de função possibilitam modelar diversas si-
tuações reais, servindo de aporte e ferramental matemático para compreensão 
de fenômenos científicos.
Livro: Fundamentos de matemática elementar: conjuntos e 
funções
Organizador: Carlos Murakami e Gelson Iezzi
Editora: Atual
Ano: 2019
Sobre o livro: a obra aborda a introdução ao conceito e os estu-
dos das funções polinomiais de 1º e 2º graus.
O capítulo final é muito importante para a continuação do es-
tudo de função inversa. Pode-se aproveitar o desenvolvimento 
de cada capítulo para revisar cálculo algébrico, principalmente 
em equações e inequações.
Este livro apresenta um aprofundamento no estudo de funções.
Os exemplos dados podem ser utilizados na área de programa-
ção, gerando algoritmos.
INDICAÇÃO DE LIVRO
1
1
1
NOÇÃO INTUITIVA DE FUNÇÃO
O conceito de função é um dos mais importantes da matemática, está presente 
sempre que relacionamos duas grandezas variáveis. 
Um dos exemplos é a numeração do sapato com o tamanho do seu pé. No 
Brasil, os fabricantes utilizam a fórmula N C
�
�5 28
4
, em que c é o tamanho 
do pé em centímetros e N é o número do calçado. N e C representam as variá-
veis, em que C é a variável independente e N é a variável dependente.
Observe a tabela na Figura 2 a seguir com algumas medidas de pés de 24 cm a 34 cm.
Tamanho do pé (cm)
N
ú
m
er
o 
d
o 
ca
lç
ad
o
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
24 26 28 30 32 34
Figura 2 – Tamanho do calçado em relação ao tamanho do pé
Fonte: Bonatti, Jenske e Pellizzaro (2015, p. 172).
Descrição da Imagem: a figura apresenta um gráfico no plano cartesiano relacionando o número do calçado, no 
eixo vertical, com o tamanho do pé, no eixo horizontal. A função geradora deste gráfico é definida por 
N C
�
�5 28
4
. Fim da descrição.
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 5
Para a obtenção dos valores do eixo vertical, y N = , utilizamos a fórmula 
N C
�
�5 28
4
 em função dos valores do eixo horizontal, x c = . Podemos ge-
rar um algoritmo na linguagem de programação Python para fazer os cálculos de 
maneira rápida e precisa. Este algoritmo pode ser testado em outras linguagens 
de programação, como o C e o Java, bastando apenas fazer adaptações.
Você pode entrar com qualquer valor inteiro ( x = int(input()). Se entrar com x = 
26 cm, teremos 39,5. Teste outros valores de 24 a 34 cm e verifique no eixo vertical.
print(‘%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%’)
print(‘Função definida pela fórmula y = (5x + 28)/4, Tamanho do calçado em relação 
ao tamanho do pé.’) 
x=int(input(‘Entre com o tamanho do pé em cm:’))
print(‘%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%’)
y = (5*x + 28)/4
print(‘O tamanho do calçado será:’, y)
print(‘%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%’)
Ao executar o algoritmo, teremos para 26 cm:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Função definida pela fórmula y = (5x + 28)/4, Tamanho do calçado em relação ao 
tamanho do pé.
Entre com o tamanho do pé em cm: 26
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
O tamanho do calçado será: 39.5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
APROFUNDANDO
DOMÍNIO, CONTRADOMÍNIO E CONJUNTO IMAGEM
Dada uma função f de A em B , o conjunto A chama-se domínio da função 
e o conjunto B contradomínio da função. Para cada x A∈ , o elemento y B∈
chama-se imagem de x pela função.
Domínio: é o conjunto de valores de x para os quais a função é possível. 
Contradomínio: é o conjunto dos valores possíveis de y . 
Imagem: são valores contidos no contradomínio. 
Em uma função f de A em B , usamos a indicação: f A B: → ou 
x y f x� � ( ) .
1
1
8
Por exemplo: 
Dados os conjuntos: 
A � � �0 1 2 3, , , e B � � �0 1 2 3 4 5 6, , , , , , , considerando que x A∈ 
e 2x B∈ . 
Solução: 
Para compreendermos, vamos classificar domínio, contradomínio e imagem. 
Domínio: conjunto A . 
Contradomínio: conjunto B . 
Imagem: a lei de correspondência por f x x� � � 2 , assim, a 
Im f� � � �� 0 2 4 6, , , .
Dessa forma, após analisarmos o domínio, o contradomínio e a imagem de 
uma função, podemos dar o conceito matemático de uma função:
Se x A∈ e y B∈ são duas variáveis, dizemos que ( ) f x é uma função de A 
em y ou uma função y , se:
Todos os elementos A de A estão envolvidos na relação; e
Para cada elemento y B∈ existe um único elemento y B∈ que lhe corresponde.
Observe pelo exemplo anterior que a primeira condição seria o conjunto 
A � � �0 1 2 3, , , ou domínio. A segunda condição, para f x x� � � 2 , seria 
todos os elementos de A gerando Im f� � � �� 0 2 4 6, , , .
Para melhor entender o exemplo anterior, sugiro a realização da atividade no al-
goritmodo GeoGebra (aplicativo de acesso livre), na seção material didático, tema 
Cópia de diagrama Venn: domínio – imagem. Basta deslocar o ponto no eixo do 
domínio que o algoritmo em função de y = 2x gera o ponto no eixo da imagem. Re-
cursos de mídia disponíveis no conteúdo digital do ambiente virtual de apren-
dizagem.
EU INDICO
A representação gráfica das funções pode ser feita de maneira eficiente por meio 
do aplicativo GeoGebra. Abra o GeoGebra no seu computador. Escolha a op-
UNIASSELVI
1
1
9
TEMA DE APRENDIZAGEM 5
ção iniciar calculadora. Abrirá um plano cartesiano com papel quadriculado ao 
fundo. No canto superior esquerdo, na opção +, ao lado, coloque para o exemplo
y x � 3 1- , somente 3 1x − . 
Teremos o gráfico a seguir, Figura 3:
Figura 3 – Gráfico da função y x � 3 1- no aplicativo GeoGebra / Fonte: o autor.
Descrição da Imagem: a figura apresenta um gráfico no plano cartesiano relacionando o número do eixo 
y , eixo vertical, com o número no eixo x , eixo horizontal. A função geradora deste gráfico é definida por 
y x � 3 1- . Fim da descrição.
Também é possível usar no seu celular o App calculadora gráfica GeoGebra.
Para complementar o entendimento do gráfico, você pode usar o algoritmo 
anterior, eu indico. Substituindo por 3 1x - , no canto superior esquerdo, tere-
mos, Figura 4: 
1
1
1
Figura 4 – Cópia do diagrama de Venn função y = 3x – 1 no aplicativo GeoGebra / Fonte: o autor.
Descrição da Imagem: a figura apresenta a cópia do diagrama de Venn relacionando o número do eixo x, domínio, 
com o número no eixo y, imagem. A função geradora neste diagrama é definida por y = 3x – 1. Fim da descrição.
Analisando o gráfico e o diagrama das Figuras 3 e 4, teremos, por exemplo:
f x
f x
f
1 3 1 3 1 1 4
0 3 1 3 0 1 1
1
 
 
 
 
3 1 3 1 1 2
2 3 1 3 2 1 5
x
f x
-
-
-
-
-
-
-
-
Domínio: { -1, 0, 1, 2}
Imagem: {-4, -1, 2, 5}
Há a possibilidade de construirmos os gráficos de forma digital em outros apli-
cativos, como o Winplot. Recursos de mídia disponíveis no conteúdo digital do 
ambiente virtual de aprendizagem 
EU INDICO
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 5
FUNÇÃO INJETIVA, SOBREJETIVA E BIJETIVA
Uma função é injetiva quando elementos diferentes de A são transformados por 
uma função em elementos diferentes de B , ou seja, não há elemento em B que 
seja imagem de mais de um elemento em A .
( ) ( )1 2 1 2 x x em A f x f x em B≠ → ≠
No último exemplo, temos um caso de função injetiva.
f f f f1 4 0 1 1 2 2 55
Uma função é sobrejetiva quando, para qualquer elemento y B∈ , pode-se en-
contrar um elemento x A∈ tal que f x y� � � . Quando todo elemento de B 
é imagem de pelo menos um elemento de A .
Im f B� � � 
No último exemplo, temos também um exemplo de função sobrejetiva, conside-
rando f : � → . O conjunto dos números reais é representado por  .
Uma função é bijetiva se ela for, simultaneamente, injetiva e sobrejetiva. 
Quando isso ocorre dizemos que há uma bijeção entre A e B .
A função dada por f x x 3 11- é bijetiva, pois ela é simultaneamente 
injetiva e sobrejetiva. 
x x em A f x f x em B e Im f B1 2 1 2� � � �� � � � � � �
VOCÊ SABE RESPONDER?
A função y x � 2 1- é uma função injetiva ou sobrejetiva para f : � →
(domínio → imagem)?
1
1
1
FUNÇÃO CRESCENTE E FUNÇÃO DECRESCENTE
Consideremos a função do 1º grau y x � 2 22- . Vamos atribuir valores cada 
vez maiores a x e observar o que ocorre com y .
Para a obtenção dos valores de y , utilizamos a fórmula y x � 2 2- em 
função dos valores de x . Podemos gerar um algoritmo na linguagem de pro-
gramação Python para fazer os cálculos de cinco valores: -2, -1, 0, 1 e 2. Este 
algoritmo pode ser testado em outras linguagens de programação, como o C e o 
Java, bastando apenas fazer adaptações.
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Função definida pela fórmula y = 2*X - 2’) 
y1 = 2*(-2) - 2
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Valor de y obtido em y = 2*X - 2 para x = -2:’, y1)
y2 = 2*(-1) - 2
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Valor de y obtido em y = 2*X - 2 para x = -1:’, y2)
y3 = 2*(0) - 2
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Valor de y obtido em y = 2*X - 2 para x = 0:’, y3)
y4 = 2*(1) - 2
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Valor de y obtido em y = 2*X - 2 para x = 1:’, y4)
y5 = 2*(2) - 2
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Valor de y obtido em y = 2*X - 2 para x = 2:’, y5)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
Ao executar o algoritmo, teremos:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Função definida pela fórmula y = 2*X - 2
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Valor de y obtido em y = 2*X - 2 para x = -2: -6
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Valor de y obtido em y = 2*X - 2 para x = -1: -4
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 5
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Valor de y obtido em y = 2*X - 2 para x = 0: -2
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Valor de y obtido em y = 2*X - 2 para x = 1: 0
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Valor de y obtido em y = 2*X - 2 para x = 2: 2
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Notem que, quando aumentamos o valor de x , os correspondentes valores de 
y também aumentam. Dizemos, então, que a função y x � �2 2 é crescente.
Consideremos a função do 1º grau y x 2 2- 2 . Vamos atribuir valores 
cada vez maiores a x e observar o que ocorre com y .
Para a obtenção dos valores de y , utilizamos a fórmula y x 2 2- 2 
em função dos valores de x . Podemos gerar um algoritmo na linguagem de 
programação Python para fazer os cálculos de cinco valores: -2, -1, 0, 1 e 2. Este 
algoritmo pode ser testado em outras linguagens de programação, como o C e o 
Java, bastando apenas fazer adaptações.
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Função definida pela fórmula y = -2*X - 2’) 
y1 = -2*(-2) - 2
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Valor de y obtido em y = -2*X - 2 para x = -2:’, y1)
y2 = -2*(-1) - 2
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Valor de y obtido em y = -2*X - 2 para x = -1:’, y2)
y3 = -2*(0) - 2
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Valor de y obtido em y = -2*X - 2 para x = 0:’, y3)
y4 = -2*(1) - 2
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Valor de y obtido em y = -2*X - 2 para x = 1:’, y4)
y5 = -2*(2) - 2
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Valor de y obtido em y = -2*X - 2 para x = 2:’, y5)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
1
1
4
Ao executar o algoritmo, teremos:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Função definida pela fórmula y = -2*X - 2
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Valor de y obtido em y = -2*X - 2 para x = -2: 2
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Valor de y obtido em y = -2*X - 2 para x = -1: 0
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Valor de y obtido em y = -2*X - 2 para x = 0: -2
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Valor de y obtido em y = -2*X - 2 para x = 1: -4
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Valor de y obtido em y = -2*X - 2 para x = 2: -6
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Notem que, quando aumentamos o valor de x , os correspondentes valores de y 
diminuem. Dizemos, então, que a função y x � � �2 2 é decrescente.
Resumindo, temos:
a função do 1º grau f x ax b� � � � é crescente quando o coeficiente de x é 
positivo (a > 0); 
a função do 1º grau f x ax b� � � � é decrescente quando o coeficiente de 
x é negativo (a < 0).
VOCÊ SABE RESPONDER?
Se você representar as funções y x � 2 2- 2 e y x 2 2- na 
calculadora gráfica do GeoGebra, há um ponto comumde cruzamento das duas 
retas no eixo y . Qual o valor numérico deste ponto?
UNIASSELVI
1
1
5
TEMA DE APRENDIZAGEM 5
FUNÇÃO PAR E FUNÇÃO ÍMPAR
Uma função f x� � é chamada função par quando � � � �x D f , domínio de 
f x� � , temos f x f x� � � �� � .
Portanto, numa função par, elementos simétricos possuem a mesma imagem. 
Uma consequência desse fato é que os gráficos cartesianos das funções pares são 
curvas simétricas em relação ao eixo y ou eixo das ordenadas.
Dizemos que dois pontos são simétricos em relação a uma reta fixa, quando 
um é a imagem espelhada do outro em relação a essa reta. Essa reta fixa é chamada 
de eixo de simetria.
Por exemplo:
A função y x � �2 2 é uma função par, pois ��R , temos f x f x� � � �� � 
Para f � � � � � � �� � � �2 2 2 4 2 62 
Para f 2 2 2 4 2 62� � � �� � � � � 
Logo, f f� �� � � �2 2 , função par.
Abra o GeoGebra no seu computador. Escolha a opção iniciar calculadora. 
No canto superior esquerdo, na opção +, ao lado, coloque para o exemplo 
y x � �2 2 , somente x2 2+ . Teremos o gráfico a seguir, Figura 5:
Figura 5 – Gráfico da função y = x2 + 2, no aplicativo GeoGebra / Fonte: o autor.
Descrição da Imagem: a figura apresenta um gráfico no plano cartesiano relacionando o número do eixo y, eixo 
vertical, com o número no eixo x, eixo horizontal. A função geradora deste gráfico é definida por y = x2 + 2. Fim 
da descrição.
1
1
1
Nesse gráfico, gerado pelo aplicativo GeoGebra, temos o eixo y sendo o eixo de 
simetria da função. 
Uma função f x� � é chamada função ímpar quando � � � �x D f , domínio 
de f x� � , temos f x f x - .
Assim, numa função ímpar, elementos simétricos possuem imagens simétri-
cas. Uma consequência desse fato é que os gráficos cartesianos das funções ím-
pares são curvas simétricas em relação à origem do sistema de eixos cartesianos, 
ou seja, em relação ao ponto de coordenadas (0, 0).
O exemplo y x � 3 1- , visto na Figura 3, é um exemplo de função ímpar. 
Analise também os dados do domínio e da imagem da Figura 4.
Quando uma função não assume as características de uma função par ou de uma 
função ímpar, dizemos que ela não possui paridade. Uma função cuja represen-
tação gráfica não é simétrica em relação ao eixo y ou em relação à origem do 
sistema cartesiano não é nem par, nem ímpar.
PENSANDO JUNTOS
Na próxima fase, será desenvolvido o tema Tipos de funções, nele haveremos 
de estudar funções inversa, composta, do primeiro e do segundo grau, modular, 
exponencial e logarítmica. 
Resumo de relações e funções.
Uma função é definida matematicamente da seguinte forma: Se x A∈ e y B∈ 
são duas variáveis, dizemos que f x� � é uma função de A em B ou uma função 
y, se:
Todos os elementos x de A estão envolvidos na relação.
Para cada elemento x A∈ , existe um único elemento y ∈ B que lhe corresponde.
Dada uma função f de A em B , o conjunto A chama-se domínio da função 
e o conjunto B contradomínio da função. Para cada x A∈ , o elemento y B∈ 
chama-se imagem de x pela função.
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 5
Uma função é injetiva quando elementos diferentes de A são transformados por 
uma função em elementos diferentes de B .
Uma função é sobrejetiva quando, para qualquer elemento y B∈ , pode-se 
encontrar um elemento x A∈ tal que f x y� � � .
Uma função é bijetiva se ela for, simultaneamente, injetiva e sobrejetiva.
a função do 1º grau f x ax b� � � � é crescente quando o coeficiente de x é 
positivo (a > 0). 
a função do 1º grau f x ax b� � � � é decrescente quando o coeficiente de 
x é negativo (a < 0).
Uma função f x� � é chamada função par quando � � � �x D f , domínio de 
f x� � , temos f x f x - .
Uma função f(x) é chamada função ímpar quando ∀ x ∈� D(f), domínio de f(x), temos 
f(x) = - f(–x).
TIPOS DE FUNÇÕES
Nesse tema, propomos um estudo sobre os tipos de funções mais utilizadas no 
dia a dia. Sugiro que, a cada tipo de função explicada, você faça sempre uso da 
calculadora gráfica do GeoGebra, para melhor visualizar a função estudada.
1
1
8
FUNÇÃO INVERSA
Dada uma função bijetiva, denomina-se função inversa de f a função g ou 
� :f x B1 � � tal que, se f a b� � � , então g b a� � � , com a A∈ e b B∈ .
Por exemplo:
Dada a função f x x� � � � � 3 5 . Vamos determinar a função inversa 
f x� � �1 .
y x � � �3 5
Vamos trocar o y pelo x e x por y.
x y y x y x � � � � � � � � �
� �3 5 3 5 5
3
� �
Vamos testar alguns valores.
Para x = 1 em y x � � �3 5 , temos y � � � � � � �3 1 5 3 5 2. .
Para x = 2 em 
� y x
�
� � 5
3
, temos 
� y � � �
�
2 5
3
1
Logo, f 1 2� � � , então f � � � �1 2 1 .
Livro: Cálculo
Organizador: Howard Anton, Irl C. Bivens, Stephen L. Davis e 
Claus Ivo
Editora: Bookman
Ano: 2014
Sobre o livro: a obra aborda tipos de funções de maneira obje-
tiva, com muitos exemplos resolvidos.
Com pedagogia eficaz, representações visuais e o estabele-
cimento da relação com o mundo real e com a própria expe-
riência do aluno (nos exemplos e exercícios), buscando a com-
preensão sem sacrificar a precisão matemática. 
Nesta edição, foram introduzidos novos conjuntos de exercí-
cios, que ajudarão os alunos a melhorarem a sua resolução de 
problemas pela prática. 
INDICAÇÃO DE LIVRO
UNIASSELVI
1
1
9
TEMA DE APRENDIZAGEM 5
FUNÇÃO COMPOSTA
Dadas as funções f A B: → e g B C: → , denominamos função composta 
de g e f a função g f A C : → , que é definida por ( )� g f x g f x � � � �� ��
, x A∈ . 
( )� g f x � � lê-se g composta em f.
Por exemplo: sejam f x x� � � � 2 1 e g x x� � � � 2 . Determinar 
f g x º� � � � e g f x º� �� � . 
f g x f x x x x x x º �� � � � � � � �� � � � � � � � � �2 2 1 4 4 1 42 2 2 �� 3
g f x g x x x x º� �� � � � � �� � � � � � � � � �2 2 2 21 1 2 1 2 1 .
Para melhor entender o exemplo anterior, sugiro a realização da atividade no al-
goritmo do GeoGebra (aplicativo de acesso livre), na seção material didático, tema 
Cópia de função inversa. Analise no gráfico a função y ax b � � com sua 
inversa. Recursos de mídia disponíveis no conteúdo digital do ambiente virtual 
de aprendizagem 
EU INDICO
Para melhor entender o exemplo anterior, sugiro a realização da atividade no al-
goritmo do GeoGebra (aplicativo de acesso livre), na seção material didático, tema 
Função composta. Digite as funções do exemplo anterior na parte superior direita 
e veja os resultados graficamente. Recursos de mídia disponíveis no conteúdo 
digital do ambiente virtual de aprendizagem 
EU INDICO
FUNÇÃO AFIM
Uma função chama-se função afim ou do primeiro grau quando existem dois 
números reais a e b tal que f x ax b� � � � , para todo x ∈� , com a ≠ 0 e 
b ≠ 0 . 
1
8
1
Observações sobre a função afim: 
 ■ se a = 0, teremos uma função constante, ou seja, f x b� � � ;
 ■ se b = 0, teremos uma função linear, ou seja, f x ax� � � ;
 ■ a é chamado de coeficiente angular ou declive da reta representada no 
plano cartesiano. O coeficiente angular a pode ser interpretado como a 
variação de y, correspondente à variação de uma unidade para x a partir 
de qualquer ponto da reta;
 ■ b é chamado de coeficiente linear da função. O coeficiente linear b cor-
responde à ordenada, ponto no qual a reta corta o eixo y (intercepto y), 
isto é, (0, b);
 ■ o ponto dado por ( / , )− b a 0 , cuja reta corta o eixo das abscissas, é cha-
mado de intercepto x; 
 ■ a função é crescente se a > 0 e decrescente se a < 0; 
 ■ a função é identificada por uma reta no plano cartesiano. 
Há funções do primeiro grau que aparentemente são iguais, porém se diferenciam 
pelo sinal do coeficiente angular e linear. Utilizaremos o GeoGebra e geraremos 
quatro funções parecidas, mas distintas algébrica e graficamente, Figura 6. 
Funções:
f x x� � � � 2 2 � g x x� � � 2 2� h x x� � � � � 2 2 � 
p x x� � � � � 2 2
Podemos observar que:
 ■ As funções f x� � e g x� � sãofunções crescentes, as retas passam pelo 
primeiro e terceiro quadrantes, pois o a > 0.
 ■ As funções h x� � e p x� � são funções decrescentes, as retas passam pelo 
segundo e quarto quadrantes, pois o a < 0.
 ■ As funções f x� � e h x� � se cruzam no mesmo ponto (0,2), pois apresen-
tam o mesmo coeficiente linear.
 ■ As funções g x� � e p x� � se cruzam no mesmo ponto (0,-2), pois apre-
sentam o mesmo coeficiente linear.
UNIASSELVI
1
8
1
TEMA DE APRENDIZAGEM 5
Figura 6 – Gráficos das funções f(x), g(x), h(x) e p(x) no aplicativo GeoGebra / Fonte: o autor.
Descrição da Imagem: a figura apresenta quatro funções do primeiro grau, f(x), g(x), h(x) e p(x). As retas se 
diferenciam pelos valores e sinais dos coeficientes angulares e lineares. Fim da descrição.
Um dos importantes postulados da geometria plana diz: dois pontos distintos 
determinam uma reta. De acordo com esse postulado, a construção do gráfico 
de uma função do 1º grau é feita obtendo-se dois de seus pontos distintos e tra-
çando-se a reta determinada por eles.
Primeiramente, observamos o seu coeficiente linear e marcamos este valor 
no eixo y, ou seja, (0,b). Depois, calculamos a raiz da função ou zero da função, 
ou seja, (-b/a, 0).
Por exemplo: 
Para função f x x� � � � 2 2 , temos para o eixo y o ponto (0,2). Para o 
eixo x, fazemos 2 2 0 2 2 1x x x � � � � � � � �� � e, para o eixo x, temos 
o ponto (-1,0). Traçamos a reta entre esses dois pontos. Observe a função f x� � 
na Figura 6. 
1
8
1
É possível determinar, também, a lei de formação de uma função afim se 
conhecidos dois pontos distintos dessa função. Para determinar a lei de formação 
de uma função afim y ax b � � , faz-se necessário encontrar os coeficientes 
que definem esse tipo de função, ou seja, a e b.
Podemos gerar um algoritmo na linguagem de programação Python para calcular 
os valores de a e de b, a partir de dois pontos definidos. Este algoritmo pode ser 
testado em outras linguagens de programação, como o C e o Java, bastando ape-
nas fazer adaptações.
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Obter os coeficientes a e b de uma Função y = a*x + b’)
print(‘Por meio de dois pontos (x1, y1) e (x2, y2)’) 
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
x1=int(input(‘Entre com o valor de x do primeiro ponto: ‘))
x2=int(input(‘Entre com o valor de x do segundo ponto: ‘))
y1=int(input(‘Entre com o valor de y do primeiro ponto: ‘))
y2=int(input(‘Entre com o valor de y do segundo ponto: ‘))
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
a = (y2-y1)/(x2-x1)
b = - a*x1 + y1
print(‘O valor de a da Função será:’, a)
print(‘O valor de b da Função será:’, b)
print(f’{a}x + {b}’)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
Vamos entrar com os pontos (2,3) e (4,5) pela função input() do Python.
O algoritmo irá gerar os valores de a e de b pelas fórmulas a = (y2-y1)/(x2-x1) e b 
= - a*x1 + y1. 
O comando print(f’{a}x + {b}’) irá imprimir a lei de formação da função afim. 
Ao executar o algoritmo, teremos:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Obter os coeficientes a e b de uma Função y = a*x + b
Por meio de dois pontos (x1, y1) e (x2, y2)
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Entre com o valor de x do primeiro ponto: 2
Entre com o valor de x do segundo ponto: 4
Entre com o valor de y do primeiro ponto: 3
Entre com o valor de y do segundo ponto: 5
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
O valor de a da Função será: 1.0
O valor de b da Função será: 1.0
1.0x + 1.0
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
APROFUNDANDO
UNIASSELVI
1
8
1
TEMA DE APRENDIZAGEM 5
FUNÇÃO QUADRÁTICA
Uma função quadrática ou função do segundo grau é qualquer função f de  
em  dada por uma lei da forma f x x x� � � � � a b c2 , em que, a, b e c são 
números reais e a ≠ 0 .
Observações sobre a função do segundo grau:
 ■ a é o coeficiente de x2 ;
 ■ b é o coeficiente de x. Se b = 0 e c for negativo, teremos raízes reais simé-
tricas;
 ■ c é o termo independente e define o ponto de corte da curva da função 
com o eixo y, ou seja, (0, c);
 ■ se c = 0, termos uma raiz nula;
 ■ a função é identificada por uma curva, parábola, no plano cartesiano;
 ■ as raízes da função definem os pontos de corte da curva com o eixo x, ou 
seja, (x,0);
 ■ se a>0 a concavidade da parábola será para cima. Se a<0 a concavidade 
da parábola será para baixo; 
 ■ D é discriminante, em que D � �b ac2 4 . D > 0 significa que temos 
duas raízes reais distintas. D = 0 significa que temos duas raízes reais 
iguais. D < 0 significa que não temos raízes reais; 
 ■ fórmula de Bhásskara ou fórmula resolvida permite calcular as raízes da 
função x e x� � �� � , em que 
x b b ac
a
�
� � �2 4
2
; 
 ■ as coordenadas do vértice da parábola são definidas por 
( ; )
� ��b
a a2 4 . Se 
a>0, o y do vértice é o valor mínimo da função. Se a<0, o y do vértice é o 
valor máximo da função. 
VOCÊ SABE RESPONDER?
Para a função f x x 3 -6 , você sabe dizer qual o ponto de corte da 
reta com o eixo x e o ponto de corte da reta com o eixo y?
1
8
4
Para melhor entender inicialmente a função do segundo grau, sugiro que teste 
vários valores nos controles deslizantes de a, b e c da atividade no algoritmo do 
GeoGebra (aplicativo de acesso livre), na seção material didático, tema Função do 
segundo grau. Ao manipular os controles deslizantes, crie vários tipos de funções 
do segundo grau graficamente. 
EU INDICO
Podemos criar um algoritmo na linguagem de programação Python para calcular 
os valores das raízes reais de uma função do segundo grau. Este algoritmo pode 
ser testado em outras linguagens de programação, como o C e o Java, bastando 
apenas fazer adaptações.
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Obter as raízes de uma Função y = a*x**2 + b*x + c.’)
print(‘Por meio dos coeficientes a,b e c.’) 
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
a=int(input(‘Entre com o valor de a: ‘))
b=int(input(‘Entre com o valor de b: ‘))
c=int(input(‘Entre com o valor de c: ‘))
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
d = (b**2 - 4*a*c)
x1 = (-b+d**(0.5))/(2*a)
x2 = (-b-d**(0.5))/(2*a)
print(‘Se o discriminante for maior que zero, teremos raízes reais distintas.’)
print(‘Se o discriminante for igual a zero, teremos raízes reais iguais.’)
print(‘Se o discriminante for menor que zero, não teremos raízes reais.’)
print(‘A função será:’)
print(f’{a}x**2 + {b}x + {c}’)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘As raízes serão:’, x1,’e’, x2)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
A função do Python input() permite entrar com os valores dos coeficientes a, b e c. 
O discriminante é definido pela fórmula d = (b**2 - 4*a*c). 
Não use vírgula, mas ponto, ou seja, não use 0,5, mas 0.5. Não temos como utilizar 
em programação raiz quadrada de forma direta. Usamos **(0.5).
As fórmulas de Bhaskara serão: x1 = (-b+d**(0.5))/(2*a) e x2 = (-b-d**(0.5))/(2*a).
O comando print(f’{a}x**2 + {b}x + {c}’) irá imprimir a lei de formação da função do 
segundo grau. 
APROFUNDANDO
UNIASSELVI
1
8
5
TEMA DE APRENDIZAGEM 5
Observe que o algoritmo gera valores muito precisos das raízes reais.
Teste vários valores de a, b e c para obter raízes da função do segundo grau.
Por exemplo, teste a=1, b=-5 e c=6.
Ao executar o algoritmo, teremos:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Obter as raízes de uma Função y = a*x**2 + b*x + c.
Por meio dos coeficientes a,b e c.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
Entre com o valor de a: 1
Entre com o valor de b: -5
Entre com o valor de c: 6
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Se o discriminante for maior que zero, teremos raízes reais distintas.
Se o discriminante for igual a zero, teremos raízes reais iguais.
Se o discriminante formenor que zero, não teremos raízes reais.
A função será:
1x**2 + -5x + 6
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
As raízes serão: 3.0 e 2.0
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
APROFUNDANDO
Para uma aplicação das funções do segundo grau no dia a dia, sugiro que você 
leia o artigo Uso da função quadrática em criptografia, disponível no Google Aca-
dêmico. Recursos de mídia disponíveis no conteúdo digital do ambiente virtual 
de aprendizagem.
EU INDICO
Para finalizarmos este tema, observe o quadro-resumo para o sinal de a e os 
valores de D nos gráficos das funções quadráticas, Figura 7.
1
8
1
FUNÇÃO MODULAR
O que caracteriza uma função modular é que seu conjunto imagem é sempre 
constituído por valores positivos, gerando um gráfico com pontos pertencentes 
exclusivamente ao 1º e 2º quadrante. 
O módulo ou valor absoluto de um número real x, que se indica por | x |, é 
definido da seguinte maneira:
 x se x, � ≥ 0
|x| = 
 � �x se x, 0
Por exemplo:
Se x é positivo ou zero, | x | é igual ao próprio x.
| 2 | = 2
Se x é negativo, | x | é igual a - x.
| - 2 | = 2
Figura 7 – Resumo gráficos das funções quadráticas em função de a e de D / Fonte: Bonatti, Jenske e 
Pellizzaro (2015, p. 212).
Descrição da Imagem: a figura apresenta seis gráficos de funções do segundo grau. Cada gráfico se comporta 
de acordo com o sinal de a e com o sinal ou valor de D . Fim da descrição.
UNIASSELVI
1
8
1
TEMA DE APRENDIZAGEM 5
Chamamos de função modular a função f(x) = |x| definida por:
 x se x, � ≥ 0
f(x) = 
 � �x se x, 0
Abra o GeoGebra no seu computador. Escolha a opção iniciar calculadora. No 
canto superior esquerdo, na opção +, ao lado, coloque para o exemplo y = | x |, 
somente | x |. Teremos o gráfico a seguir, Figura 8:
Figura 8 – Gráfico da função no aplicativo GeoGebra / Fonte: o autor.
Descrição da Imagem: a figura apresenta um gráfico no plano cartesiano relacionando o número do eixo y, eixo 
vertical, com o número no eixo x, eixo horizontal. A função geradora deste gráfico é definida por y = | x |. Fim 
da descrição.
Nesse gráfico, observa-se que, para qualquer valor de x, seja positivo ou negativo, 
teremos sempre valores positivos no eixo y.
1
8
8
FUNÇÃO EXPONENCIAL
A função exponencial expressa um crescimento ou um decrescimento caracte-
rístico de alguns fenômenos da natureza, bem como o funcionamento dos juros 
compostos, importante na matemática financeira.
O crescimento exponencial, em alguns casos, pode ser vertiginoso. Em outros 
momentos, pode tender lentamente a zero, sem nunca o atingir. A função expo-
nencial é fundamental para explicar numericamente desde fenômenos biológicos 
até fenômenos físicos complexos, como a transmutação radioativa.
É qualquer função f : → (domínio → imagem) da forma f x ax� � � 
, com a > 0 e a ≠ 1 .
VOCÊ SABE RESPONDER?
Gere no GeoGebra a função y x � �2 4 e diga qual o conjunto imagem para 
� � x2 4 desta função.
Para você conhecer os dois tipos básicos de funções exponenciais, sugiro que 
teste dois gráficos, as funções f x x� � � 2 e 
f x x� � � ( )
1
2
 , alterando os 
valores nas tabelas à direta dos gráficos e observando o comportamento dos cur-
vas. Essa atividade é encontrada no algoritmo do GeoGebra (aplicativo de acesso 
livre), na seção material didático, tema Função exponencial. 
EU INDICO
Com base na atividade anterior no GeoGebra, podemos resumir a função expo-
nencial da seguinte forma:
Se a > 1, a função é crescente e se 0 < a < 1, a função será decrescente.
Os gráficos não intersectam o eixo x, pois as funções não se anulam, seja qual for o 
valor de x.
UNIASSELVI
1
8
9
TEMA DE APRENDIZAGEM 5
Para uma aplicação real da função exponencial na matemática financeira, pode-
mos criar um algoritmo na linguagem de programação Python para calcular o 
montante de juros compostos, fornecendo o valor do capital, a taxa de juros e o 
tempo de aplicação.
Considere a fórmula do montante dos juros compostos como sendo
M c i t � �� �. 1 .
O M é uma função exponencial. O M é o montante, o c é o capital, o i é taxa de 
juros e o t é o tempo de aplicação. O i se for dado em porcentagem, deve ser di-
vidido por 100 antes de ser colocado na fórmula. Este algoritmo pode ser testado 
em outras linguagens de programação, como o C e o Java, bastando apenas fazer 
adaptações.
print(‘$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’)
print(‘Cálculo do montante de juros compostos.’)
print(‘$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’)
c=int(input(‘Entre com o valor do capital: ‘))
i=float(input(‘Entre com o valor da taxa de juros mensal: ‘))
t=int(input(‘Entre com o valor do tempo em meses: ‘))
print(‘$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’)
m = c*(1+(i/100))**t
print(‘O montante será de:   ‘, m, ‘reais’)
print(‘$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’)
A função float do Python irá permitir trabalhar com valores com parte decimal, ou 
seja, números reais. Float representa números de ponto flutuante. 
Se entrarmos com capital de 100 reais, a taxa de juros de 1% ao mês, durante 12 
meses, ao executar o algoritmo, teremos:
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Cálculo do montante de juros compostos.
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Entre com o valor do capital: 100
Entre com o valor da taxa de juros mensal: 1
Entre com o valor do tempo em meses: 12
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
O montante será de: 112.68250301319698 reais
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
APROFUNDANDO
Os valores da função exponencial são todos positivos, qualquer que seja x.
A função exponencial de  para *+ .
1
9
1
Para finalizarmos este tema, você pode relembrar algumas operações básicas da 
potenciação.
a0 1= � ax > 0
a
a
x� �
1 a a ax y x y. � �
a a ax y x y: � = a ax y xy� � � 
a b a bx x x . .� � �
FUNÇÃO LOGARÍTMICA
A função logarítmica é a função definida por f x log xa� � � , em que, a �∈ 
(reais), a > 0 e a ≠ 1 . A função logarítmica de base a é a inversa da função 
exponencial de base a.
Para você conhecer os dois tipos básicos de funções logarítmicas, sugiro que ana-
lise dois gráficos, as funções f x log x� � � 2 e f x log x� � � 1 2/ , obser-
vando o comportamento das curvas. Essa atividade é encontrada no algoritmo do 
GeoGebra (aplicativo de acesso livre), na seção material didático, tema Gráfico da 
função logarítmica. Recursos de mídia disponíveis no conteúdo digital do am-
biente virtual de aprendizagem 
EU INDICO
Com base na atividade anterior no GeoGebra, podemos resumir a função loga-
rítmica da seguinte forma:
Se a > 1, a função é crescente e se 0 < a < 1, a função será decrescente.
Os gráficos das funções logarítmicas sempre cortam o eixo x no ponto (1,0).
UNIASSELVI
1
9
1
TEMA DE APRENDIZAGEM 5
Quando a base é maior que 1, os números maiores que 1 têm logaritmos positivos e 
os números entre 0 e 1 têm logaritmos negativos.
Quando a base é menor que 1, os números maiores que 1 têm logaritmos negativos 
e os números entre 0 e 1 têm logaritmos positivos.
Você pode relembrar algumas operações básicas da potenciação.
loga 1 0= loga a = 1
log log loga a aAB A B� � log / log loga a aA B A B� �
log .loga
m
aA m A=
Se a = e (Número de Euler), a função logaritmo é chamada função logarítmica na-
tural e é notada por f x ln x� � � ou f x L x� � � �� .
PENSANDO JUNTOS
1
9
1
Na linguagem de programação Python, podemos utilizar a função do Python math.
log() para realizar cálculos com logaritmos.
Podemos gerar um algoritmo simples para obter os valores de log2x.
import math
print(‘-----’*10)
print(‘Cálculo do log de x na base 2’)
x=float(input(‘Entre com o valor de x: ‘))
print(‘O log será:’)
print(math.log2(x))
print(‘-----’*10)
O comando print(‘-----’*10) multiplicapor 10 na linha -----. 
Se entrarmos com o valor de x = 100, teremos:
--------------------------------------------------
Cálculo do log de x na base 2
Entre com o valor de x: 100 
O log será:
6.643856189774724
--------------------------------------------------
Mude no algoritmo a função math.log2(x) para math.log(x,2) e verifique que o re-
sultado é o mesmo. 
Você pode trabalhar com qualquer base usando a função no Python math.log(x, 
base). 
Substitua no algoritmo a função math.log2(x) para math.log(x,10) e teste vários va-
lores.
APROFUNDANDO
VOCÊ SABE RESPONDER?
Você sabe calcular o valor de log1 168/ utilizando o algoritmo ensinado 
anteriormente?
UNIASSELVI
1
9
1
TEMA DE APRENDIZAGEM 5
Resumo de tipos de funções.
Dada uma função bijetiva, denomina-se função inversa de f a função g ou 
� :f x B� � �1 tal que, se f a b� � � , então g b a� � � , com a A∈ e 
b B∈ .
Dadas as funções f A B: → e g B C: → , denominamos 
função composta de g e f a função g f A C� : → , que é definida por 
( )� , � g f x g f x x A � � � �� �� � .
Uma função chama-se função afim ou do primeiro grau quando existem dois 
números reais a e b tal que f x ax b� � � � , para todo x ∈ com a ≠ 0 
e b ≠ 0 . 
Uma função quadrática ou função do segundo grau é qualquer função f de  em 
 dada por uma lei da forma f x ax bx c� � � � � 2
, em que a, b e c são 
números reais e a ≠ 0 . 
Chamamos de função modular a função f x x� � � definida por: x, se x �≥ 0 
e -x, se x < 0 .
Função exponencial é qualquer função f : → da forma f x ax� � � , 
com a > 0 e a ≠ 1 .
A função logarítmica é a função definida por f(x) = loga x , onde a ∈ ℝ, a > 0 e a ≠ 1.
Acesse seu ambiente virtual de aprendizagem e confira a aula referente a este 
tema.
EM FOCO
1
9
4
NOVOS DESAFIOS
No decorrer deste tema, você aprendeu, no primeiro momento, sobre relações e fun-
ções. No segundo momento, teve a oportunidade de conhecer os tipos de funções.
Imagine que você queira abrir sua própria empresa de informática, porém 
necessita de um empréstimo. As instituições financeiras vão dar duas opções: 
juros simples, que tem comportamento de uma função afim, para curtos prazos, 
de um a dois anos, e juros compostos, que tem comportamento de uma função 
exponencial, para longos prazos, acima de dois anos.
A função afim para juros simples seria o montante em função do tempo, ou 
seja, M1 = g(t). Considerando um capital de empréstimo de 10000,00, taxa de 7% 
ao ano, teríamos M1 = 700.t + 10000. Considerando o tempo em anos.
A função exponencial para juros compostos seria também o montante em 
função do tempo, ou seja, M2 = h(t). Considerando um capital de empréstimo 
de 10000,00, taxa de 7% ao ano, teríamos M = 10000.(1,07)t. Considerando 
o tempo em anos.
Para sua maior segurança, poderias criar um algoritmo no Python e fazer 
simulações das duas funções e verificar qual a mais vantajosa. 
print(‘&&&&&’*10)
print(‘Cálculo dos juros simples: ‘)
t=int(input(‘Entre com o valor do tempo em anos: ‘))
M1=700*t + 10000
print(‘O montante do juro simples será: ‘, M1)
print(‘&&&&&’*10)
print(‘Cálculo dos juros compostos: ‘)
M2=10000*(1.07)**t
print(‘O montante do juro composto será: ‘, M2)
print(‘&&&&&’*10)
Observe que a curto prazo, como um ano, os valores são idênticos:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Cálculo dos juros simples: 
UNIASSELVI
1
9
5
TEMA DE APRENDIZAGEM 5
Entre com o valor do tempo em anos: 1
O montante do juro simples será: 10700
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Cálculo dos juros compostos:
O montante do juro composto será: 10700.0
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Entretanto, a longo prazo, como dez anos, os valores são distintos:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Cálculo dos juros simples: 
Entre com o valor do tempo em anos: 10
O montante do juro simples será: 17000
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Cálculo dos juros compostos:
O montante do juro composto será: 19671.513572895663
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Nesses exemplos, podemos verificar que, nos empréstimos longos, as ins-
tituições financeiras irão utilizar os juros compostos, o que não seria uma boa 
vantagem para o novo empresário.
Nesse contexto, verifica-se que, nos períodos muito longos, a função expo-
nencial faz aumentar a dívida de forma exponencial. A função afim, para perío-
dos curtos, torna a dívida menor.
Provavelmente, para você, seria interessante realizar um financiamento de 
prazos intermediários, por exemplo, cinco anos. 
As funções em conexão com a computação podem trazer muitos benefícios para 
o usuário, principalmente em tomadas de decisões que envolve créditos financeiros.
1
9
1
1. Podemos criar funções do primeiro grau no nosso dia a dia, por exemplo: cálculo do valor 
do combustível gasto por um veículo em função da distância percorrida.
A função seria definida por y = 0,53 . x, em que y representa o gasto em reais e o x a distância 
em quilômetros.
O coeficiente angular seria 0,53, valor de combustível para um quilometro percorrido e o 
coeficiente linear seria zero.
A linguagem de programação Python permite realizar este tipo de cálculo de maneira sim-
ples, bastando gerar a fórmula ou função e permitir a entrada do valor da distância.
Considerando a função y = 0,53 . x, em que y representa o gasto em reais e o x a distância 
em quilômetros, para o cálculo do valor do combustível gasto por um veículo em função da 
distância percorrida, elabore um algoritmo simples na linguagem Python utilizando a função 
e entrada de valores de distância.
2. Um terremoto de 9 graus de magnitude na escala Richter atingiu o Japão em 2011. Os 
terremotos originam-se do movimento de placas tectônicas. Os sismógrafos medem a am-
plitude e a frequência das vibrações de um terremoto. Utilizando uma função logarítmica, 
pode-se calcular a intensidade de um terremoto. O gráfico de uma função logarítmica de 
um terremoto pode ser gerado no aplicativo livre GeoGebra.
A intensidade I de um terremoto pode ser calculada pela seguinte fórmula: I = (2/3)log10(E/
E0), onde I varia de 0 a 9, E é a energia liberada em kW/h e E0 é 7 x 10-3 kW/h. Considerando 
E/E0 = x, cujo valor de x são potencias de 10, podemos reduzir a função para I = (2/3) log10x. 
Analisando esta função logarítmica, diga se ela é crescente ou decrescente. Justifique sua 
resposta. Use o GeoGebra para representar esta função.
3. A função do segundo grau tem aplicações na área da economia, principalmente no cálculo 
do lucro de uma empresa. Considerando a função L(x) = - x2 + 8x -7, no qual L(x) é o lucro 
e o x é quantidade vendida de um certo produto, podemos representar esta função por 
meio de um algoritmo na linguagem Python. No algoritmo a seguir, podemos determinar 
os valores de x que tornam o lucro igual a zero.
print(‘Obter as raízes de uma Função y = a*x**2 + b*x + c.’)
print(‘Por meio dos coeficientes a,b e c.’) 
AUTOATIVIDADE
1
9
1
a=int(input(‘Entre com o valor de a: ‘))
b=int(input(‘Entre com o valor de b: ‘))
c=int(input(‘Entre com o valor de c: ‘))
d = (b**2 - 4*a*c)
x1 = (-b+d**(0.5))/(2*a)
x2 = (-b-d**(0.5))/(2*a)
print(‘As raízes serão:’, x1,’e’, x2)
Analisando a função L(x) = - x2 + 8x -7, no qual L(x) é o lucro e o x é quantidade vendida de 
um certo produto, os valores de x que tornam o lucro zero são: 
a) 0 e -1.
b) 1 e 7.
c) -1 e -7.
d) 0 e 7.
e) -1 e 2.
4. As funções afim e exponencial podem ser utilizadas nas aplicações financeiras. O montante 
dos juros simples é representado por uma função afim: M1 = 0,01.c.i.t + c. O montante dos 
juros compostos é representado por uma função exponencial: M2 = c.(1+i/100)t. T é o tempo 
em anos, c é o capital e i é a taxa ao ano em porcentagem. No algoritmo na linguagem 
Python a seguir, podemos determinar os valores dos montantes.
print(‘ Cálculo dos juros simples e compostos’)
t=int(input(‘Entre com o valor do tempo em anos: ‘))
i=int(input(‘Entre com o valor dataxa em anos: ‘))
c=int(input(‘Entre com o valor do capital em reais: ‘))
M1=(0.01*c*i*t) + c
M2=c*(1+i/100)**t
AUTOATIVIDADE
1
9
8
print(‘O juro simples será: ‘, M1)
print(‘O juro composto será: ‘, M2)
Considerando as funções afim, montante de juros simples, e exponencial, montante de juros 
compostos, podemos afirmar, utilizando o algoritmo na linguagem Python que calcula os 
montantes:
I - Para uma aplicação de 10000 reais, a 6 % ao ano, em um ano de aplicação, os montantes 
serão diferentes.
II - Para uma aplicação de 10000 reais, a 7 % ao ano, em cinco anos de aplicação, o montante 
dos juros simples será maior que o montante dos juros compostos. 
III - Para uma aplicação de 10000 reais, a 9 % ao ano, em cinco anos de aplicação, o montante 
dos juros simples será menor que o montante dos juros compostos.
É correto o que se afirma em:
a) I, apenas. 
b) III, apenas. 
c) I e II, apenas. 
d) II e III, apenas. 
e) I, II e III. 
5. Considerando uma função f de A em B, as funções injetivas ocorrem quando elementos 
diferentes de A são transformados por uma função em elementos diferentes de B. As fun-
ções sobrejetivas ocorrem quando, para qualquer elemento y ∈ B, pode-se encontrar um 
elemento x ∈ A tal que f(x) = y. As funções bijetivas ocorrem quando temos, simultanea-
mente, injetiva e sobrejetiva.
Analisando no GeoGebra a função f(x) = 5x + 4, podemos dizer que é uma função: 
a) Bijetiva. 
b) Somente injetiva. 
c) Somente sobrejetiva. 
d) Não é injetiva e nem sobrejetiva. 
e) Bijetiva, mas não é injetiva e nem sobrejetiva. 
AUTOATIVIDADE
1
9
9
REFERÊNCIAS
ÁVILA, G. Cálculo das funções de uma variável. São Paulo: LTC, 2003.
BONATTI, C.; JENSKE, G.; PELLIZARO, M. M. Introdução ao cálculo. Indaial: Uniasselvi, 2015.
DEMANA, F. D. et al. Pré-cálculo. São Paulo: Pearson, 2009.
LEITE, A. E.; CASTANHEIRA, N. P. Teoria dos números e teoria dos conjuntos. Curitiba: Intersa-
beres, 2014.
PETROLI, T. Pré-cálculo. Curitiba: Contentus, 2020.
1
1
1
1. O algoritmo será:
print(‘____’*10)
print(‘Cálculo do valor do combustível gasto por um veículo em função da distância per-
corrida: ‘)
x=int(input(‘Entre com o valor da distância percorrida: ‘))
y=0.53*x
print(‘O valor do combustível gasto será: ‘, y)
print(‘____’*10)
O print(‘____’*10) não tem relevância. É apenas estético. Caso queira usar valores reais, utilize 
float em vez de int.
y = 0,53 . x.
2. Analisando o gráfico no GeoGebra, teremos:
Justificativa: conforme x aumenta, y também aumenta. 
Logo é uma função crescente.
Analisando a função, I = (2/3) log10x, temos que:
Se a > 1, temos função crescente. Neste caso o a = 10.
Logo é uma função crescente.
3 Opção B.
Aplicando no algoritmo, fazendo-o executar, teríamos:
print(‘Obter as raízes de uma Função y = a*x**2 + b*x + c.’)
print(‘Por meio dos coeficientes a,b e c.’) 
GABARITO
1
1
1
a=int(input(‘Entre com o valor de a: ‘))
b=int(input(‘Entre com o valor de b: ‘))
c=int(input(‘Entre com o valor de c: ‘))
d = (b**2 - 4*a*c)
x1 = (-b+d**(0.5))/(2*a)
x2 = (-b-d**(0.5))/(2*a)
print(‘As raízes serão:’, x1,’e’, x2)
Obter as raízes de uma Função y = a*x**2 + b*x + c.
Por meio dos coeficientes a, b e c.
Entre com o valor de a: -1
Entre com o valor de b: 8
Entre com o valor de c: -7
As raízes serão: 1.0 e 7.0
Δ = b2 - 4ac e 
�
� � �b b ac
a
2 4
2
.
4 Opção B.
Executante o algoritmo a seguir, teremos:
print(‘ Cálculo dos juros simples e compostos’)
t=int(input(‘Entre com o valor do tempo em anos: ‘))
i=int(input(‘Entre com o valor da taxa em anos: ‘))
c=int(input(‘Entre com o valor do capital em reais: ‘))
M1=(0.01*c*i*t) + c
M2=c*(1+i/100)**t
print(‘O juro simples será: ‘, M1)
print(‘O juro composto será: ‘, M2)
I. Para uma aplicação de 10000 reais, a 6 % ao ano, em um ano de aplicação, os montantes 
serão diferentes; FALSO.
Cálculo dos juros simples e compostos
Entre com o valor do tempo em anos: 1
Entre com o valor da taxa em anos: 6
Entre com o valor do capital em reais: 10000
O juro simples será: 10600.0
O juro composto será: 10600.0
II. Para uma aplicação de 10000 reais, a 7 % ao ano, em cinco anos de aplicação, o montante 
dos juros simples será maior que o montante dos juros compostos; FALSO.
Cálculo dos juros simples e compostos
Entre com o valor do tempo em anos: 5
GABARITO
1
1
1
Entre com o valor da taxa em anos: 7
Entre com o valor do capital em reais: 10000
O juro simples será: 13500.0
O juro composto será: 14025.517307000004
III. Para uma aplicação de 10000 reais, a 9 % ao ano, em cinco anos de aplicação, o montante 
dos juros simples será menor que o montante dos juros compostos. VERDADE.
Cálculo dos juros simples e compostos
Entre com o valor do tempo em anos: 5
Entre com o valor da taxa em anos: 9
Entre com o valor do capital em reais: 10000
O juro simples será: 14500.0
O juro composto será: 15386.239549000005
M1 = 0,01.c.i.t + c
M2 = c.(1+i/100)t
5. Analisando o gráfico no GeoGebra, teremos:
É injetiva, pois x
1 ≠ x2 em A → f(x1) ≠ f(x2) em B.
É sobrejetiva, pois Im(f) = B.
Como temos as duas anteriores de forma simultânea, temos uma função bijetiva.
GABARITO
1
1
1
MINHAS METAS
SEQUÊNCIAS FINITAS E INFINITAS
Compreender a definição de sequências. 
Compreender as propriedades das sequências finitas e infinitas.
Aplicar sequências aritméticas e geométricas na computação.
Aplicar sequências limitadas na computação.
Aplicar sequências monótonas na computação.
T E M A D E A P R E N D I Z A G E M 6
1
1
4
INICIE SUA JORNADA
Lidamos no nosso cotidiano com sequências em várias situações. Podemos ci-
tar dois exemplos: em um dicionário, as palavras formam uma sequência que 
obedece à ordem alfabética; e, em um livro, as páginas são numeradas por uma 
sequência de números que obedece a uma ordem crescente.
Agora, imagine que você é um funcionário público criador de algoritmos em 
uma área pública que trabalha com estatísticas. Você precisa criar um algoritmo 
em linguagem Python sobre sequências para estimar o crescimento anual de 0,1% 
na população de uma cidade. Considere a população atual de 500.000 habitantes. 
O relevante é saber uma estimativa para dez anos.
Dessa forma, você poderia gerar um algoritmo de sequência geométrica, 
tendo em vista uma razão de crescimento de 1,001.
print(‘______’*9)
print(‘Estimativa de crescimento populacional’)
t=int(input(‘Entre com o valor do tempo em anos: ‘))
a=500000*(1.001)**t
print(‘______’*9)
print(‘Estimativa de crescimento populacional será: ‘, a)
print(‘______’*9)
Ao executar o algoritmo com dez anos, teremos:
Estimativa de crescimento populacional
Entre com o valor do tempo em anos: 10
Estimativa de crescimento populacional será: 505022.5601051256
UNIASSELVI
1
1
5
TEMA DE APRENDIZAGEM 6
Como você pode observar, a resolução dessa situação em uma folha de papel 
demandaria tempo e estaria sujeita a erros. Poderíamos calcular em uma calcu-
ladora, mas se colocássemos 50 anos, por exemplo, começaríamos a ter dificul-
dades com precisão devido aos arredondamentos da calculadora. A solução seria 
trabalharmos com um algoritmo, obtendo maior rapidez e precisão.
Ao executar o algoritmo com 50 anos, teremos:
Estimativa de crescimento populacional
Entre com o valor do tempo em anos: 50
Estimativa de crescimento populacional será: 525622.4162173728
Neste podcast, você aprenderá sobre sequências numéricas finitas e infinitas, 
bem como sobre sequências aritméticas, geométricas, limitadas e monótonas. 
Recursos de mídia disponíveis no conteúdo digital do ambiente virtual de 
aprendizagem 
PLAY NO CONHECIMENTO
VAMOS RECORDAR?
Para que você comece entendendo sequências numéricas finitas e infinitas, é 
necessária uma revisão geral sobre os conjuntos numéricos e intervalos. Sugiro 
a realização da atividade de classificar os números naturais, inteiros e racionais 
no algoritmo do GeoGebra (aplicativo de acesso livre), na seção material didático, 
tema Conjuntos numéricos e intervalos.Desloque os números da direita para os 
diagramas a sua esquerda. Monte também os intervalos na atividade seguinte. 
Recursos de mídia disponíveis no conteúdo digital do ambiente virtual de 
aprendizagem 
1
1
1
Na próxima fase, será desenvolvido o tema Sequências Numéricas, nele você 
poderá aprender sobre sequências finitas e infinitas, aritméticas, geométricas, 
limitadas e monótonas.
DESENVOLVA SEU POTENCIAL 
SEQUÊNCIAS NUMÉRICAS
Vamos, agora, construir subsídios para com-
preender uma importante ferramenta da análise: 
as sequências numéricas. Você já teve um breve 
contato com assunto no Ensino Médio, quando 
deve ter estudado as Progressões Aritméticas 
(PA) e as Progressões Geométricas (PG).
A importância desse conceito é que, mui-
tas propriedades que vimos em temas anterio-
res, envolvendo teoria de conjuntos, podem 
ser reescritas no contexto de sequência. 
Por exemplo: um ponto real x é aderente 
a um conjunto real A se existir uma sequên-
cia numérica x Nn x� � � em A que converge 
para x. Confuso? Claro, ainda não introduzi-
mos os conceitos de sequência numérica nem 
de convergência, mas note que uma definição 
envolvendo apenas conjuntos abertos pode ser 
trocada por uma, envolvendo sequências. Esse 
exemplo deve dar uma noção da importância 
do assunto que veremos agora. 
No caso das sequências, dizer que uma 
sequência converge para um ponto x é o 
mesmo que dizer que o limite desta sequên-
cia é o ponto x. 
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 6
Fundamentos de matemática elementar: sequências, matri-
zes, determinantes e sistemas 
Organizador: Gelson Iezzi e Samuel Hazzan
Editora: Atual
Ano: 2019
Sobre o livro: a obra aborda o estudo de matrizes e sistemas 
lineares. 
O estudo de sequências e progressões é muito interessante 
para desenvolver a compreensão da simbologia algébrica e 
recapitular um pouco de cálculo algébrico. 
O estudo de determinantes deve ser feito sem exageros, com 
ênfase em cálculo numérico e propriedades operatórias.
O livro apresenta muitos exemplos de sequências, com exer-
cícios resolvidos que podem ser aplicados em linguagens de 
programação. 
INDICAÇÃO DE LIVRO
DEFINIÇÃO DE SEQUÊNCIA, SEQUÊNCIAS FINITAS E INFINITAS
Sequência é um conjunto infinito de números que segue uma determinada or-
dem, ou seja, seus termos não são escritos de forma aleatória.
Nesse sentido, o conjunto infinito {1, 2, 3, 4, ...} é uma sequência, pois cada termo 
é o anterior acrescido de 1. A sequência infinita é identificada pelos três pontos (...), 
dando a ideia de continuidade sem fim, ou seja, quantidade ilimitada de termos. 
Já a sequência finita tem um fim, por exemplo, o conjunto finito {1,2,3,4} 
termina em 4, ou seja, quantidade limitada de termos.
Entretanto, o conjunto {1, 2, 5, 3, 8, 5, 4, 1, 8, 9 …} não é uma sequência, pois, 
a partir dos números que conhecemos, não temos como descobrir qual número 
apareceria depois do 9, depois desse e assim por diante.
Uma sequência de números reais ( ) é uma função x :� �→ que associa a cada 
n natural um número real x n xn� � � . Onde N é o conjunto dos números naturais e 
R, dos números reais.
O número n é chamado de índice da sequência, e xn é denominado termo geral da 
sequência.
1
1
8
Vamos ver alguns exemplos para deixar essa definição mais clara.
O conjunto X = {1, 3, 5, 7, 9, …} é uma sequência numérica, cuja função 
matemática que a define é x :� �→ , n n→ 2 1 � .
Você pode utilizar o algoritmo a seguir na linguagem de programação Py-
thon, para descobrir termos da sequência (x) anterior em função da posição (n). 
Este algoritmo pode ser testado em outras linguagens de programação, como o 
C e o Java, bastando apenas fazer adaptações.
Você pode entrar com qualquer valor inteiro (n = int(input()) ou posição. Se 
entrar com n = 100 ou posição 100, teremos x = 199 ou termo 199. Teste outros 
valores, por exemplo, n = 1000.
print(‘______’*9)
print(‘Determinar o termo x da sequência X = {1, 3, 5, 7, 9, …} em função da 
posição n.’)
print(‘n é a posição e é um número natural positivo.’)
print(‘x é o termo obtido na sequência.’)
print(‘______’*9)
n = int(input(‘Entre com o valor de n:’))
x = (2*n - 1)
print(‘O valor de x será:’, x)
print(‘______’*9)
Ao executar o programa, teremos:
Determinar o termo x da sequência X = {1, 3, 5, 7, 9…} em função da posição n
n é a posição e é um número natural positivo
DEFINIÇÃO DE SEQUÊNCIA, SEQUÊNCIAS FINITAS E INFINITAS
Sequência é um conjunto infinito de números que segue uma determinada or-
dem, ou seja, seus termos não são escritos de forma aleatória.
Nesse sentido, o conjunto infinito {1, 2, 3, 4, ...} é uma sequência, pois cada termo 
é o anterior acrescido de 1. A sequência infinita é identificada pelos três pontos (...), 
dando a ideia de continuidade sem fim, ou seja, quantidade ilimitada de termos. 
Já a sequência finita tem um fim, por exemplo, o conjunto finito {1,2,3,4} 
termina em 4, ou seja, quantidade limitada de termos.
Entretanto, o conjunto {1, 2, 5, 3, 8, 5, 4, 1, 8, 9 …} não é uma sequência, pois, 
a partir dos números que conhecemos, não temos como descobrir qual número 
apareceria depois do 9, depois desse e assim por diante.
Uma sequência de números reais ( ) é uma função x :� �→ que associa a cada 
n natural um número real x n xn� � � . Onde N é o conjunto dos números naturais e 
R, dos números reais.
O número n é chamado de índice da sequência, e xn é denominado termo geral da 
sequência.
UNIASSELVI
1
1
9
TEMA DE APRENDIZAGEM 6
x é o termo obtido na sequência
Entre com o valor de n:100
O valor de x será: 199
Outro exemplo seria o conjunto, X ={ , , , ...}
1
2
1
4
1
8 que é uma sequência numé-
rica, cuja função matemática que a define é x :� �→ , n n→ 1 2/ , onde N é o 
conjunto dos números naturais e R, dos números reais.
Você pode entrar com qualquer valor inteiro ( n = int(input()). Se entrar com 
n = 10, teremos x = 0,0009765625. Teste outros valores, como por exemplo n = 
20. Os resultados serão em números decimais e não em frações, ou seja, para 1
4, teremos 0,25.
Observe que no algoritmo anterior foi alterado as linhas segunda e sétima e 
gerado um novo algoritmo apresentado abaixo. 
print(‘______’*9)
print(‘Determinar o termo x da sequência X = {1/2, 1/4, 1/8, …} em função da 
posição n.’)
print(‘n é a posição e é um número natural positivo.’)
print(‘x é o termo obtido na sequência.’)
print(‘______’*9)
n = int(input(‘Entre com o valor de n:’))
x = (1/(2**n))
print(‘O valor de x será:’, x)
print(‘______’*9)
Ao executar o programa, teremos:
Determinar o termo x da sequência X = {1/2, 1/4, 1/8, …} em função da posição n
n é a posição e é um número natural positivo
x é o termo obtido na sequência
1
1
1
Entre com o valor de n:10
O valor de x será: 0.0009765625
SEQUÊNCIAS ARITMÉTICAS
As progressões aritméticas ou simplesmente P.A. são exemplos de sequências 
numéricas.
Por exemplo, a P.A: (1, 4, 7, 10, …).
Cada termo pode ser escrito como o anterior mais um número fixo, no caso, 3.
x
x x
x x x
1
2 1
3 2 1
1
4 1 3 3
7 4 3 3 3
�
� � � � �
� � � � � � � �
 
 
 33 2 3
10 7 3 3 2 3 3 3 3
1
4 3 1 1
 
 
� �
� � � � � � � � � �
x
x x x x
.
. .
Então, todos os termos podem ser escritos em função do primeiro. Generalizando:
x x nn � � �� � 1 1 3.
Chamamos 3 de razão da P.A., pois esse é o número que está sendo somado termo 
a termo para montar a PA. Vamos denotar este valor por r. Então, o termo geral 
de uma PA qualquer pode ser escrito como:
x x n rn � � �� � 1 1 .
Para melhor entender o exemplo anterior, sugiro a realização da atividade no algo-
ritmo do GeoGebra (aplicativo de acesso livre), na seção material didático, tema 
Monotonia de progressões aritméticas e de progressões geométricas. Selecione 
Progressão aritmética no canto superior esquerdo. Analise o gráfico à direita, subs-
tituindo os valores de u1 e de r.
EU INDICO
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 6
Como nos exemplos anteriores,você pode criar o algoritmo a seguir, na linguagem 
de programação Python, para descobrir termos da sequência (x) aritmética em 
função da posição (n) e da razão (r). Este algoritmo pode ser testado em outras 
linguagens de programação, como o C e o Java, bastando apenas fazer adaptações.
Você pode entrar com qualquer valor inteiro (n = int(input()) e valores reais (r 
= float(input()) e (x1 = float(input()). A posição é n, a razão é r e primeiro termo é 
x1. Se entrar com n = 100 e r = -1 e x1 = 10, teremos x = -89. Teste outros valores, 
como por exemplo n = 300, r = 2 e x1 = 0,1. Lembre-se de usar em programação 
0.1 em vez de 0,1.
print(‘****’*9)
print(‘Determinar o termo x da sequência PA em função da posição n e da 
razão r.’)
print(‘n é a posição e é um número natural positivo.’)
print(‘r é a razão e é um número real.’)
print(‘x1 é o primeiro termo é um número real.’)
print(‘x é o termo obtido na sequência e é um número real.’)
print(‘****’*9)
n = int(input(‘Entre com o valor de n:’))
r = float(input(‘Entre com o valor de r:’))
x1 = float(input(‘Entre com o valor de x1:’))
x = x1 + (n - 1)*r 
print(‘O valor de x será:’, x)
print(‘****’*9)
1
1
1
Ao executar o programa, teremos:
************************************
Determinar o termo x da sequência PA em função da posição n e da razão r
n é a posição e é um número natural positivo
r é a razão e é um número real
x1 é o primeiro termo é um número real
x é o termo obtido na sequência e é um número real
************************************
Entre com o valor de n:100
Entre com o valor de r:-1
Entre com o valor de x1:10
O valor de x será: -89.0
************************************
SEQUÊNCIAS GEOMÉTRICAS
Assim como as progressões aritméticas, as progressões geométricas ou P.G. tam-
bém são sequências numéricas.
Por exemplo a P.G: (1, 4, 16, 64, …).
Cada termo pode ser escrito como o anterior multiplicado por um número 
fixo, no caso, 4.
x
x x
x x x
1
2 1
3 2 1
1
4 1 4 4
16 4 4 4 4
=
= = =
= = = =
 
 
 
. .
. . . . 
 
4 4
64 16 4 4 4 4 4
1
2
4 3 1
2
1
3
=
= = = = =
x
x x x x
.
. . . . .
Então, todos os termos podem ser escritos em função do primeiro. Generalizando:
x xn
n 
1
14. -
Chamamos 4 de razão da P.G., pois esse é o número que está sendo multiplicado 
termo a termo para montar a PG. Vamos denotar este valor por q, razão de uma 
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 6
P.G. (dividir um termo pelo seu antecessor e, portanto, determinar um quocien-
te). Então, o termo geral de uma PG qualquer pode ser escrito como:
x x qn
n� 
1
1. ( )-
Para melhor entender o exemplo anterior, sugiro a realização da atividade no al-
goritmo do GeoGebra (aplicativo de acesso livre), na seção material didático, tema 
Monotonia de progressões aritméticas e de progressões geométricas. Selecione 
progressão geométrica no canto superior esquerdo. Analise o gráfico à direita, 
substituindo os valores de u1 e de r. Recursos de mídia disponíveis no conteúdo 
digital do ambiente virtual de aprendizagem 
EU INDICO
Você pode criar o algoritmo a seguir, similar ao algoritmo da PA, na linguagem 
de programação Python, para descobrir termos da sequência (x) geométrica em 
função da posição (n) e da razão (q). Este algoritmo pode ser testado em outras 
linguagens de programação, como o C e o Java, bastando apenas fazer adaptações.
Você pode entrar com qualquer valor inteiro (n = int(input()) e valores reais 
(q = float(input()) e (x1 = float(input()). A posição é n, a razão é q e primeiro 
termo é x1. Se entrar com n = 50 e q = 2 e x1 = 3, teremos x = 1688849860263936. 
Teste outros valores, como por exemplo n = 100, q = 5 e x1 = 5. 
print(‘****’*9)
print(‘Determinar o termo x da sequência PG em função da posição n e da 
razão q.’)
print(‘n é a posição e é um número natural positivo.’)
print(‘q é a razão e é um número real.’)
print(‘x1 é o primeiro termo é um número real.’)
print(‘x é o termo obtido na sequência e é um número real.’)
print(‘****’*9)
n = int(input(‘Entre com o valor de n:’))
q = float(input(‘Entre com o valor de q:’))
x1 = float(input(‘Entre com o valor de x1:’))
x = x1*q**(n - 1) 
print(‘O valor de x será:’, x)
print(‘****’*9)
1
1
4
Ao executar o programa, teremos:
************************************
Determinar o termo x da sequência PG em função da posição n e da razão q
n é a posição e é um número natural positivo
q é a razão e é um número real
x1 é o primeiro termo é um número real
x é o termo obtido na sequência e é um número real
************************************
Entre com o valor de n:50
Entre com o valor de q:2
Entre com o valor de x1:3
O valor de x será: 1688849860263936.0
************************************
VOCÊ SABE RESPONDER?
O que acontece com a PG que apresenta o primeiro termo e a razão com valor 
-3? Teste no algoritmo anterior posições consecutivas, ou seja, terceira posição e 
quarta posição etc. 
SEQUÊNCIAS LIMITADAS
Uma sequência x Nn x� � � é limitada quando o conjunto de seus termos é limita-
do, ou seja, se existem números reais a e b, com a b < para os quais a x bn≤ ≤ 
para todo n natural.
Em outras palavras, uma sequência é limitada quando todos os seus termos 
pertencem a um intervalo [a, b]. Note que, dados a e b, com a < b, podemos 
encontrar um número inteiro c para o qual a b c c, ,[ ]� � � � (basta tomar c como 
sendo o maior valor entre |a| e |b|). 
Assim, dizer que x a bn� ,�� � para todo n, é o mesmo que dizer que 
x c cn� ,[ ]� � , ou ainda, que x cn ≤ . Então, podemos redefinir sequência limita-
da da seguinte forma:
UNIASSELVI
1
1
5
TEMA DE APRENDIZAGEM 6
Uma sequência x Nn x� � � é limitada se, e somente se,
existe um número real c tal que x cn ≤ , para todo n natural.
Exemplos de sequências limitadas:
 ■ Sequência x Nn x� � � , cujo termo geral é xn
n� �� � 1 .
 ■ Sequência x Nn x� � � , cujo termo geral é x
nn =
1
.
 ■ Sequência x Nn x� � � , cujo termo geral é x sen nn = ( .�)p
2
.
Uma sequência x Nn x� � � que não é limitada é dita ser ilimitada. Entretanto, 
mesmo ilimitada, pode existir um número real a para o qual x an ≥ , para todo 
natural n. Nesse caso, dizemos que a sequência é limitada inferiormente.
Se, por outro lado, existe um número real b para o qual x bn ≤ , para todo n, dize-
mos que a sequência é limitada superiormente.
Por exemplo:
A sequência x Nn x� � � , cujo termo geral é xn n=
1
2
, é limitada inferiormente 
por 0 e superiormente por 1
2
.
ZOOM NO CONHECIMENTO
SEQUÊNCIAS MONÓTONAS
Já sabemos que, como o conjunto dos números naturais é infinito, uma sequência 
também possui infinitos termos. À medida que n vai ficando maior, os valores 
desses termos podem aumentar, tornando-se cada vez menores ou ficarem osci-
lando. Quando esse último caso não acontece, as sequências recebem um nome 
especial: sequências monótonas. Assim, as sequências monótonas são tais que 
seus termos não oscilam.
1
1
1
Seja x Nn x� � � uma sequência de números reais. Dizemos que
essa sequência é
• monótona crescente se x xn n� �1 , para todo natural n. 
• monótona decrescente se x xn n� �1 para todo natural n.
• monótona não crescente se x xn n� �1 , para todo natural n.
• monótona não decrescente se x xn n� �1 , para todo natural n. 
Caso a sequência não seja de nenhum dos tipos anteriores, dizemos que a se-
quência não é monótona.
Observe que em uma sequência crescente a função que a origina é injetora, isto é, 
se m e n forem dois números naturais tais que m n≠ , então x xm n≠ . 
Esse fato é que diferencia uma sequência crescente de uma não decrescente. 
Isso vale para as funções decrescente e não crescente.
PENSANDO JUNTOS
Vamos analisar a sequência x Nn x� � � , cujo termo geral é x n nn 2 .
Você pode criar o algoritmo com o termo geral x n nn 2 , na linguagem 
de programação Python, para descobrir se é ou não uma sequência monótona e 
se for monótona, tipo de sequência é. Este algoritmo pode ser testado em outras 
linguagens de programação, comoo C e o Java, bastando apenas fazer adaptações.
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 6
print(‘****’*9)
print(‘Determinar se a sequência é monótona para xn = n*2 - n, com os cinco 
primeiros termos.’)
x1= 1**2 - 1
print(‘Para n = 1, termos x1 igual a:’, x1)
print(‘****’*9)
x2= 2**2 - 2
print(‘Para n = 2, termos x2 igual a:’, x2)
print(‘****’*9)
x3= 3**2 - 3
print(‘Para n = 3, termos x3 igual a:’, x3)
print(‘****’*9)
x4= 4**2 - 4
print(‘Para n = 4, termos x4 igual a:’, x4)
print(‘****’*9)
x5= 5**2 - 5
print(‘Para n = 5, termos x5 igual a:’, x5)
print(‘****’*9)
Ao executar o programa, teremos:
************************************
Determinar se a sequência é monótona para xn = n*2 - n, com os cinco pri-
meiros termos
Para n = 1, termos x1 igual a: 0
************************************
Para n = 2, termos x2 igual a: 2
************************************
Para n = 3, termos x3 igual a: 6
************************************
Para n = 4, termos x4 igual a: 12
************************************
Para n = 5, termos x5 igual a: 20
************************************
1
1
8
Portanto, a sequência é monótona e crescente. Além disso, esta sequência é limi-
tada inferiormente por 0.
Para terminarmos este item, vamos analisar a sequência x Nn x� � � , cujo 
termo geral é x sen nn = ( . )p
2
.
Entre no GeoGebra, na calculadora gráfica, e digite no canto superior esquer-
do sen n( . ) p
2
. Você terá a Figura 1.
Figura 1 – Função seno com x multiplicando pi dividido por 2 / Fonte: o autor. 
Descrição da Imagem: a figura apresenta um gráfico da função seno, nele temos sen n( . ) p
2
. Para qualquer 
valor do eixo x, os limites máximos no eixo y serão 1 e -1. Fim da descrição.
Dessa forma, não é uma sequência monótona, pois os valores assumidos pelo 
termo geral oscilam entre -1 e 1.
UNIASSELVI
1
1
9
TEMA DE APRENDIZAGEM 6
Resumo de sequências numéricas.
• Sequência é um conjunto infinito de números que segue uma determinada ordem, 
ou seja, que não são aleatórios.
• Nesse sentido, o conjunto infinito {1, 2, 3, 4, ...} é uma sequência, pois cada termo 
é o anterior acrescido de 1. A sequência infinita é identificada pelos três pontos (...), 
dando a ideia de continuidade sem fim, ou seja, quantidade ilimitada de termos. 
• Já a sequência finita tem um fim, por exemplo, o conjunto finito {1,2,3,4} termina em 
4, ou seja, quantidade limitada de termos.
• O termo geral de uma PA qualquer pode ser escrito como: x x n rn � � �� � 1 1 .
O termo geral de uma PG qualquer pode ser escrito como: x x qn
n= 
1
1. ( )�
.⊢ 
Uma sequência x Nn x� � � é limitada se, e somente se, existe um número real c 
tal que x cn ≤ , para todo n natural.
Seja x Nn x� � � uma sequência de números reais. Dizemos que essa sequência é:
• monótona crescente se x xn n� �1 , para todo natural n. 
• monótona decrescente se x xn n� �1 para todo natural n.
• monótona não crescente se x xn n� �1 , para todo natural n.
• monótona não decrescente se x xn n� �1 , para todo natural n.
1
1
1
NOVOS DESAFIOS
No decorrer deste tema, você aprendeu sobre sequências numéricas, dando des-
taque à definição de sequências, sequências finitas e infinitas, aritméticas, geo-
métricas, limitadas e monótonas.
Considere que você é um professor da rede pública ou privada e precisa 
analisar as notas de seus alunos após uma avaliação de sua disciplina. Esta aná-
lise é importante para dimensionar o ensino-aprendizagem de sua disciplina no 
contexto da instituição de ensino a qual você participa. 
O Código da Vinci
O filme em si se desenvolve em uma série ou sequência de 
pistas, símbolos e mensagens.
Robert Langdon é um famoso simbologista, que foi convocado 
a comparecer no Museu do Louvre após o assassinato de um 
curador. 
A morte deixou uma série de pistas e símbolos estranhos, os 
quais Langdon precisa decifrar. Em seu trabalho, ele conta com 
a ajuda de Sophie Neveu, criptógrafa da polícia.
O que Langdon não esperava era que suas investigações o 
levassem a uma série de mensagens ocultas nas obras de 
Leonardo da Vinci, que indicam a existência de uma sociedade 
secreta que tem por missão guardar um segredo que já dura 
mais de 2 mil anos.
INDICAÇÃO DE LIVRO
Acesse seu ambiente virtual de aprendizagem e confira a aula referente a este 
tema. Recursos de mídia disponíveis no conteúdo digital do ambiente virtual de 
aprendizagem 
EM FOCO
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 6
Na avaliação realizada com 21 alunos, foram obtidas as seguintes notas de 
forma não ordenada:
1,0; 1,5; 0,0; 0,5; 10,0; 2,5; 7,0; 3,5; 9,0; 4,5; 5,0; 9,5; 6,0; 6,5; 3,0; 7,5; 8,0; 8,5; 
4,0; 5,5; 2,0.
Sua intenção é colocar esta relação de números em uma progressão hipoté-
tica, analisando a nota de cada aluno em uma ordem de 1 a 21, relacionadas ao 
nome do aluno. Na verdade, seu objetivo maior é criar um minibanco de dados 
para futuras consultas, relacionando e comparando com outras avaliações simi-
lares para a mesma turma de alunos.
A lista dos nomes dos alunos, que pode ser feita em um editor de textos ou 
colocada no algoritmo com a função input(), criando 21 variáveis diferentes, não 
tem a intenção de ser na ordem alfabética, mas em ordem de notas. Por exemplo, 
o aluno Rafael é da posição 1 e sua nota é 0,0.
Com o uso da programação, podemos obter resultados rápidos e precisos em 
termos de consulta. Inicialmente, é interessante colocarmos essa relação em ordem:
0,0; 0,5; 1,0; 1,5; 2,0; 2,5; 3,0; 3,5; 4,0; 4,5; 5,0; 5,5; 6,0; 6,5; 7,0; 7,5; 8,0; 8,5; 
9,0; 9,5; 10,0.
Curiosamente, você percebe que a relação é uma sequência numérica aritmé-
tica que obedece à razão 0,5. Isto aconteceu devido ao tipo de avaliação objetiva 
que foi aplicada, gerando opções de valores distintos com acréscimos de 0,5. 
Utilizando a programação Python, teríamos:
print(‘+++++++’*8)
print(‘Determinar a nota de um aluno conforme sua ordem em uma lista 
ordenada de razão 0,5.’)
n=int(input(‘Entre com o valor de n ou posição de 1 a 21:’))
print(‘+++++++’*8)
x = 0.0 + (n - 1)*(0.5)
print(‘A nota do aluno na posição’, n,’será: ‘, x)
print(‘+++++++’*8)
Ao executarmos o programa, para a posição 7, teríamos:
++++++++++++++++++++++++++++++++++++++++++++++++++++
1
1
1
Determinar a nota de um aluno conforme sua ordem em uma lista ordenada 
de razão 0,5
Entre com o valor de n ou posição de 1 a 21:7
++++++++++++++++++++++++++++++++++++++++++++++++++++
A nota do aluno na posição 7 será: 3.0
++++++++++++++++++++++++++++++++++++++++++++++++++++
Você pode questionar se este controle não poderia ser feito em uma simples 
lista manual. Para uma lista pequena de 21 alunos, até seria simples elaborar no 
papel e realizar consultas. Entretanto, imagine que você tenha 45 alunos em cada 
turma e quatro turmas. Ficaria trabalhoso consultar listas de papéis. A situação 
ficaria mais complicada se você tivesse que analisar três avaliações semestrais nas 
quatro turmas de 45 alunos. 
Esse modelo anterior seria um modelo-base para ser aperfeiçoado a sua ne-
cessidade. Você poderia acrescentar no algoritmo, por exemplo, cálculo de mé-
dias e desvio padrão. Poderias também trabalhar com séries que não obedecem 
necessariamente a uma razão, no caso de cálculo de médias aritméticas simples.
UNIASSELVI
1
1
1
1. Uma das dificuldades dos alunos hoje é gravar a tabuada. A tabuada do nove é, para alguns 
alunos, de difícil memorização.
Sabe-se que a tabuada do nove obedece a uma sequência aritmética.
Temos os múltiplos de nove nos primeiros dez números: M(9) = {9, 18, 27, 36, 45, 54, 63, 72, 
81, 90}. Um conjunto finito.
Pode-se criar um algoritmo com o termo geral de uma sequência aritmética para calcular 
a tabuada do nove.
A tabuada do nove pode ser representada por uma sequência aritmética de termo geral x = 
9 + (n – 1) . 9. Elabore de maneira simples um algoritmo na linguagem Python para calcular 
o produto do nove por um número de um a dez.
2. Na área de computação, um bit assume dois valores: 0 ou 1. Também 8 bits formam1 byte, 
16 bits formam 2 bytes, 24 bits formam 3 bytes e assim sucessivamente.
Pode-se criar uma sequência aritmética de bits, tendo como razão o 8.
Isso geraria uma sequência numérica de múltiplos de 8: M(8) = {8, 16, 24, ...}. Um conjunto 
infinito.
Pode-se criar um algoritmo com o termo geral de uma sequência aritmética para calcular 
quantos bits há em um determinado número de bytes. 
A sequência aritmética de termo geral x = 8 + (n – 1) . 8 permite calcular o número de bits 
total a partir de um número de bytes.
Elabore de maneira simples um algoritmo na linguagem Python para calcular o número de 
bits a partir de um número de bytes.
3. A sequência geométrica é utilizada para estimar crescimentos de determinadas popula-
ções.
Uma população de animais cresce em função do tempo, obedecendo o termo geral de uma 
PG: xn = 1 . 3(n-1), sendo n medido em anos.
Pode-se criar um algoritmo na linguagem Python com o termo geral desta PG para calcular 
o crescimento desta população:
AUTOATIVIDADE
1
1
4
print(‘//////////’*8)
print(‘Calcular o crescimento de uma população de animais.’)
n=int(input(‘Entre com o valor de n ou tempo em anos:’))
print(‘//////////’*8)
x = 3**(n - 1)
print(‘O número de animais para’, n,’anos será: ‘, x)
print(‘//////////’*8)
O termo geral de uma PG é xn = 1 . 3(n-1). Use um algoritmo para resolver o termo geral. O 
número de animais em 10 anos será: 
a) A. 1. 
b) B. 3. 
c) C. 81. 
d) D. 19683. 
e) E. 177147. 
AUTOATIVIDADE
1
1
5
4. A sequência numérica cujo termo geral seja k = 1 . e(n – 1) está representada no gráfico da 
figura a seguir. O n é representado por x no gráfico gerado pelo aplicativo livre GeoGebra.
O termo geral k representa o termo de uma sequência geométrica com o primeiro termo 
sendo 1 e a razão sendo e, o número de Euler.
O número de Euler prova a teoria de que há certa harmonia entra a matemática e a natureza.
Com base no termo geral se uma sequência geométrica k = 1 . e(n – 1), podemos afirmar:
I - O segundo termo será o número de Euler.
II - O terceiro termo será o dobro do número de Euler.
III - O quarto termo será aproximadamente 20.
É correto o que se afirma em:
a) I, apenas. 
b) III, apenas. 
c) I e III, apenas. 
d) II e III, apenas. 
e) I, II e III. 
AUTOATIVIDADE
1
1
1
5. O gráfico da figura a seguir foi gerado no aplicativo GeoGebra a partir do termo geral de 
uma sequência aritmética. O n é apresentado como sendo x no gráfico.
O gráfico é uma função afim, ou seja, y = ax + b.
O conjunto é infinito e apresenta uma sequência crescente de valores.
Considerando o termo geral de uma PA como sendo xn = 3 + 5x, o primeiro termo será:
a) 3. 
b) 5. 
c) 8. 
d) 10. 
e) 23. 
AUTOATIVIDADE
1
1
1
REFERÊNCIAS
ÁVILA, G. Análise matemática para licenciatura. 3. ed. São Paulo: Edgard
Blucher, 2011.
BRANDT, C. D. Análise matemática. Indaial: Uniasselvi, 2013.
LIMA, E. L. Curso de análise. 12. ed. São Paulo: IMPA, 2010.
PANOCELI, D. M. Análise matemática. Curitiba: Intersaberes, 2017.
SARRICO, C. Análise matemática: leitura e exercícios. Lisboa: Gradiva, 2002.
1
1
8
1. O algoritmo será:
print(‘//////////’*8)
print(‘Tabuada do 9. Basta informar o número que desejas multiplicar por 9.’)
n=int(input(‘Entre com o valor de n ou posição de 1 a 10:’))
print(‘//////////’*8)
x = 9.0 + (n - 1)*9
print(‘O produto de 9 por’, n,’será: ‘, x)
print(‘//////////’*8)
Por exemplo, para n = 7, teremos:
////////////////////////////////////////////////////////////////////////////////
Tabuada do 9. Basta informar o número que desejas multiplicar por 9.
Entre com o valor de n ou posição de 1 a 10:7
////////////////////////////////////////////////////////////////////////////////
O produto de 9 por 7 será: 63.0
////////////////////////////////////////////////////////////////////////////////
xn = x1 + (n – 1) . r.
2. O algoritmo será:
print(‘//////////’*8)
print(‘Calcular o número de bits total a partir de um número de bytes.’)
n=int(input(‘Entre com o valor de n ou número de bytes:’))
print(‘//////////’*8)
x = 8.0 + (n - 1)*8
print(‘O número de bits para’, n,’bytes será: ‘, x)
print(‘//////////’*8)
Por exemplo, para n = 8, teremos:
////////////////////////////////////////////////////////////////////////////////
Calcular o número de bits total a partir de um número de bytes
Entre com o valor de n ou número de bytes:8
////////////////////////////////////////////////////////////////////////////////
O número de bits para 8 bytes será: 64.0
////////////////////////////////////////////////////////////////////////////////
xn = x1 + (n – 1) . r.
GABARITO
1
1
9
3. Opção D.
Executando o algoritmo para 10 anos:
print(‘//////////’*8)
print(‘Calcular o crescimento de uma população de animais.’)
n=int(input(‘Entre com o valor de n ou tempo em anos:’))
print(‘//////////’*8)
x = 3**(n - 1)
print(‘O número de animais para’, n,’anos será: ‘, x)
print(‘//////////’*8)
Teremos:
////////////////////////////////////////////////////////////////////////////////
Calcular o crescimento de uma população de animais
Entre com o valor de n ou tempo em anos:10
////////////////////////////////////////////////////////////////////////////////
O número de animais para 10 anos será: 19683
////////////////////////////////////////////////////////////////////////////////
xn = x1 . q(n – 1).
4. Opção C.
Aplicando na fórmula do termo geral ou analisando e manipulando o gráfico no aplicativo 
GeoGebra temos:
I. O segundo termo será o número de Euler. Verdadeiro.
k = 1 . e(n – 1) = 1 . e(2 – 1) = e1 = e.
II. O terceiro termo será o dobro do número de Euler. Falso
k = 1 . e(n – 1) = 1 . e(3 – 1) = e2 = 7,3890560989306495.
O dobro de e seria 2 . e = 2 . 2,71 = 5,42, aproximadamente. 
III. O quarto termo será aproximadamente 20. Verdadeiro.
k = 1 . e(n – 1) = 1 . e(4 – 1) = e3 = 20, aproximadamente. 
k = 1 . e(n – 1).
5 Opção C.
Aplicando na fórmula do termo geral ou analisando e manipulando o gráfico no aplicativo 
GeoGebra temos:
xn = 3 + 5x = 3 + 5 . 1 = 3 + 5 = 8.
xn = 3 + 5x.
GABARITO
1
1
1
MINHAS ANOTAÇÕES
1
1
1
UNIDADE 3
MINHAS METAS
MATRIZES
Compreender a definição de matrizes.
Identificar a tipologia das matrizes.
Aplicar as operações entre matrizes na computação.
Compreender o cálculo de determinantes.
Aplicar a regra de Sarrus na computação.
Aplicar o cofator na computação.
Aplicar o cálculo da matriz inversa utilizando o determinante na computação.
T E M A D E A P R E N D I Z A G E M 7
1
1
4
INICIE SUA JORNADA
Organizar informações numéricas em tabelas facilita a leitura e a interpretação 
dos dados. Veja a Tabela 1 a seguir: 
EQUIPAMENTO QUANTIDADE
VALOR 
UNITÁRIO
CUSTO 
UNITÁRIO
TEMPO DE 
VIDA
Computador 15 2500 500 5
Impressora 3 1000 300 4
Scaner 2 1000 200 7
Tabela 1 – Tabela relacionando equipamentos com quantidade, valor e custo unitário e tempo de vida 
Fonte: o autor.
Para saber sobre o custo unitário de uma impressora, basta observar o nú-
mero localizado na linha 3 e na coluna 4. Como se trata de uma tabela reduzida, 
torna-se fácil a localização visual.
Entretanto, imagine que você trabalhe em uma empresa e necessite realizar 
consultas e operações de dados de forma periódica, dispondo de tabelas longas 
com muitas linhas e colunas. Seu objetivo maior é analisar dados. Nesse caso, 
como seria mais conveniente a manipulação desses dados?
Uma solução para o caso de consultas de muitos dados seria importar tabelas 
do aplicativo Excel, por exemplo, para uma linguagem de programação como o 
Python, a fim de realizar análises mais rápidas. 
No caso de operações de dados dispostos em tabelas menores ou matrizes, 
podemos também utilizar as funções da linguagem de programação Python. 
Além do Python, pode-se utilizar outras linguagens de programação, como Java, 
C++, C#, Swift, Ruby etc.
Logicamente que, para criar matrizes e realizar operações com dados em lin-
guagens de programação, você necessita ter conhecimentos básicos dematrizes 
e determinantes, estudos sobre álgebra linear.
No caso do Python, você pode trabalhar com a biblioteca numpy, que 
suporta o processamento de grandes  matrizes, com uma grande coleção 
de funções matemáticas. 
UNIASSELVI
1
1
5
TEMA DE APRENDIZAGEM 7
Segue um simples modelo de criação de matriz no Python:
import numpy as np 
matriz = np.array(
 [
 [1, 2, 5, 6], 
 [3, 4, 8, 9], 
 [3, 4, 8, 9], 
 [1, 2, 5, 6]
 ]
)
print(matriz)
Por meio de funções do Python com a biblioteca numpy, você pode realizar várias 
operações com matrizes de modo rápido e preciso. Não esqueça de instalar no 
seu computar a biblioteca numpy no terminal ou cmd com o comado pip install 
numpy, a fim de que as funções do Python criem matrizes.
Neste podcast você aprenderá sobre matrizes, sua definição, sua tipologia e suas 
operações, bem como determinantes e suas resoluções por meio da regra de Sar-
rus e do cofator. Recursos de mídia disponíveis no conteúdo digital do ambiente 
virtual de aprendizagem 
PLAY NO CONHECIMENTO
1
1
1
Na próxima fase, será desenvolvido o tema Matrizes, sua definição, sua tipologia e 
suas operações. Utilizaremos da linguagem de programação Python para realizar 
operações básicas com matrizes.
DESENVOLVA SEU POTENCIAL 
MATRIZES
Foi somente há pouco mais de 150 anos que as matrizes tiveram sua relevância 
reconhecida. Atualmente, consideramos imprescindível estudar essas formas 
através da notação e da metodologia matricial e não as encontramos apenas no 
estudo da matemática, mas também na engenharia, na informática e nas tabelas 
financeiras, por exemplo. 
DEFINIÇÃO
Denomina-se matriz do tipo m x n (lê-se m por n) toda tabela de números 
dispostos em m linhas e n colunas. Tal tabela deve ser representada entre pa-
rênteses ( ) ou colchetes [ ].
VAMOS RECORDAR?
Para que você comece entendendo matrizes e determinantes, sugiro que reveja o 
conteúdo de operações com números inteiros, principalmente com o uso de sinais 
negativos.
Entre no algoritmo do GeoGebra (aplicativo de acesso livre), na seção material 
didático, tema Operações com números inteiros. 
Nos links operação e nível, procure realizar todas as atividades propostas, as 
operações de adição, de subtração, de multiplicação e de divisão, bem como 
passar por todos os níveis propostos. Recursos de mídia disponíveis no conteúdo 
digital do ambiente virtual de aprendizagem 
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 7
A matriz é representada por uma letra maiúscula do alfabeto e cada item da 
matriz é denominado de elemento. Os elementos de uma matriz podem ser nú-
meros reais ou complexos ou até mesmo expressões algébricas e são chamados 
de entradas da matriz. 
Por exemplo:
A � �
�
�
�
�
�
8 3
5 4
B
x tgx senx
x senx gx
x x tgx
�
�
�
�
�
�
�
�
�
�
�
cos
sec cot
cossec cos
 
A matriz B, por exemplo, será 3 x 3, pois tem três linhas e três colunas. É 
importante lembrar que sempre escrevemos primeiro o número de linhas e de-
pois o número de colunas.
VOCÊ SABE RESPONDER?
Você saberia dizer quantas linhas e quantas colunas há na matriz a seguir?
C �
�
�
�
�
�
�
�
�
�
�
0 1 0
1 1 1
0 0 0
0 1 1
1 0 0
1 0 1
Para representar o elemento de uma matriz, usamos uma letra com dois índices: o 
primeiro indica em que linha o elemento se encontra e o segundo, em que coluna.
Por exemplo: a23 é o elemento que está na segunda linha e na terceira coluna.
O elemento genérico de uma matriz A será indicado por aij , em que i representa a 
1
1
8
linha e j representa a coluna na qual o elemento se encontra; ele é chamado de ij-
ésimo elemento da matriz.
A matriz A, do tipo 3 x 3, será escrita do seguinte modo:
A
a a a
a a a
a a a
�
�
�
�
�
�
�
�
�
�
�
11 12 13
21 22 23
31 32 33
Os m elementos correspondentes às linhas serão localizados pelo índice i e os n 
elementos correspondentes às colunas serão localizados pelo índice j.
PENSANDO JUNTOS
Dadas duas matrizes de mesma ordem ou tipo, ou seja, mesmo número de linhas 
e o mesmo número de colunas, A e B, dizemos que os elementos de mesmo índice 
(linha e coluna) são correspondentes.
Por exemplo:
A
a a a
a a a
a a a
�
�
�
�
�
�
�
�
�
�
�
11 12 13
21 22 23
31 32 33
 e B
b b b
b b b
b b b
�
�
�
�
�
�
�
�
�
�
�
11 12 13
21 22 23
31 32 33
a13 e b13 são correspondentes.
Duas matrizes A e B de mesma ordem m x n são iguais quando todos os seus 
elementos correspondentes são iguais, isto é, sendo A aij mxn � � � e , temos A 
= B quando aij = bij para todo i (i = 1, 2, 3, ..., m) e todo j (j = 1, 2, 3, ..., n).
Por exemplo:
A
a
c
�
�
�
�
�
�
�
3
5
 b
b
�
��
�
�
�
�
�
1
5 7
Logo, a = -1, b = 3 e c = 7
UNIASSELVI
1
1
9
TEMA DE APRENDIZAGEM 7
TIPOLOGIA
Nas representações de matrizes, temos nomenclaturas específicas para cada tipo 
de matriz, conforme apresentadas a seguir. A partir deste tema, utilizaremos os 
parênteses ( ) para representar as matrizes. 
 ■ Matriz coluna → Dizemos que A é uma matriz coluna quando A for de 
ordem m x 1, ou seja, quando o n = 1. 
Por exemplo:
A �
�
�
�
�
�
�
�
�
�
�
�
5
7
2
 ■ Matriz linha → Dizemos que A é uma matriz linha quando A for de 
ordem 1 x n, ou seja, quando o m = 1. 
Álgebra linear com aplicações
Organizador: Howard Anton e Chris Rorres
Editora: Bookman
Ano: 2012
Sobre o livro: Álgebra linear com aplicações apresenta os fun-
damentos da álgebra linear. O texto foi escrito de forma que 
não é necessário conhecimento de cálculo para usar e enten-
der o conteúdo.
Também não é exigido o uso de recursos computacionais, mas 
para aqueles que gostam de MATLAB, Maple, Mathematica 
ou calculadoras com funcionalidade para álgebra linear es-
tão incluídos exercícios no final dos capítulos que permitem 
um aprofundamento usando tais ferramentas 
O último capítulo cobre 20 aplicações de álgebra linear das 
mais diversas áreas: administração, economia, física, ciência 
da computação, ecologia, genética e outras. As aplicações são 
independentes e cada uma inclui uma lista de pré-requisitos 
matemáticos. 
INDICAÇÃO DE LIVRO
1
4
1
Por exemplo:
A = ( )5 0 2
A matriz coluna é importante para o estudo da álgebra linear, pois é comumente 
utilizada para representar vetores.
PENSANDO JUNTOS
 ■ Matriz nula → No conjunto das matrizes, a matriz que tem todos os 
elementos iguais a zero é denominada de matriz nula. 
Por exemplo:
A � �
�
�
�
�
�
0 0
0 0
 ■ Matriz transposta → Dada uma matriz A aij mxn � � � , denomina-
mos transposta de A (e indicamos At) a matriz A at
ij mxn
� � � � , tal que 
a aji ij� = . Em outras palavras, a matriz At é obtida trocando-se as linhas 
pelas colunas da matriz A. 
Por exemplo:
A �
�
�
�
�
�
�
�
4 5
1 0
 e At �
��
�
�
�
�
�
4 1
5 0
Na linguagem de programação Python, vamos iniciar a aplicação de matrizes em 
algoritmos de maneira lenta, passo a passo. Observe os exemplos de tipologia 
que vimos nos temas anteriores.
UNIASSELVI
1
4
1
TEMA DE APRENDIZAGEM 7
print(‘mmmmmmmmmmmmmmmmmmmmmmmmmm’)
print(‘Exemplo de matriz coluna’)
import numpy as np
matriz_coluna = np.array(
 [
 [1], [3], [8], [5]
 ]
)
print(matriz_coluna)
print(‘mmmmmmmmmmmmmmmmmmmmmmmmmm’)
Executando o algoritmo, teremos:
mmmmmmmmmmmmmmmmmmmmmmmmmm
Exemplo de matriz coluna
[[1]
 [3]
 [8]
 [5]]
mmmmmmmmmmmmmmmmmmmmmmmmmm
print(‘mmmmmmmmmmmmmmmmmmmmmmmmmm’)
print(‘Exemplo de matriz linha’)
import numpy as np
matriz_linha = np.array(
 [
 [1, 3, 8, 5]
 ]
)
print(matriz_linha)
print(‘mmmmmmmmmmmmmmmmmmmmmmmmmm’)
1
4
1
Executando o algoritmo, teremos:
mmmmmmmmmmmmmmmmmmmmmmmmmm
Exemplo de matriz linha
[[1 3 8 5]]
mmmmmmmmmmmmmmmmmmmmmmmmmm
print(‘mmmmmmmmmmmmmmmmmmmmmmmmmm’)
print(‘Exemplo de matriz nula’)
import numpy as np
matriz_nula = np.array(
 [
 [0,0,0],[0,0,0],[0,0,0]
 ]
)
print(matriz_nula)
print(‘mmmmmmmmmmmmmmmmmmmmmmmmmm’)
Executando o algoritmo, teremos:
mmmmmmmmmmmmmmmmmmmmmmmmmm
Exemplo de matriz nula
[[0 0 0]
 [0 0 0]
 [0 0 0]]
mmmmmmmmmmmmmmmmmmmmmmmmmm
UNIASSELVI
1
4
1
TEMA DEAPRENDIZAGEM 7
print(‘mmmmmmmmmmmmmmmmmmmmmmmmmm’)
print(‘Exemplo de matriz normal e transposta’)
import numpy as np
matriz_X = np.array(
 [
 [0,4,-2],[5,7,0],[0,1,-9]
 ]
)
print(matriz_X)
print(‘mmmmmmmmmmmmmmmmmmmmmmmmmm’)
matriz_X_transposta = np.array(
 [
 [0,5,0],[4,7,1],[-2,0,-9]
 ]
)
print(matriz_X_transposta)
print(‘mmmmmmmmmmmmmmmmmmmmmmmmmm’)
1
4
4
Executando o algoritmo, teremos:
mmmmmmmmmmmmmmmmmmmmmmmmmm
Exemplo de matriz normal e transposta
[[ 0 4 -2]
 [ 5 7 0]
 [ 0 1 -9]]
mmmmmmmmmmmmmmmmmmmmmmmmmm
[[ 0 5 0]
 [ 4 7 1]
 [-2 0 -9]]
mmmmmmmmmmmmmmmmmmmmmmmmmm
 ■ Matriz oposta → Dada uma matriz A aij mxn � � � , a sua matriz oposta 
será definida por � A aij mxn � �� � . Isso significa que a matriz oposta 
da matriz A é aquela que possui elementos opostos correspondentes ao 
da matriz A. 
Por exemplo:
A  
=  − 
4 5
1 0
 e A
− − 
=  
 
4 5
1 0
 ■ Matriz quadrada Quando m = n, ou seja, o número de linhas for igual 
ao número de colunas, dizemos que a matriz é quadrada de ordem nxn 
ou simplesmente de ordem n. Nesse caso, teremos ordem do tipo 1x1, 
2x2, 3x3, 4x4, e assim por diante. 
Como já sabemos que o número de linhas é igual ao número de colunas, basta 
informar a ordem, ou seja, uma matriz 1x1 pode ser simplesmente classificada 
como matriz de ordem 1, uma matriz 2x2 de matriz de ordem 2 e assim suces-
sivamente. 
Por exemplo, matriz de ordem 3:
A �
�
� �
�
�
�
�
�
�
�
�
�
�
2 7 4
1 0 9
0 1 3
UNIASSELVI
1
4
5
TEMA DE APRENDIZAGEM 7
Muito cuidado para não fazer confusão com dois conceitos parecidos: diagonal 
principal e diagonal secundária.
Tomando como exemplo a matriz de ordem 3 anterior, a diagonal principal seria -2, 
0 e -3. A diagonal secundária seria 4, 0 e 0.
ZOOM NO CONHECIMENTO
MATRIZ TRIANGULAR
Em uma matriz quadrada, quando os elementos acima ou abaixo da diagonal principal 
são todos nulos (iguais a zero), dizemos que a matriz é triangular. 
Por exemplo:
A �
� �
�
�
�
�
�
�
�
�
�
�
�
2 8 1
0 9 6
0 0 3
MATRIZ DIAGONAL
Em uma matriz quadrada de ordem n, quando todos os elementos posicionados aci-
ma e abaixo da diagonal principal são nulos, denominamos de matriz diagonal. 
Por exemplo:
A �
�
�
�
�
�
�
�
�
�
�
�
�
5 0 0
0 10 0
0 0 6
MATRIZ IDENTIDADE
Em uma matriz quadrada de ordem n, quando todos os elementos da diagonal prin-
cipal são iguais a 1 e os outros elementos são iguais a zero, denominamos de matriz 
identidade e seu símbolo é In (onde n representa a ordem da matriz).
Por exemplo:
A �
�
�
�
�
�
�
�
�
�
�
1 0 0
0 1 0
0 0 1
1
4
1
Na linguagem de programação Python, vamos dar continuidade à aplicação de matri-
zes em algoritmos. Observe os exemplos de tipologia que vimos nos temas anteriores.
MATRIZ SIMÉTRICA
Em uma matriz quadrada, quando tiver o elemento aij igual ao elemento aji, a matriz é 
denominada de simétrica.
Por exemplo:
A �
�
�
�
�
�
�
�
�
�
�
1 4 5
4 2 6
5 6 3
print(‘mmmmmmmmmmmmmmmmmmmmmmmmmm’)
print(‘Exemplo de matriz quadrada oposta’)
import numpy as np
matriz_X = np.array(
 [
 [0,4,-2],[5,7,0],[0,1,-9]
 ]
)
print(matriz_X)
print(‘mmmmmmmmmmmmmmmmmmmmmmmmmm’)
matriz_X_oposta = - matriz_X
print(matriz_X_oposta)
print(‘mmmmmmmmmmmmmmmmmmmmmmmmmm’)
UNIASSELVI
1
4
1
TEMA DE APRENDIZAGEM 7
Executando o algoritmo, teremos:
mmmmmmmmmmmmmmmmmmmmmmmmmm
Exemplo de matriz quadrada oposta
[[ 0 4 -2]
 [ 5 7 0]
 [ 0 1 -9]]
mmmmmmmmmmmmmmmmmmmmmmmmmm
[[ 0 -4 2]
 [-5 -7 0]
 [ 0 -1 9]]
mmmmmmmmmmmmmmmmmmmmmmmmmm
print(‘mmmmmmmmmmmmmmmmmmmmmmmmmm’)
print(‘Exemplos de matrizes quadradas: triangular, diagonal, identidade e 
simétrica.’)
import numpy as np
matriz_triangular = np.array(
 [
 [1,4,-2],[0,7,0],[0,0,-9]
 ]
)
print(matriz_triangular)
print(‘mmmmmmmmmmmmmmmmmmmmmmmmmm’)
matriz_diagonal = np.array(
 [
 [3,0,0],[0,7,0],[0,0,-9]
 ]
)
print(matriz_diagonal)
print(‘mmmmmmmmmmmmmmmmmmmmmmmmmm’)
matriz_identidade = np.array(
 [
 [1,0,0],[0,1,0],[0,0,1]
 ]
)
1
4
8
print(matriz_identidade)
print(‘mmmmmmmmmmmmmmmmmmmmmmmmmm’)
matriz_simétrica = np.array(
 [
 [1,4,5],[4,2,6],[5,6,3]
 ]
)
print(matriz_simétrica)
print(‘mmmmmmmmmmmmmmmmmmmmmmmmmm’)
Executando o algoritmo, teremos:
Exemplos de matrizes quadradas: triangular, diagonal, identidade e simétrica.
[[ 1 4 -2]
 [ 0 7 0]
 [ 0 0 -9]]
mmmmmmmmmmmmmmmmmmmmmmmmmm
[[ 3 0 0]
 [ 0 7 0]
 [ 0 0 -9]]
mmmmmmmmmmmmmmmmmmmmmmmmmm
[[1 0 0]
 [0 1 0]
 [0 0 1]]
mmmmmmmmmmmmmmmmmmmmmmmmmm
[[1 4 5]
 [4 2 6]
 [5 6 3]]
Mmmmmmmmmmmmmmmmmmmmmmmmmm
Para finalizarmos esse assunto sobre tipologia, vamos aprender a escrever uma 
matriz em função de regras predefinidas.
Por exemplo:
Dada a seguinte matriz quadrada de ordem 2, escreva a matriz A, com aij 
assumindo os seguintes valores:
UNIASSELVI
1
4
9
TEMA DE APRENDIZAGEM 7
a i j para i j
a para i j
ij
ij
� � �
� �
 
 
2
0
, �
� � � � � ,
A
a a
a a
�
�
�
�
�
�
�
11 12
21 22
Teremos:
a
a
a
a
11
12
21
22
1 2 1 3
0
2 2 1 4
2 2 2 6
� � �
�
� � �
� � �
 
 
 
 
.
.
.
Logo, a matriz será:
A � �
�
�
�
�
�
3 0
4 6
Na linguagem de programação Python, podemos realizar este tipo de resolução 
colocando em cada posição da matriz a resolução parcial. Em algoritmos mais 
avançados, você pode trabalhar com as funções if e else do Python para os índices i e j.
print(‘++++++++++++++++++++++++++’)
print(‘Escrever uma matriz em função de regras pré-estabelecidas.’)
print(‘Se i>=j, então aij = i + 2*j. Se i<j, então aij = 0.’)
print(‘Temos a11 = 1 + 2*1’)
print(‘Temos a12 = 0’)
print(‘Temos a21 = 2 + 2*1’)
print(‘Temos a22 = 2 + 2*2’)
print(‘++++++++++++++++++++++++++’)
import numpy as np
matriz_A = np.array(
 [
 [1 + 2*1,0],[2 + 2*1,2 + 2*2]
 ]
)
1
5
1
print(matriz_A)
print(‘++++++++++++++++++++++++++’)
Executando o algoritmo, teremos:
++++++++++++++++++++++++++
Escrever uma matriz em função de regras preestabelecidas.
Se i>=j, então aij = i + 2*j. Se i<j, então aij = 0.
Temos a11 = 1 + 2*1
Temos a12 = 0
Temos a21 = 2 + 2*1
Temos a22 = 2 + 2*2
++++++++++++++++++++++++++
[[3 0]
 [4 6]]
++++++++++++++++++++++++++
VOCÊ SABE RESPONDER?
Uma matriz A é simétrica se, e somente se, A = At. Você sabe determinar o valor de 
a para que
A
a
a
�
�
�
��
�
�
��
1
22
 seja simétrica?
OPERAÇÕES COM MATRIZES
No desenvolvimento do cálculo com matrizes, realizamos operações matemáticas 
seguindo regras específicas. Veremos, a seguir, essas regras, que são aplicadas na 
adição, subtração e multiplicação.
UNIASSELVI
1
5
1
TEMA DE APRENDIZAGEM 7
ADIÇÃO E SUBTRAÇÃO
Inicialmente, consideremos duas matrizes A e B do tipo 2 x 3.
A �
�
�
�
�
�
�
�
�
3 5
4 7
2
6
 B �
� ��
�
�
�
�
�
1 4
6 3
1
2
Agora, vamos determinar uma matriz C, tal que seus elementos sejam resultan-
tes da soma dos elementos de A com os elementos de B, da seguinte forma: 
c a bij ij ij� � . 
Portanto, os seis elementos de C (2 x 3 = 6) serão calculados a partir da mesma po-
sição dos elementos em A e B. Vejamos como ficará a adição dessas duas matrizes.
Portanto: A + B = C e podemos operacionalizar da seguinte maneira:
C �
�
�
�
�
�
�
�
� �
� ��
�
�
�
�
� �
� �
� �
� �
� �
�
�
�
�
�
�
3 5
4 7
2
6
1 4
6 3
1
2
3 1 5 4
4 6 7 3
2 1
6 2
��
�
�
�
�
�
�
�
�
4 1
10 10
3
4
Você deve observar que somente é possível somar e também subtrair matrizes 
que possuem a mesma ordem, isto é, o mesmo número de linhas e colunas.
PENSANDO JUNTOS
Agora, consideremos as mesmas duas matrizes A e B do tipo 2 x 3.
A �
�
�
�
�
�
�
�
�
3 5
4 7
2
6
 B �
� ��
�
�
�
�
�
1 4
6 3
1
2
Vamos determinar uma matriz D, tal que seus elementos sejam resultantes da 
diferença dos elementos de A com os elementos de B, da seguinte forma: 
d a bij ij ij� � . 
Portanto, os seis elementos de D (2 x 3 = 6) serão calculados a partir da mesma posi-
ção dos elementos em A e B. Vejamos como ficará a subtração dessas duas matrizes.
Portanto: A - B = D e podemos operacionalizar da seguinte maneira:
1
5
1
D �
�
�
�
�
�
�
�
� �
� ��
�
�
�
�
� �� � �
� �
� � �
� �
3 5
4 7
2
6
1 4
6 3
1
2
3 1 5 4
4 6 7 3
2 1
6 2
( ) ( )��
�
�
�
�
� � �
�
�
�
�
�
�
�
�
2 9
2 4
1
8
Outra forma utilizada para a subtração de matrizes seria utilizar a ideia de soma 
com a matriz oposta. Assim, sendo A e B, duas matrizes do tipo mxn, denomina-
mos diferença entre A e B (representada por A - B) a soma da matriz A com a matriz 
oposta de B, isto é, A - B = A + (-B).
PENSANDO JUNTOS
Propriedades da adição de matrizes
Estas propriedades poderão auxiliar nas operações entre matrizes, pois nos pos-
sibilitam resolvê-las mais rapidamente.
 ■ Associativa: (A + B) + C = A + (B + C).
 ■ Comutativa: A + B = B + A.
 ■ Elemento neutro: 0 + A = A.
 ■ Elemento oposto: A + (-A) = 0.
Na linguagem de programação Python, continuamos a avançar em novas funções. 
Agora, aplicaremos as operações de adição e de subtração de matrizes. Utilizaremos 
das mesmas matrizes anteriores e realizaremos as operações de forma automática. 
Lembrando que você poderá utilizar-se de outras linguagens de programação.
UNIASSELVI
1
5
1
TEMA DE APRENDIZAGEM 7
print(‘++++++++++++++++++++++++++’)
print(‘Cálculo da soma e da diferença de matrizes.’)
print(‘++++++++++++++++++++++++++’)
import numpy as np
matriz_A = np.array(
 [
 [3,5,-2],[4,7,-6]
 ]
)
print(‘A matriz A é: ‘)
print( matriz_A)
print(‘++++++++++++++++++++++++++’)
matriz_B = np.array(
 [
 [1,-4,-1],[6,3,2]
 ]
)
print(‘A matriz B é: ‘)
print( matriz_B)
print(‘++++++++++++++++++++++++++’)
matriz_C = matriz_A + matriz_B
matriz_D = matriz_A - matriz_B
print(‘A matriz C = A + B é: ‘)
print( matriz_C)
print(‘++++++++++++++++++++++++++’)
print(‘A matriz D = A - B é: ‘)
print( matriz_D)
print(‘++++++++++++++++++++++++++’)
1
5
4
Executando o algoritmo, teremos:
++++++++++++++++++++++++++
Cálculo da soma e da diferença de matrizes
++++++++++++++++++++++++++
A matriz A é: 
[[ 3 5 -2]
 [ 4 7 -6]]
++++++++++++++++++++++++++
A matriz B é:
[[ 1 -4 -1]
 [ 6 3 2]]
++++++++++++++++++++++++++
A matriz C = A + B é:
[[ 4 1 -3]
 [10 10 -4]]
++++++++++++++++++++++++++
A matriz D = A - B é:
[[ 2 9 -1]
 [-2 4 -8]]
++++++++++++++++++++++++++
MULTIPLICAÇÃO
Na multiplicação de uma matriz por um número real, basta multiplicar cada 
elemento da matriz por este número real.
Por exemplo, E = 4 . A:
E A� �
�
�
�
�
�
�
�
� �
�
�
�
�
�
�
�
�4 4
3 5
4 7
2
6
12 20
16 28
8
24
. .
Propriedades da multiplicação de uma matriz por um número real
Sendo A e B matrizes de mesma ordem mxn e x e y números reais quaisquer, 
valem as seguintes propriedades:
UNIASSELVI
1
5
5
TEMA DE APRENDIZAGEM 7
 ■ Associativa: x . (yA) = (xy) . A. 
 ■ Distributiva de um número real em relação à adição de matrizes: x 
. (A + B) = xA + xB. 
 ■ Distributiva de uma matriz em relação à adição de dois números 
reais: (x + y) . A = xA + yA.
 ■ Elemento neutro: x . A = A, se x = 1.
Veremos agora a definição de multiplicação de uma matriz A por uma B.
Dada uma matriz A = a jj� � do tipo mxn e uma matriz B bjj � � � do tipo nxp, o 
produto da matriz A pela matriz B é a matriz C cij � � � do tipo mxp, tal que o 
elemento cij é calculado multiplicando-se ordenadamente os elementos da linha 
i, da matriz A, pelos elementos da coluna j, da matriz B, e somando-se os produtos 
obtidos. Para dizer que a matriz C é o produto de A por B, vamos indicá-la por AB.
Por exemplo:
A �
�
�
�
�
�
�
�
�
�
�
1
2
3
2
3
4
 e B �
�
�
�
�
�
�
1 1
2 3
2
3
Pela definição de produto de matrizes, verifica-se que só podemos multiplicar 
matrizes quando o número de colunas da primeira matriz for igual ao número de 
linhas da segunda matriz. 
PENSANDO JUNTOS
Considerando 
F AB� �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
� �
� � �1
2
3
2
3
4
1 1
2 3
2
3
1 1 2 2 1 1 2 3 1 2 2 3
2.
. . . . . .
.11 3 2 2 1 3 3 2 2 3 3
3 1 4 2 3 1 4 3 3 2 4 3
5 7 8
8 11� � �
� � �
�
�
�
�
�
�
�
�
�
�
�. . . . .
. . . . . .
113
11 15 18
�
�
�
�
�
�
�
�
�
�
1
5
1
No Python, podemos utilizar uma função específica para calcular de maneira 
rápida o produto de duas matrizes. Esta função se chama dot. 
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Cálculo da multiplicação de matrizes.’)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
import numpy as np 
A = [[1, 2], 
 [2, 3], 
 [3, 4]] 
print(‘Matriz A será :’, A)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
B = [[1, 1, 2], 
 [2, 3, 3]] 
print(‘Matriz B será :’, B)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
result= [[0,0,0,0], 
 [0,0,0,0], 
 [0,0,0,0]] 
result = np.dot(A,B)
print(‘Resultado AB:’) 
for r in result: 
 print(r) 
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
Executando o algoritmo, teremos:
xxxxxxxxxxxxxxxxxxxxxxxxxx
Cálculo da multiplicação de matrizes.
xxxxxxxxxxxxxxxxxxxxxxxxxx
Matriz A será : [[1, 2], [2, 3], [3, 4]]
xxxxxxxxxxxxxxxxxxxxxxxxxx
Matriz B será : [[1, 1, 2], [2, 3, 3]]
xxxxxxxxxxxxxxxxxxxxxxxxxx
Resultado AB:
UNIASSELVI
1
5
1
TEMA DE APRENDIZAGEM 7
[5 7 8]
[ 8 11 13]
[11 15 18]
xxxxxxxxxxxxxxxxxxxxxxxxxx
VOCÊ SABE RESPONDER?
Você sabe dizer se é possível multiplica a matriz A, 3x2, pela matriz B, 1x2?
MATRIZ INVERSA
Veremos agora a definição de matriz inversa de uma matriz A.
Dada uma matriz quadrada A, de ordem n, se X é uma matriz, tal que 
AX I e XA In n= = , em que In é a matriz identidade de ordem n, então, X é 
denominada matriz inversa de A, sendo simbolizada por A−1.
Por exemplo:
A �
�
�
�
�
�
�
�
1 2
2 1
 e 
B �
��
�
�
�
�
�
1 5 2 5
2 5 1 5
/ /
/ /
Utilizar o algoritmo anterior para verificar se chegamos à matriz identidade.
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Cálculo da multiplicação de matrizes.’)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
import numpy as np 
A = [[1, 2], 
 [-2, 1]] 
print(‘Matriz A será :’, A)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
B = [[1/5, -2/5], 
1
5
8
 [2/5, 1/5]] 
print(‘Matriz B será :’, B)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
result= [[0,0,0,0], 
 [0,0,0,0], 
 [0,0,0,0]] 
result = np.dot(A,B)
print(‘Resultado AB:’) 
for r in result: 
 print(r) 
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
Executando o algoritmo, teremos:
xxxxxxxxxxxxxxxxxxxxxxxxxx
Cálculo da multiplicação de matrizes.
xxxxxxxxxxxxxxxxxxxxxxxxxx
Matriz A será: [[1, 2], [-2, 1]]
xxxxxxxxxxxxxxxxxxxxxxxxxx
Matriz B será : [[0.2, -0.4], [0.4, 0.2]]
xxxxxxxxxxxxxxxxxxxxxxxxxx
Resultado AB:
[1. 0.]
[0. 1.]
xxxxxxxxxxxxxxxxxxxxxxxxxx
Observe que B é a matriz inversa de A ou B = A-1.
A . B = In. 
Se você deseja verificar se existe a matriz inversa e qual ela é, você pode utilizar ou-
tra função do Python, a linalg.inv. Suponha que você queira saber a inversa de A.
UNIASSELVI
1
5
9
TEMA DE APRENDIZAGEM 7
A �
�
�
�
�
�
�
�
1 2
2 1
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Cálculo da matriz inversa.’)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
import numpy as np
arr = np.array([[1, 2], [-2, 1]])
arr_inv = np.linalg.inv(arr)
print(‘Resultado:’) 
print(arr_inv) 
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
Executando o algoritmo, teremos:
xxxxxxxxxxxxxxxxxxxxxxxxxx
Cálculo da matriz inversa.
xxxxxxxxxxxxxxxxxxxxxxxxxx
[[ 0.2 -0.4]
 [ 0.4 0.2]]
xxxxxxxxxxxxxxxxxxxxxxxxxx
Veja que 
B �
��
�
�
�
�
� �
��
�
�
�
�
�
1 5 2 5
2 5 1 5
0 2 0 4
0 4 0 2
/ /
/ /
, ,
, ,
Propriedades da multiplicação de matrizes
 ■ Associativa: (A. B) . C = A . (B . C). 
 ■ Distributiva à direita em relação à adição: (A + B) . C = A . C + B . C.
 ■ Distributiva à esquerda em relação à adição: A . (B + C) = A . B + A . C
Em geral, A·B ≠ B·A, para A e B duas matrizes quaisquer, isto é, não é válida a 
propriedade comutativa da multiplicação para matrizes, porém A·I = I·A = A, 
em que I é a matriz identidade de ordem apropriada e A é uma matriz qualquer.
1
1
1
VOCÊ SABE RESPONDER?
Você sabe dizer se é possível A . B = 0 sem termos A = 0 ou B = 0?
Você pode também realizar exercícios no algoritmo do GeoGebra (aplicativo de 
acesso livre), na seção material didático, tema Todas as operações com matrizes. 
Escolha uma das operações, exceto determinante, que será explicado no próximo 
tema. Para iniciar, você deveentrar com os elementos dos conjuntos A e B. Re-
cursos de mídia disponíveis no conteúdo digital do ambiente virtual de apren-
dizagem 
EU INDICO
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 7
Resumindo as matrizes, teremos:
• Matriz: tipo m x n é toda tabela de números dispostos em m linhas e n colunas.
• Matriz coluna: for de ordem m x 1, ou seja, quando o n = 1.
• Matriz linha: for de ordem 1 x n, ou seja, quando o m = 1.
• Matriz nula: tem todos os elementos iguais a zero. 
• Matriz transposta: Dada uma matriz A = (aij)mxn, denominamos transposta de A (e 
indicamos At) a matriz At = (a’ij)mxn, tal que a’ji = aij. Em outras palavras, a matriz At é 
obtida trocando-se as linhas pelas colunas da matriz A.
• Matriz oposta: Dada uma matriz A = (aij)mxn, a sua matriz oposta será definida por – A 
= (- aij)mxn.
• Matriz quadrada: Quando m = n, ou seja, o número de linhas for igual ao número de 
colunas, dizemos que a matriz é quadrada de ordem nxn ou simplesmente de ordem 
n. 
• Matriz triangular: Em uma matriz quadrada, quando os elementos acima ou abaixo 
da diagonal principal são todos nulos.
• Matriz diagonal: Em uma matriz quadrada de ordem n, quando todos os elementos 
posicionados acima e abaixo da diagonal principal são nulos.
• Matriz identidade: Em uma matriz quadrada de ordem n, quando todos os elementos 
da diagonal principal são iguais a 1 e os outros elementos são iguais a zero.
• Matriz simétrica: Em uma matriz quadrada, quando tiver o elemento aij igual ao 
elemento aji.
• Adição de matrizes: uma matriz C tal que seus elementos sejam resultantes da 
soma dos elementos de A com os elementos de B, da seguinte forma: cij = aij + bij. 
• Subtração de matrizes: uma matriz D tal que seus elementos sejam resultantes 
da diferença dos elementos de A com os elementos de B, da seguinte forma: dij = 
aij - bij. 
• Multiplicação de um número real por uma matriz: basta multiplicar cada elemento 
da matriz por este número real.
• Multiplicação de matrizes: Dada uma matriz A = (ajj) do tipo mxn e uma matriz B = 
(bjj) do tipo nxp, o produto da matriz A pela matriz B é a matriz C = (cij) do tipo mxp, 
tal que o elemento cij é calculado multiplicando-se ordenadamente os elementos 
da linha i, da matriz A, pelos elementos da coluna j, da matriz B, e somando-se os 
produtos obtidos.
• Matriz inversa: Dada uma matriz quadrada A, de ordem n, se X é uma matriz, tal que 
AX = In e XA = In, onde In é a matriz identidade de ordem n, então X é denominada 
matriz inversa de A, sendo simbolizada por A−1.
1
1
1
Na próxima fase, será desenvolvido o tema determinantes, sua definição, deter-
minantes de uma matriz de primeira e de segunda ordem, regra de Sarrus, cofator, 
determinantes de ordem maior que três e cálculo da matriz inversa utilizando 
determinante. Utilizar da linguagem de programação Python para realizar ope-
rações básicas com matrizes.
DETERMINANTES
Na história da matemática, a ideia de determinante aparece em soluções de sis-
temas lineares pelo menos um século antes do matemático inglês Arthur Cayley 
criar as teorias das matrizes. 
Apesar de hoje estudarmos primeiro matrizes, depois determinantes e, em 
seguida, sistemas lineares, a ordem histórica foi: sistemas lineares, determinantes 
e, somente mais tarde, as matrizes.
DEFINIÇÃO
Este tema será importante para soluções de sistemas lineares que são muito uti-
lizados na informática, bem como em problemas de geometria analítica.
O determinante é um número real associado a uma matriz quadrada. É im-
portante destacar que cada matriz possui um único determinante.
O determinante de uma matriz A será denotado por det A ou por DA.
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 7
DETERMINANTE DE UMA MATRIZ DE PRIMEIRA E DE 
SEGUNDA ORDEM
O determinante de uma matriz de primeira ordem, A = (a11), é definido pelo 
valor do seu elemento único a11.
Por exemplo: 
Se M = (6), então det M = 6.
A matriz quadrada de segunda ordem 
A
a a
a a
�
�
�
�
�
�
�
11 12
21 22 tem como determi-
nante o número real obtido pela expressão det A a a a a � �� � � �11 22 21 12. . .
Por exemplo: 
A � �
�
�
�
�
�
2 7
4 8
, a determinante será 
det A � � � �� � � �2 8 4 7 16 28 12. � . � . 
Álgebra linear 
Organizador: Alfredo Steinbruch e Paulo Winterle
Editora: Pearson
Ano: 1987
Sobre o livro: com uma linguagem clara e acessível, o livro bus-
ca ensinar ao leitor essa disciplina fazendo uso de exercícios 
com respostas para a fixação da parte teórica apresentada. 
Esta edição, totalmente revisada, teve seus conceitos reformu-
lados; supressões e acréscimos e, sobretudo, a inclusão de 519 
problemas que o livro anterior não possuía. 
O texto se tornou mais prático e mais simples para atender ao 
objetivo maior que é o de ser útil ao processo de ensino-apren-
dizagem.Há um capítulo dedicado a determinantes com mui-
tos exercícios práticos aplicáveis na computação.
INDICAÇÃO DE LIVRO
1
1
4
Podemos gerar um algoritmo na linguagem de programação Python simples para 
calcular a determinante de uma matriz de segunda ordem. Basta multiplicarmos 
os elementos da diagonal principal e subtrairmos o produto pela multiplicação 
dos elementos da diagonal secundária.
Nesse algoritmo, avançamos com a utilização da função input(), em que en-
tramos com os valores para formar a matriz.
print(‘++++++++++++++++++++++++++’)
print(‘Cálculo da determinante de uma matriz de segunda ordem.’)
print(‘++++++++++++++++++++++++++’)
import numpy as np
a = int(input(‘Entre com o elemento a11: ‘))
b = int(input(‘Entre com o elemento a12: ‘))
c = int(input(‘Entre com o elemento a21: ‘))
d = int(input(‘Entre com o elemento a22: ‘))
matriz_A = np.array(
 [
 [a,b],[c,d]
 ]
)
print(‘A matriz A é: ‘)
print( matriz_A)
print(‘++++++++++++++++++++++++++’)
D = (a*d)-(b*c)
print(‘O valor da determinante é:’, D)
print(‘++++++++++++++++++++++++++’)
Executando o algoritmo, temos:
++++++++++++++++++++++++++
Cálculo da determinante de uma matriz de segunda ordem.
++++++++++++++++++++++++++
Entre com o elemento a11: 2
Entre com o elemento a12: 7
Entre com o elemento a21: 4
UNIASSELVI
1
1
5
TEMA DE APRENDIZAGEM 7
Entre com o elemento a22: 8
A matriz A é: 
[[2 7] 
 [4 8]] 
++++++++++++++++++++++++++
O valor da determinante é: -12
++++++++++++++++++++++++++
DETERMINANTE DE UMA MATRIZ DE TERCEIRA ORDEM – 
REGRA DE SARRUS
Considere a matriz A
a a a
a a a
a a a
�
�
�
�
�
�
�
�
�
�
�
11 12 13
21 22 23
31 32 33
Os passos para a resolução são:
1°: repetimos as duas primeiras colunas ao lado da terceira coluna:
A
a a a
a a a
a a a
a
a
a
a
a
a
�
�
�
�
�
�
�
�
�
�
�
11 12 13
21 22 23
31 32 33
11
21
31
12
22
32
 
2°: encontramos a soma do produto dos elementos da diagonal principal com 
os dois produtos obtidos pela multiplicação dos elementos das paralelas a essa 
diagonal:
A
a a a
a a a
a a a
a
a
a
a
a
a
�
�
�
�
�
�
�
�
�
�
�
�
11 12 13
21 22 23
31 32 33
11
21
31
12
22
32
 a a a a a a a a a D11 22 33 12 23 31 13 21 32 1. . . . . .� � �
3°: encontramos a soma do produto dos elementos da diagonal secundária com 
os dois produtos obtidos pela multiplicação dos elementos das paralelas a essa 
diagonal:
A
a a a
a a a
a a a
a
a
a
a
a
a
�
�
�
�
�
�
�
�
�
�
�
�
11 12 13
21 22 23
31 32 33
11
21
31
12
22
32
 a a a a a a a a a D13 22 31 11 23 32 12 21 33 2. . . . . .� � �
1
1
1
4°: por fim, devemos operar: a soma do produto da diagonal principal com suas 
paralelas, menos a soma do produto da diagonal secundária com suas paralelas. 
Dessa forma:
Det A D D = 1 2�
Essa regra é válida repetindo-se as duas primeiras linhas abaixo da matriz, porém 
utilizaremos a repetição das duas primeiras colunas.
Sempre que tivermos uma matriz dentro de barras simples, trataremos de cálculo 
de determinante. Por exemplo, 3 1
5 8
19=
 estamos indicando que o determi-
nante da matriz é 19.
PENSANDO JUNTOS
Exemplo de cálculo de determinante pela regra dePierre Sarrus.
A �
�
�
�
�
�
�
�
�
�
�
3 4 2
2 1 5
0 7 4
1°: repetimos as duas primeiras colunas ao lado da terceira coluna:
A �
�
�
�
�
�
�
�
�
�
�
3 4 2
2 1 5
0 7 4
3
2
0
4
1
7
2°: encontramos a soma do produto dos elementos da diagonal principal com 
os dois produtos obtidos pela multiplicação dos elementos das paralelas a essa 
diagonal:
A �
�
�
�
�
�
�
�
�
�
�
� � � � �
3 4 2
2 1 5
0 7 4
3
2
0
4
1
7
3 1 4 4 5 0 2 2 7 12 . . . . . . 00 28 40 1 � � � D
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 7
3°: encontramos a soma do produto dos elementos da diagonal secundária com os 
dois produtos obtidos pela multiplicação dos elementos das paralelas a essa diagonal:
A �
�
�
�
�
�
�
�
�
�
�
� � � � � � �
3 4 2
2 1 5
0 7 4
3
2
0
4
1
7
1 0 5 7 2 4 052 3 4 0 1 32 137. . . . . . �� D2
4°: por fim, devemos operar: a soma do produto da diagonal principal com suas 
paralelas, menos a soma do produto da diagonal secundária com suas paralelas. 
Dessa forma:
Det A D D � � � �1 2 40 137 97� �
Para encerrarmos este tema, iremos gerar um algoritmo na linguagem de progra-
mação Python, para calcular a determinante de uma matriz de terceira ordem, 
pela regra de Sarrus.
print(‘******’*10)
print(‘Cálculo da determinante de uma matriz de terceira ordem’)
import numpy as np
def main():
 m = np.array([(3, 4, 2), (2, 1, 5), (0, 7, 4)])
 det = ((m[0][0] * m[1][1] * m[2][2]) + (m[0][1] 
 * m[1][2] * m[2][0]) + (m[0][2] * m[1][0] * m[2][1])) - ((m[2][0] 
 * m[1][1] * m[0][2]) + (m[2][1] * m[1][2] * m[0][0]) + (m[2][2] 
 * m[1][0] * m[0][1]))
 print(“O determinante da matriz é: “, det)
if __name__ == “__main__”:
 main()
print(‘******’*10)
No contexto deste algoritmo, m[0][0] representa a posição de um elemento na 
matriz, ou seja, nesse caso, a11. 
1
1
8
Def main() é o nome do ambiente principal no qual o código é executado.
if __name__ == “__main__” para permitir ou evitar que partes do código 
sejam executadas ao importar os módulos. 
Você poderia utilizar a função input() para entrar com os valores da matriz.
Executando o algoritmo, temos:
************************************************************
Cálculo da determinante de uma matriz de terceira ordem
O determinante da matriz é: -97
************************************************************
Ainda você pode utilizar a função do Python linalg.det(m), em vez de montar 
uma complexa sequência de posições dos elementos da matriz.
print(‘******’*10)
print(‘Cálculo da determinante de uma matriz de terceira ordem’)
import numpy as np
def main():
 m = np.array([(3, 4, 2), (2, 1, 5), (0, 7, 4)])
 det = np.linalg.det(m)
 print(“O determinante da matriz é: “, det)
if __name__ == “__main__”:
 main()
print(‘******’*10)
Executando o algoritmo, temos:
************************************************************
Cálculo da determinante de uma matriz de terceira ordem
O determinante da matriz é: -97.0
************************************************************
UNIASSELVI
1
1
9
TEMA DE APRENDIZAGEM 7
COFATOR
Dada uma matriz A aij� �� �� , quadrada de ordem n �≥ 2 e n∈* , denomina-
mos cofator de aij o produto de �� � �1 i j pelo determinante da matriz (Dij) que 
se obtém de A, suprimindo a linha de ordem i e a coluna de ordem j. 
Por exemplo:
Considere a matriz A �
�
�
�
�
�
�
�
�
�
�
3 4 2
2 1 5
0 7 4
.
O cofator de �a23 será: 
C D D D23
2 3
23
5
23 231 1� � � � � �� � � �� . .
� � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
� � � 
2
D23 1
3 4
2 1 5
0 7 4
1
3 4
0 7
21. .
Você pode gerar um algoritmo na linguagem de programação Python para cal-
cular o cofator de uma matriz 3x3, utilizando os conceitos já aprendidos.
C Dij
i j
ij� �� � � 1 .
1
1
1
print(‘******’*10)
print(‘Cálculo do cofator de uma matriz de terceira ordem.’)
import numpy as np
matriz_A = np.array(
 [
 [3,4,2],[2,1,5],[0,7,4]
 ]
)
print(‘A matriz A 3x3 será: ‘)
print( matriz_A)
print(‘******’*10)
i = int(input(‘Entre com o valor da linha do elemento da matriz’))
j = int(input(‘Entre com o valor da coluna do elemento da matriz’))
print(‘******’*10)
print(‘Informe as posições da matriz restante retirando a linha e coluna in-
formada.’)
a = int(input(‘Entre com o valor do elemento da posição a11: ‘))
b = int(input(‘Entre com o valor do elemento da posição a12: ‘))
c = int(input(‘Entre com o valor do elemento da posição a21: ‘))
d = int(input(‘Entre com o valor do elemento da posição a22: ‘))
print(‘******’*10)
matriz_B = np.array(
 [
 [a,b],[c,d]
 ]
)
print(‘A matriz E 2x2 para calcular o determinante será: ‘)
print( matriz_B)
print(‘******’*10)
e = (a*d)- (b*c)
f = (-1)**(i+j)*e
print(‘O cofator será:’)
print(f)
print(‘******’*10)
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 7
Executando o algoritmo, temos:
************************************************************
Cálculo do cofator de uma matriz de terceira ordem
A matriz A 3x3 será: 
[[3 4 2]
 [2 1 5]
 [0 7 4]]
************************************************************
Entre com o valor da linha do elemento da matriz 2
Entre com o valor da coluna do elemento da matriz 3
************************************************************
Informe as posições da matriz restante retirando a linha e coluna informada
Entre com o valor do elemento da posição a11: 3
Entre com o valor do elemento da posição a12: 4
Entre com o valor do elemento da posição a21: 0
Entre com o valor do elemento da posição a22: 7
************************************************************
A matriz E 2x2 para calcular o determinante será:
[[3 4]
 [0 7]]
************************************************************
O cofator será:
-21
************************************************************
DETERMINANTE DE ORDEM MAIOR QUE TRÊS
Para calcularmos o determinante de matrizes de ordem superior a 3, usaremos 
o Teorema de Pierre Laplace. Este método é utilizado de forma acentuada para 
matrizes quadradas de ordem maior que 3, uma vez que a Regra de Sarrus apli-
ca-se somente a determinantes de ordem igual a 3. 
Esse teorema pode ser utilizado para matrizes de ordem 2 ou superior, po-
rém, os métodos ensinados anteriormente apresentam resolução de uma forma 
mais rápida.
1
1
1
O determinante de uma matriz quadrada de ordem n �≥ 2 é a soma dos produtos 
dos elementos de uma fila (linha ou coluna) pelos respectivos cofatores.
A resolução se torna mais rápida quando consideramos a fila que contém o maior 
número de zeros, pois, nesse caso, não é necessário calcular o determinante.
PENSANDO JUNTOS
Por exemplo:
Considere a matriz A �
�
�
�
�
�
�
�
�
�
�
3 4 2
2 1 5
0 7 4
.
O cofator de a23 será: 
C D D D11
1 1
11
2
11 111 1� � � � �� � � �� . .
D11
3 4 2
2 1 5
0 7 4
1 5
7 4
4 35 31�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
� � � � �
O cofator de a23 será: 
C D D D21
2 1
21
3
21 211 1� � � � � �� � � �� . .
� � �
�
�
�
�
�
�
�
�
�
�
� �
�
�
�
�
�
� � � � � � D21 1
3 4 2
2 1 5
0 7 4
1
4 2
7 4
16 14 2. . ( )
D C C C C3 2 0 3 31 2 2 0 93 4 9711 21 31 31 . . . . . . -
Podemos tornar o algoritmo anterior maior com a repetição do primeiro bloco 
em três blocos para calcular os cofatores de cada posição em uma fila.
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 7
Você pode acrescentar no final do algoritmo a fórmula anterior, permitindo o 
cálculo da determinante maior ou igual a 2.
print(‘******’*10)
print(‘Cálculo do cofator de uma matriz de terceira ordem.’)
import numpy as np
matriz_A = np.array(
 [
 (3, 4, 2), (2, 1, 5), (0, 7, 4)
 ]
)
print(‘A matriz A 3x3 será: ‘)
print( matriz_A)
print(‘******’*10)
i1 = int(input(‘Entre com o valor da linha do elemento da matriz’))
j1 = int(input(‘Entre com o valor da coluna do elemento da matriz’))
print(‘******’*10)
print(‘Informe as posições da matriz restante retirando a linha e coluna in-
formada.’)
a = int(input(‘Entre com o valor do elemento da posição a11: ‘))
b = int(input(‘Entre com o valor do elemento da posição a12: ‘))
c = int(input(‘Entre com o valor do elemento da posição a21: ‘))
d = int(input(‘Entrecom o valor do elemento da posição a22: ‘))
print(‘******’*10)
matriz_B = np.array(
 [
 [a,b],[c,d]
 ]
)
print(‘A matriz E 2x2 para calcular o determinante será: ‘)
print( matriz_B)
print(‘******’*10)
e1 = (a*d)- (b*c)
f1 = (-1)**(i1+j1)*e1
print(‘O cofator será:’)
1
1
4
print(f1)
print(‘******’*10)
print(‘******’*10)
i2 = int(input(‘Entre com o valor da linha do elemento da matriz’))
j2 = int(input(‘Entre com o valor da coluna do elemento da matriz’))
print(‘******’*10)
print(‘Informe as posições da matriz restante retirando a linha e coluna in-
formada.’)
n = int(input(‘Entre com o valor do elemento da posição a11: ‘))
m = int(input(‘Entre com o valor do elemento da posição a12: ‘))
t = int(input(‘Entre com o valor do elemento da posição a21: ‘))
r = int(input(‘Entre com o valor do elemento da posição a22: ‘))
print(‘******’*10)
matriz_C = np.array(
 [
 [n,m],[t,r]
 ]
)
print(‘A matriz E 2x2 para calcular o determinante será: ‘)
print( matriz_C)
print(‘******’*10)
e2 = (n*r)- (m*t)
f2 = (-1)**(i2+j2)*e2
print(‘O cofator será:’)
print(f2)
print(‘******’*10)
i3 = int(input(‘Entre com o valor da linha do elemento da matriz’))
j3 = int(input(‘Entre com o valor da coluna do elemento da matriz’))
print(‘******’*10)
print(‘Informe as posições da matriz restante retirando a linha e coluna in-
formada.’)
w = int(input(‘Entre com o valor do elemento da posição a11: ‘))
y = int(input(‘Entre com o valor do elemento da posição a12: ‘))
z = int(input(‘Entre com o valor do elemento da posição a21: ‘))
s = int(input(‘Entre com o valor do elemento da posição a22: ‘))
UNIASSELVI
1
1
5
TEMA DE APRENDIZAGEM 7
print(‘******’*10)
matriz_D = np.array(
 [
 [w,y],[z,s]
 ]
)
print(‘A matriz E 2x2 para calcular o determinante será: ‘)
print( matriz_D)
print(‘******’*10)
e3 = (w*s)- (y*z)
f3 = (-1)**(i3+j3)*e3
print(‘O cofator será:’)
print(f3)
print(‘******’*10)
k = int(input(‘Entre com o valor do elemento da posição 1: ‘))
h = int(input(‘Entre com o valor do elemento da posição 2: ‘))
x = int(input(‘Entre com o valor do elemento da posição 3: ‘))
q = k*f1+h*f2+f3*x
print(‘Determinante será: ‘, q)
print(‘******’*10)
Executando o algoritmo, teremos:
************************************************************
Cálculo do cofator de uma matriz de terceira ordem
A matriz A 3x3 será: 
[[3 4 2]
 [2 1 5]
 [0 7 4]]
************************************************************
Entre com o valor da linha do elemento da matriz 1
Entre com o valor da coluna do elemento da matriz 1
************************************************************
Informe as posições da matriz restante retirando a linha e coluna informada
Entre com o valor do elemento da posição a11: 1
Entre com o valor do elemento da posição a12: 5
1
1
1
Entre com o valor do elemento da posição a21: 7
Entre com o valor do elemento da posição a22: 4
************************************************************
A matriz E 2x2 para calcular o determinante será: 
[[1 5]
 [7 4]]
************************************************************
O cofator será:
-31
************************************************************
************************************************************
Entre com o valor da linha do elemento da matriz 2
Entre com o valor da coluna do elemento da matriz 1
************************************************************
Informe as posições da matriz restante retirando a linha e coluna informada.
Entre com o valor do elemento da posição a11: 4
Entre com o valor do elemento da posição a12: 2
Entre com o valor do elemento da posição a21: 7
Entre com o valor do elemento da posição a22: 4
************************************************************
A matriz E 2x2 para calcular o determinante será:
[[4 2]
 [7 4]]
************************************************************
O cofator será:
-2
************************************************************
Entre com o valor da linha do elemento da matriz 3
Entre com o valor da coluna do elemento da matriz 1
************************************************************
Informe as posições da matriz restante retirando a linha e coluna informada
Entre com o valor do elemento da posição a11: 4
Entre com o valor do elemento da posição a12: 3
Entre com o valor do elemento da posição a21: 1
Entre com o valor do elemento da posição a22: 5
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 7
************************************************************
A matriz E 2x2 para calcular o determinante será:
[[4 3]
 [1 5]]
************************************************************
O cofator será:
17
************************************************************
Entre com o valor do elemento da posição 1: 3
Entre com o valor do elemento da posição 2: 2
Entre com o valor do elemento da posição 3: 0
Determinante será: -97
************************************************************
CÁLCULO DA MATRIZ INVERSA UTILIZANDO DETERMINANTE
Veremos como utilizar o determinante da matriz para determinar sua inversa.
Seja uma matriz A a b
c d
�
�
�
�
�
�
� em que a, b, c e d são números reais tais que 
det A ≠ 0 . Então, a inversa de A será dada por A−1 . A relação entre det A e 
A-1 será:
A
A
d b
c a
� �
�
�
�
�
�
�
�
�
1 1
det
.
Você deve ter observado que, se a det A = 0, não temos a A−1 . 
Por exemplo:
Calcule a inversa de A �
�
�
�
�
�
�
�
�
2 4
5 1
.
A
A
d b
c a A
� �
�
�
�
�
�
�
�
� �
� �
� �
�
�
�
�
�
�
1 1 1 1 4
5 2det
.
det
.
Det A � � � � � �� � � �1 2 4 5 2 20 18. � . � 
1
1
8
A� �
�
� �
� �
�
�
�
�
�
� �
�
�
�
�
��
�
�
�
�
��
�1 1
18
1 4
5 2
1
18
4
18
5
18
2
18
1
18
2
9
5
18
1
.
99
�
�
�
�
��
�
�
�
�
��
VOCÊ SABE RESPONDER?
Tomando como referência todos os algoritmos gerados neste tema, elabore um 
algoritmo na linguagem de programação Python para calcular a determinante e a 
inversa de uma matriz 2 x 2.
Resumindo determinantes, teremos:
O determinante é um número real associado a uma matriz quadrada.
O determinante de uma matriz de primeira ordem, A = (a11), é definido pelo valor do 
seu elemento único a11.
A matriz quadrada de segunda ordem A
a a
a a
�
�
�
�
�
�
�
11 12
21 22
 tem como determinante 
o número real obtido pela expressão det A a a a a � �� � � �11 22 21 12. . .
Considere a matriz A
a a a
a a a
a a a
�
�
�
�
�
�
�
�
�
�
�
11 12 13
21 22 23
31 32 33
Os passos para a resolução pela regra de Sarrus para n = 3 são:
1°: repetimos as duas primeiras colunas ao lado da terceira coluna.
2°: encontramos a soma do produto dos elementos da diagonal principal com os dois 
produtos obtidos pela multiplicação dos elementos das paralelas a essa diagonal.
3°: encontramos a soma do produto dos elementos da diagonal secundária com 
os dois produtos obtidos pela multiplicação dos elementos das paralelas a essa 
diagonal.
UNIASSELVI
1
1
9
TEMA DE APRENDIZAGEM 7
4°: por fim, devemos operar: a soma do produto da diagonal principal com suas 
paralelas, menos a soma do produto da diagonal secundária com suas paralelas.
Dada uma matriz A aij� �� �� , quadrada de ordem n ≥ 2 e n∈* , n pertencente 
aos naturais ( ), denominamos cofator de aij o produto de �� � �1 i j
 pelo 
determinante da matriz Dij� � que se obtém de A, suprimindo a linha de ordem i e 
a coluna de ordem j C Dij
i j
ij: . � �� � �1 .
O determinante de uma matriz quadrada de ordem n ≥ 2 é a soma dos produtos 
dos elementos de uma fila (linha ou coluna) pelos respectivos cofatores.
A relação entre det A e A-1 será: A-1 = 1/(det A) .(⊢(d&-b@-c&a)).
Acesse seu ambiente virtual de aprendizagem e confira a aula referente a este 
tema. Recursos de mídia disponíveis no conteúdo digital do ambiente virtual de 
aprendizagem 
EM FOCO
1
8
1
NOVOS DESAFIOS
No decorrer deste tema, você aprendeu sobre matrizes e determinantes. Você 
teve principalmente conhecimento sobre tipologia e operações com matrizes, 
bem como o cálculo das determinantes de primeira, de segunda, de terceira e 
demais ordens.
Considere a possibilidade de que você trabalhano almoxarifado de uma 
empresa que vende computadores. Você precisa manter o controle dos estoques 
de produtos. Para uma determinada semana, seriam necessárias as quantidades 
de computadores descritas na Tabela 2 a seguir.
TIPOS PC1 PC2 PC3 PC4
Tipos de 
processador 
Intel
I3 I5 I7 I9
Quantidade 20 40 60 10
Tabela 2 – Tabela relacionado equipamentos com quantidade / Fonte: o autor.
A avaliação de custo desses produtos seria realizada com dois fornecedores, cujos 
preços por produto são descritos na Tabela 3.
PREÇO DO PC POR UNIDADE (R$)
FORNECEDOR 1 FORNECEDOR 2
PC1 2000,0 1500,0
PC2 4000,0 4500,0
PC3 6000,0 5500,0
PC4 8000,0 9000,0 
Tabela 3 – Tabela relacionado equipamentos com preço / Fonte: o autor.
UNIASSELVI
1
8
1
TEMA DE APRENDIZAGEM 7
Dessa forma, você precisa saber o custo total com cada fornecedor a fim de man-
ter o estoque da empresa. 
Conforme o conhecimento que você obteve neste tema, você pode gerar um 
algoritmo na linguagem de programação Python para aplicar seus conhecimentos 
de multiplicação de matrizes e resolver seu problema de maneira rápida e eficiente.
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Cálculo do custo total de PCs.’)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
import numpy as np
a = float(input(‘Entre com quantidade do PC1: ‘))
b = float(input(‘Entre com quantidade do PC2: ‘))
c = float(input(‘Entre com quantidade do PC3: ‘))
d = float(input(‘Entre com quantidade do PC4: ‘))
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
A = [[a, b, c, d]] 
print(‘Matriz das quantidades será :’, A)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
e = float(input(‘Entre com o preço do PC1 do fornecedor 1: ‘))
f = float(input(‘Entre com o preço do PC2 do fornecedor 1: ‘ ))
g = float(input(‘Entre com o preço do PC3 do fornecedor 1: ‘))
h = float(input(‘Entre com o preço do PC4 do fornecedor 1: ‘))
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
i = float(input(‘Entre com o preço do PC1 do fornecedor 2: ‘))
j = float(input(‘Entre com o preço do PC2 do fornecedor 2: ‘))
l = float(input(‘Entre com o preço do PC3 do fornecedor 2: ‘))
m = float(input(‘Entre com o preço do PC4 do fornecedor 2: ‘))
B = [[e,i], [f,j], [g,l], [h,m]] 
print(‘Matriz dos preços será :’, B)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
result= [[0,0]] 
result = np.dot(A,B)
print(‘Resultado AB:’) 
for r in result: 
 print(r) 
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
1
8
1
Executando o algoritmo, com a entrada das quantidades e dos valores dos 
PCs, poderemos analisar qual o dos fornecedores tem menor custo total.
xxxxxxxxxxxxxxxxxxxxxxxxxx
Cálculo do custo total de PCs
xxxxxxxxxxxxxxxxxxxxxxxxxx 
Entre com quantidade do PC1: 20
Entre com quantidade do PC2: 40
Entre com quantidade do PC3: 60
Entre com quantidade do PC4: 10
xxxxxxxxxxxxxxxxxxxxxxxxxx
Matriz das quantidades será : [[20.0, 40.0, 60.0, 10.0]]
xxxxxxxxxxxxxxxxxxxxxxxxxx
Entre com o preço do PC1 do fornecedor 1: 2000
Entre com o preço do PC2 do fornecedor 1: 4000
Entre com o preço do PC3 do fornecedor 1: 6000
Entre com o preço do PC4 do fornecedor 1: 8000
xxxxxxxxxxxxxxxxxxxxxxxxxx
Entre com o preço do PC1 do fornecedor 2: 1500
Entre com o preço do PC2 do fornecedor 2: 4500
Entre com o preço do PC3 do fornecedor 2: 5500 
Entre com o preço do PC4 do fornecedor 2: 9000
xxxxxxxxxxxxxxxxxxxxxxxxxx
Matriz dos preços será : [[2000.0, 1500.0], [4000.0, 4500.0], [6000.0, 5500.0], 
[8000.0, 9000.0]]
xxxxxxxxxxxxxxxxxxxxxxxxxx
Resultado Final, fornecedor 1 e fornecedor 2:
[640000. 630000.]
xxxxxxxxxxxxxxxxxxxxxxxxxx
Com os resultados obtidos, você provavelmente comprará os produtos do for-
necedor 2, economizando 10000 reais.
Este é um exemplo de como você pode gerar vários tipos de algoritmos com 
matrizes e determinantes para resolver problemas de seu dia a dia.
Por fim, lembre-se de que, na vida real, geralmente vamos desenvolver algo-
ritmos visando otimizar sistemas e obter menores custos.
UNIASSELVI
1
8
1
1. Uma das importantes aplicações das matrizes no dia a dia é a operação de multiplicação 
entre tabelas ou matrizes.
Considere as Tabelas 1 e 2 a seguir que relacionam quantidade de produtos e preço de venda 
de dois comerciantes, respectivamente. A primeira tabela representa um órgão público que 
deseja comprar de uma única vez os quatro tipos de impressoras. A segunda tabela são os 
preços unitários de cada impressora de dois comerciantes distintos.
PRODUTOS IMPRESSORA X IMPRESSORA Y IMPRESSORA Z
IMPRESSORA 
W
Quantidades 30 20 50 30
PRODUTOS
PREÇO DE VENDA DO CO-
MERCIANTE 1
PREÇO DE VENDA DO CO-
MERCIANTE 2
Impressora x 1000,0 1100,0
Impressora y 2000,0 800,0
Impressora z 700,0 900,0
Impressora w 2000,0 2200,0
Crie um algoritmo na linguagem de programação Python ou linguagem similar, sem a neces-
sidade de incluir a função input(), para executar a multiplicação de duas matrizes ou tabelas, 
relacionando quantidade de quatro impressoras distintas com o preço de venda de dois co-
merciantes. Dica: crie uma matriz 1x4 e uma matriz 4x2. Utilize a função do Python np.dot(A,B).
AUTOATIVIDADE
1
8
4
2. O algoritmo a seguir, na linguagem de programação Python ou similar, permite a aplicação 
da regra de Sarrus para calcular a determinante de uma matriz 3x3.
print(‘******’*10)
print(‘Cálculo da determinante de uma matriz de terceira ordem’)
import numpy as np
def main():
 m = np.array([(0, 3, -7), (3, -9, 2), (0, 9, -1)])
 det = ((m[0][0] * m[1][1] * m[2][2]) + (m[0][1] 
 * m[1][2] * m[2][0]) + (m[0][2] * m[1][0] * m[2][1])) - ((m[2][0] 
 * m[1][1] * m[0][2]) + (m[2][1] * m[1][2] * m[0][0]) + (m[2][2] 
 * m[1][0] * m[0][1]))
 print(“O determinante da matriz é: “, det)
if __name__ == “__main__”:
 main()
print(‘******’*10)
Para criar um algoritmo, na linguagem de programação Python, por exemplo, existe uma 
função que permite simplificar o tamanho do algoritmo. Essa função é np.linalg.det(). Elabo-
re um algoritmo reduzido que permita calcular a determinante da matriz 
M �
�
�
�
�
�
�
�
�
�
�
�
�
�
0 3 7
3 9 2
0 9 1
.
AUTOATIVIDADE
1
8
5
3. Na tipologia de matrizes, temos basicamente dez tipos de matrizes. Essas matrizes po-
dem ser geradas em um algoritmo na linguagem de programação Python ou similar, sem 
muitas dificuldades. 
É importante na elaboração do algoritmo importar a biblioteca ou módulo numpy.
A principal função para criar a matriz é np.array().
O algoritmo a seguir irá gerar um tipo de matriz. Essa matriz é:
import numpy as np
matriz = np.array(
 [
 [1,4,-2],[0,7,0],[0,0,-9]
 ]
)
print(matriz)
a) Linha. 
b) Coluna. 
c) Diagonal. 
d) Triangular. 
e) Identidade. 
4. O cofator é uma fórmula simples que facilita a resolução de determinantes de matrizes 
com n > 3. 
A matriz a seguir, 4 x 4, pode ser resolvida se utilizando do cofator.
Para facilitar os cálculos, procura-se a fila, a linha ou a coluna com o maior número de zeros.
M �
�
�
�
�
�
�
�
�
�
�
�
�
1 0 1 1
1 0 1 0
1 1 1 0
0 1 0 0
AUTOATIVIDADE
1
8
1
Com base na fórmula do cofator, C Dij
i j
ij� �� � � 1 . , podemos afirmar para a ma-
triz:
M �
�
�
�
�
�
�
�
�
�
�
�
�
1 0 1 1
1 0 1 0
1 1 1 0
0 1 0 0
:
Você pode elaborar um algoritmo apenas para calcular a matriz 3x3 do cofator.
I - Para c14 , termos um cofator zero.
II - Para c14 , termos um cofator positivo.
III - Para c14 , termos um cofator negativo.
É correto o que se afirma em:
a) I, apenas. 
b) III, apenas. 
c) I e III, apenas. 
d) II e III, apenas. 
e) I, II e III. 
5. Uma das formas mais simples de calcular a matriz inversa de uma matriz é por meio da 
determinante desta matriz.
Para uma matriz 2x2, a determinante pode ser obtida pelo algoritmo a seguir, na linguagem 
de programação Python.
print(‘++++++++++++++++++++++++++’)
print(‘Cálculo da determinante de uma matriz de segunda ordem.’)
print(‘++++++++++++++++++++++++++’)
import numpy as np
a = int(input(‘Entre com o elemento a11: ‘))
b = int(input(‘Entre com o elemento a12: ‘))
AUTOATIVIDADE
1
8
1
c = int(input(‘Entre com o elemento a21: ‘))
d = int(input(‘Entre com o elementoa22: ‘))
matriz_A = np.array(
 [
 [a,b],[c,d]
 ]
)
print(‘A matriz A é: ‘)
print( matriz_A)
print(‘++++++++++++++++++++++++++’)
D = (a*d)-(b*c)
print(‘O valor da determinante é:’, D)
print(‘++++++++++++++++++++++++++’)
Considerando a fórmula para calcular a inversa de uma matriz como sendo 
A
A
d b
c a
� �
�
�
�
�
�
�
�
�
1 1
det
.
, para a matriz 3 1
10 4
�
�
�
�
�
�
, a determinante desta matriz será:
a) 0.
b) 1.
c) 2.
d) 10.
e) 20.
AUTOATIVIDADE
1
8
8
REFERÊNCIAS
ANTON, H.; RORRES, C. Álgebra linear com aplicações. 8. ed. Porto Alegre: Bookman, 2001.
BOLDRINI, J. L. et al. Álgebra linear. 3. Ed. São Paulo: Harbra, 1984.
JENSKE, G.; PITZER, L. C.; SANTOS, L. G. Álgebra linear e vetorial. Indaial: Uniasselvi, 2016.
STEINBRUCH, A.; WINTERLE, P. Álgebra linear. 2. ed. São Paulo: Pearson Makron Books, 1987.
1
8
9
1. O algoritmo será:
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
print(‘Cálculo da multiplicação de matrizes.’)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
import numpy as np 
A = [[30, 20, 50,30]] 
print(‘Matriz A será :’, A)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
B = [[1000, 1100], 
 [2000, 800], [700, 900], [2000, 2200]] 
print(‘Matriz B será :’, B)
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
result= [[0,0]] 
result = np.dot(A,B)
print(‘Resultado AB:’) 
for r in result: 
 print(r) 
print(‘xxxxxxxxxxxxxxxxxxxxxxxxxx’)
Executando, teremos:
xxxxxxxxxxxxxxxxxxxxxxxxxx
Cálculo da multiplicação de matrizes
xxxxxxxxxxxxxxxxxxxxxxxxxx
Matriz A será : [[30, 20, 50, 30]]
xxxxxxxxxxxxxxxxxxxxxxxxxx
Matriz B será: [[1000, 1100], [2000, 800], [700, 900], [2000, 2200]]
xxxxxxxxxxxxxxxxxxxxxxxxxx
Resultado AB:
[165000 160000]
Xxxxxxxxxxxxxxxxxxxxxxxxxx
2. O algoritmo será:
print(‘******’*10)
print(‘Cálculo da determinante de uma matriz de terceira ordem’)
import numpy as np
def main():
 m = np.array([(0, 3, -7), (3, -9, 2), (0, 9, -1)])
 det = np.linalg.det(m)
 print(“O determinante da matriz é: “, det)
GABARITO
1
9
1
if __name__ == “__main__”:
 main()
print(‘******’*10)
Executando, teremos:
************************************************************
Cálculo da determinante de uma matriz de terceira ordem
O determinante da matriz é: -180.0
3 Opção D.
A executar o algoritmo, teremos:
[[ 1 4 -2] 
 [ 0 7 0] 
 [ 0 0 -9]]
Uma matriz triangular, ou seja, abaixo ou acima da diagonal principal, os elementos são zeros.
4 Opção A.
Os cofatores serão:
I. Para c14, termos um cofator zero. Verdadeiro.
c D14
1 4
14
51 1 1 0 0
1 0 1
1 1 1
0 1 0
� � � � � � �� � � �
�
�
�
�
�
�
�
�
�
�
� . . .
II. Para c24, termos um cofator positivo. Falso.
C D24
2 4
24
61 1 1 0 0
1 0 1
1 1 1
0 1 0
� � � � � � �� � � �
�
�
�
�
�
�
�
�
�
�
� . ..
III. Para c44, termos um cofator negativo. Falso.
C D44
4 4
44
81 1 1 0 0
1 0 1
1 0 1
1 1 1
� � � � � � �� � � �
�
�
�
�
�
�
�
�
�
�
� . ..
O algoritmo que poderia ser criado apenas para calcular o determinante da matriz 3x3 de 
forma mais rápida seria:
GABARITO
1
9
1
print(‘******’*10)
print(‘Cálculo do cofator de uma matriz de quarta ordem.’)
import numpy as np
matriz_M = np.array(
 [
 [1,0,1,1],[1,0,1,0], [1,1,1,0],[0,1,0,0]
 ]
)
print(‘A matriz M 4x4 será: ‘)
print( matriz_M)
print(‘******’*10)
print(‘Informe as posições da matriz restante retirando a linha e coluna informada.’)
a = int(input(‘Entre com o valor do elemento da posição a11: ‘))
b = int(input(‘Entre com o valor do elemento da posição a12: ‘))
c = int(input(‘Entre com o valor do elemento da posição a13: ‘))
d = int(input(‘Entre com o valor do elemento da posição a21: ‘))
e = int(input(‘Entre com o valor do elemento da posição a22: ‘))
f = int(input(‘Entre com o valor do elemento da posição a23: ‘))
g = int(input(‘Entre com o valor do elemento da posição a31: ‘))
h = int(input(‘Entre com o valor do elemento da posição a32: ‘))
s = int(input(‘Entre com o valor do elemento da posição a33: ‘))
print(‘******’*10)
import numpy as np
def main():
 n = np.array([(a,b,c), (d,e,f), (g,h,s)])
 det = np.linalg.det(n)
 print(“O determinante da matriz é: “, det)
if __name__ == “__main__”:
 main()
print(‘******’*10)
C
ij = ( - 1 )i + j . Dij
5 Opção C.
Ao executarmos e algoritmo:
print(‘++++++++++++++++++++++++++’)
print(‘Cálculo da determinante de uma matriz de segunda ordem.’)
print(‘++++++++++++++++++++++++++’)
import numpy as np
GABARITO
1
9
1
a = int(input(‘Entre com o elemento a11: ‘))
b = int(input(‘Entre com o elemento a12: ‘))
c = int(input(‘Entre com o elemento a21: ‘))
d = int(input(‘Entre com o elemento a22: ‘))
matriz_A = np.array(
 [
 [a,b],[c,d]
 ]
)
print(‘A matriz A é: ‘)
print( matriz_A)
print(‘++++++++++++++++++++++++++’)
D = (a*d)-(b*c)
print(‘O valor da determinante é:’, D)
print(‘++++++++++++++++++++++++++’)
Teremos:
++++++++++++++++++++++++++
Cálculo da determinante de uma matriz de segunda ordem
++++++++++++++++++++++++++
Entre com o elemento a11: 3
Entre com o elemento a12: 1
Entre com o elemento a21: 10
Entre com o elemento a22: 4
A matriz A é:
[[ 3 1]
 [10 4]]
++++++++++++++++++++++++++ 
O valor da determinante é: 2
++++++++++++++++++++++++++
Det A = a.d – c.b
GABARITO
1
9
1
MINHAS METAS
SISTEMAS LINEARES
Compreender uma equação linear.
Identificar sistemas de equações lineares.
Aplicar a classificação de um sistema linear na computação.
Aplicar a regra de Cramer na computação.
Aplicar os sistemas lineares na computação.
T E M A D E A P R E N D I Z A G E M 8
1
9
4
INICIE SUA JORNADA
Com uma produção de café M em crescimento em uma indústria W, você foi con-
tratado para desenvolver algoritmos que tornem mais rápido os cálculos de custos 
e de quantidades dos componentes do café M, em grandes demandas de produção.
O café M é composto por uma mistura de café X com café Y. O café X, depois 
de processado, custa 3,00 reais o quilograma. O café Y, depois de processado, 
custa 2,00 reais o quilograma. Se o custo de um quilograma da mistura ou café 
M, após o processamento, é de 2,50 reais, quanto há de cada variedade de um 
quilograma da mistura?
Para uma quantidade pequena, você pode desenvolver cálculos simples, 
como: x + y = 1, quantidades do café X e Y que compõem um quilograma de café 
M e 3x +2y = 2,5, custo do café X e Y que compõem um quilograma de café M.
Desenvolvendo, y = 1 – x e substituindo da segunda equação, temos: 3x + 
2(1-x) = 2,5. Teremos: 3x - 2x + 2 = 2,5 e x = 0,5. Logo, y = 0,5.
Entretanto, você precisa lidar com situações similares a esta com quantidades 
e custos maiores. Nesse contexto, vale desenvolver algoritmos em uma linguagem 
de programação, como o Python.
Veja que este exemplo pode gerar um algoritmo. 
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
print(‘Cálculo das quantidades do café X e Y que compõem um quilograma 
de café M.’)
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
from sympy import symbols, Eq, solve 
x, y = symbols(‘x,y’) 
eq1 = Eq((x+y), 1) 
print(“Equação 1:”) 
print(eq1)
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
a=float(input(‘Entre com o custo do café X : ‘))
b=float(input(‘Entre com o custo do café Y : ‘))
c=float(input(‘Entre com o custo do café M : ‘))
eq2 = Eq((a*x+b*y), c) 
print(“Equação 2”) 
UNIASSELVI
1
9
5
TEMA DE APRENDIZAGEM 8
print(eq2) 
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
print(‘O valor de X e de Y será:’)
print(solve((eq1, eq2), (x, y))) 
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
Por meio de funções do Python com a biblioteca sympy, você pode realizar várias 
operações com equações lineares de modo rápido e preciso. Não esqueça de ins-
talar no seu computador a biblioteca sympy no terminal ou cmd com o comado 
pip install sympy, a fim de que as funções do Python criem equações lineares.
Neste podcast, você aprenderá sobre sistemas lineares, equação linear, sistemas 
de equações lineares, classificação de um sistema linear, regra de Cramer e siste-
mas linearesna computação. Recursos de mídia disponíveis no conteúdo digital 
do ambiente virtual de aprendizagem 
PLAY NO CONHECIMENTO
VAMOS RECORDAR?
Antes de você iniciar o estudo sobre sistemas lineares, sugiro que você reveja o 
conteúdo de determinantes, principalmente determinantes de matrizes 2 x 2.
Entre no algoritmo do GeoGebra (aplicativo de acesso livre), na seção material 
didático, tema Determinantes (2B). 
Procure selecionar a opção Determinante de ordem 2, 3 e 4. Teste vários valores na 
matriz e teste n igual a 2, 3 e 4. Observe a forma de resolução. Recursos de mídia 
disponíveis no conteúdo digital do ambiente virtual de aprendizagem 
Na próxima fase, será desenvolvido o tema Sistemas lineares: equação linear, 
sistemas de equações lineares, classificação de um sistema linear, regra de Cramer 
e sistemas lineares na computação.
1
9
1
DESENVOLVA SEU POTENCIAL
SISTEMAS LINEARES
Em todas as disciplinas específicas do seu curso, os autores 
buscaram apresentar problemas práticos no intuito de mostrar 
a aplicabilidade dos conceitos.
Dessa forma, se pensarmos na matemática como uma 
ciência a ser aplicada em problemas práticos, os sistemas li-
neares são a chave para as soluções desses problemas. Então, 
todos os problemas são resolvidos por um sistema linear? Cla-
ro que não, mas boa parte deles sim. Assim, sua importância 
é gigantesca.
EQUAÇÃO LINEAR
É toda equação da forma: a x a x a x bn n1 1 2 2� � � � ... , em 
que a a an1 2, , ..., são números reais que recebem o nome de 
coeficientes das incógnitas x x xn1 2, , ..., e b é um número 
real chamado termo independente.
Quando b = 0, a equação recebe o nome de linear 
homogênea.
Por exemplo:
 ■ equação linear: 5 2 8 9x y z � � � ;
 ■ equação linear homogênea: 5 2 8 0x y z � � � ;
 ■ equação não linear: 5 2 8 92x y z� � � , devido �x2 
não dar à equação condição homogênea.
UNIASSELVI
1
9
1
TEMA DE APRENDIZAGEM 8
SISTEMAS DE EQUAÇÕES LINEARES
Um sistema de equações lineares pode ser definido como um conjunto de n 
equações com n variáreis independentes entre si, na forma genérica, como:
a x a x a x b
a x a x a x b
n n
n n
11 1 12 2 1 1
21 1 22 2 2 2
� � � �
� � � �
 
 
...
...
aa x a x a x b
a x a x a x
n n
n n nn
31 1 32 2 3 3
1 1 2 2
� � � �
� � �
 
 
...
...
   
nn nb� 
Na qual, aij (i, j = 1, 2, 3, 4, ..., n) são os coeficientes do sistema de equações, xi (i = 
1, 2, 3, 4, ..., n) são as incógnitas e bi (i = 1, 2, 3, 4, ..., n) são os termos independentes.
Uma solução de um sistema é uma sequência de números que satisfaz as 
equações simultaneamente ( , , ,... )a a a an1 2 3 .
Fundamentos de informática – álgebra linear – para compu-
tação 
Organizador: Isabel Cristina de Oliveira Navarro Espinosa, Lau-
ra Maria da Cunha Canto Oliva Biscolla e Plinio Barbieri Filho
Editora: LTC
Ano: 2007
Sobre o livro: esta obra é destinada a alunos de graduação na 
área de ciências exatas em geral e, especialmente, aos alunos 
dos cursos de computação – Ciência da Computação, Sistemas 
de Informações, Engenharia de Computação e Licenciatura em 
Computação – que estejam iniciando seus estudos em Álgebra 
linear. Apresentada em linguagem simples, a teoria vem acom-
panhada de exemplos e exercícios resolvidos. O Capítulo 2 trata 
sobre sistemas lineares de forma bastante didática.
INDICAÇÃO DE LIVRO
1
9
8
As equações lineares podem ser descritas na forma matricial, como A·X = B, 
conforme a Figura 1.
Dois sistemas de equações são equivalentes se, e somente se, toda a solução de 
qualquer um dos sistemas também for solução do outro.
PENSANDO JUNTOS
A= , X= e B=
=
para o qual:
a
11
a
21
a
m1
a
m2
a
m3
a
mn
a
12
a
22
a
13
a
23
a
1n
X
1
X
2
X
n
a
2n
... ... ... ... ...
a
11
a
21
a
m1
a
m2
a
m3
a
mn
a
12
a
22
a
13
a
23
a
1n
a
2n
... ... ... ...
X
1
X
2
X
n
...
b
1
b
2
b
n
...
b
1
b
2
b
n
...
.
Matriz dos coe�cientes. Matriz das incógnitas. Matriz dos iresultados ou
dos termos independentes.
Por exemplo:
2 3 0
4 7
2 4
2 3 1
4 1 1
2 1 1
x y z
x y z
x y z
A . 
 
xx
y
n
0
7
4
-
A um sistema linear podemos associar as seguintes matrizes:
Figura 1 – Forma matricial de sistemas lineares / Fonte: Jenske, Santos e Pitzer (2016, p. 77).
Descrição da Imagem: a figura apresenta a matriz A com os coeficientes, a matriz X com as incógnitas e a matriz 
B com os termos independentes. Fim da descrição.
UNIASSELVI
1
9
9
TEMA DE APRENDIZAGEM 8
 ■ Matriz incompleta: é a matriz formada apenas pelos coeficientes das 
incógnitas do sistema.
Tomando o exemplo anterior, temos:
A �
�
�
�
�
�
�
�
�
�
�
�
�
2 3 1
4 1 1
2 1 1
 ■ Matriz completa: é a matriz que se obtém acrescentando à matriz incom-
pleta uma última coluna formada pelos termos independentes das equações 
do sistema. Assim, para o mesmo sistema anterior, a matriz completa é:
A �
�
�
�
�
�
�
�
�
�
�
�
�
2 3 1
4 1 1
2 1 1
0
7
4
 
CLASSIFICAÇÃO DE UM SISTEMA LINEAR
Um sistema linear pode ser classificado como sendo de possível ou impos-
sível solução. 
No caso de ser um sistema linear de possível solução, ele ainda pode ser: 
determinado, solução única, ou indeterminado, de infinitas soluções. 
No caso de ser um sistema linear impossível, ele não terá solução. 
Assim, temos três tipos de sistemas lineares:
 ■ Sistemas Possíveis e Determinados (SPD)
Quando só há uma possibilidade de resposta para x x x xn1 2 3, , ,... , de modo a satis-
fazer o sistema. Por esse motivo, dizemos que é determinado: há uma única solução.
Um sistema apresentar uma única solução significa que as equações que o 
compõem são retas concorrentes, cujo ponto de intersecção é a solução do sis-
tema, Figura 2.
1
1
1
 ■ Sistemas Possíveis e Indeterminados (SPI)
Nesse tipo de sistemas, há infinitas possibilidades de combinações para 
x x x xn1 2 3, , ,... , que satisfazem o sistema linear. 
Logo, este sistema é possível, mas é indeterminado. Não há uma 
única e determinada solução, mas infinitas.
As equações que compõem o sistema representam duas retas coincidentes, ou 
seja, estão uma em cima da outra. Todos os pontos de uma também são pontos 
da outra, Figura 3. 
a
11
 x
1
 x + a
12
 x
2
 = b
1
a
21
 x
1
 x + a
22
 x
2
 = b
2
Solução (x
1
, x
2
)
a
11
 x
1
 + a
12
 x
2
 = b
1
a
21
 x
1
 + a
22
 x
2
 = b
2
Figura 2 – Retas concorrentes em um ponto / Fonte: Jenske, Santos e Pitzer (2016, p. 78).
Descrição da Imagem: a figura apresenta um plano cartesiano com duas retas concorrentes em um ponto. Cada 
reta tem sua representação algébrica no formato a1x1 + a2x2 + ... + anxn = b. Fim da descrição.
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 8
 ■ Sistemas Impossíveis (SI)
Como o próprio nome diz, são os sistemas que não têm soluções, ou seja, não há 
combinação possível para x x x xn1 2 3, , ,... de modo a satisfazer, simultaneamente, 
todas as m equações do sistema.
As retas que compõem o sistema são paralelas entre si, ou seja, não há ponto 
em comum entre elas. Logo, não há solução possível, Figura 4.
a
11
 x
1
 x + a
12
 x
2
 = b
1
a
21
 x
1
 x + a
22
 x
2
 = b
2
Qualquer ponto
da reta é solução
de sistema
a
11
 x
1
 + a
12
 x
2
 = b
1
a
21
 x
1
 + a
22
 x
2
 = b
2
Figura 3 – Retas coincidentes. / Fonte: Jenske, Santos e Pitzer (2016, p. 79). 
Descrição da Imagem: a figura apresenta um plano cartesiano com várias retas coincidentes. Cada reta tem sua 
representação algébrica no formato a1x1 + a2x2 + ... + anxn = b. fim da descrição.
a
11
 x
1
 + a
12
 x
2
 = b
1
a
21
 x
1
 + a
22
 x
2
 = b
2
Não há solução
a
11
 x
1
 + a
12
 x
2
 = b
1
a
21
 x
1
 + a
22
 x
2
 = b
2
Figura 4 – Retas paralelas / Fonte: Jenske, Santos e Pitzer (2016, p. 79).
1
1
1
 ■ Exemplo 1:
x y
x y
� �
� �
�
�
�
8
2 1
Somando-se ambos os termos de cada membro, temos:
x x y y
x
x
2 8 1
3 9
3
-
Substituindo x = 3 na equação x + y = 8; 
3 8
5
� �
�
y
y
Como temos um ponto comum, temosSPD.
 ■ Exemplo 2:
x y
x y
� �
� �
�
�
�
8
2 2 16
Multiplicando a primeira equação por menos dois e somando-se ambos os ter-
mos de cada membro, temos:
� � � � � � �
� �
� �
2 2 2 2 16 16
0 0 0 0
0 0 0 0
x x y y
x e y
x e y/ / . 
Nesta situação, temos muitos pontos em comum, ou seja, SPI.
Descrição da Imagem: a figura apresenta um plano cartesiano com duas retas paralelas. Cada reta tem sua 
representação algébrica no formato a1x1 + a2x2 + ... + anxn = b. Fim da descrição.
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 8
 ■ Exemplo 3:
x y
x y
� �
� � �
�
�
�
10
10� �
Somando-se ambos os termos de cada membro, temos:
x x y y
x e y
x e y
� � � � �
� �
� �
10 10
0 20 0 20
20 0 20 0
 
 / / .
Nessa situação, é impossível dividir um número real por zero, ou seja, SI.
No algoritmo do GeoGebra (aplicativo de acesso livre), na seção material didático, 
tema Discussão de sistemas lineares, você pode revisar e se aprofundar no 
tema sobre a classificação de sistemas. Realize as três principais atividades do 
algoritmo 
EU INDICO
1
1
4
REGRA DE CRAMER
A regra de Cramer afirma que todo sistema normal tem uma única solução 
dada por X D
Di
x= 1 , em que i n�� �1 2 3, , ,..., , D detA = é o determinante 
da matriz incompleta associada ao sistema e Dxi é o determinante obtido 
pela substituição, na matriz incompleta, da coluna i, pela coluna formada pelos 
termos independentes.
Exemplo 1:
x y
x y
D
D
D
x
y
8
2 1
1 1
2 1
1 2 3
8 1
1 1
8 1 9
1 8
2 1
1 16 15
9
3
3 15
3
5x e y
-
-
-
Como o sistema tem uma única solução, (3,5), é SPD.
Exemplo 2:
x y
x y
D
D
D
x
y
8
2 2 16
1 1
2 2
2 2 0
8 1
16 2
16 16 0
1 8
2 16
16 16 0
0
0
0
0
x e y
-
-
-
 
UNIASSELVI
1
1
5
TEMA DE APRENDIZAGEM 8
Como o sistema tem várias soluções, é SPI.
Exemplo 3:
x y
x y
D
D
D
x
y
10
10
1 1
1 1
1 1 0
10 1
10 1
10 10 20
11 10
1 10
10 10 20
20
0
20
0
x e y
-
Como o sistema não tem solução, é SI.
Você pode elaborar um algoritmo na linguagem de programação Python ou 
similar para definir, em uma matriz 2 x 2, se é SPD, SPI ou SI. Observe que no 
Python usamos if para se, == para igual e != para diferente.
print(‘++++++++++++++++++++++++++’)
print(‘Aplicação da regra de Cramer em matrizes 2 x 2.’)
print(‘++++++++++++++++++++++++++’)
import numpy as np
a = int(input(‘Entre com o coeficiente de x para primeira equação: ‘))
b = int(input(‘Entre com o coeficiente de y para primeira equação: ‘))
c = int(input(‘Entre com o coeficiente de x para segunda equação: ‘))
d = int(input(‘Entre com o coeficiente de y para segunda equação: ‘))
matriz_A = np.array(
 [
 [a,b],[c,d]
 ]
)
print(‘A matriz A é: ‘)
print( matriz_A)
1
1
1
print(‘++++++++++++++++++++++++++’)
D = (a*d)-(b*c)
print(‘O valor da determinante D é:’, D)
print(‘++++++++++++++++++++++++++’)
e = int(input(‘Entre com o termo independente da primeira equação: ‘))
f = int(input(‘Entre com o termo independente da segunda equação: ‘))
matriz_Ax = np.array(
 [
 [e,b],[f,d]
 ]
)
print(‘A matriz Ax é: ‘)
print( matriz_Ax)
print(‘++++++++++++++++++++++++++’)
Dx = (e*d)-(b*f)
print(‘O valor da determinante Dx é:’, Dx)
print(‘++++++++++++++++++++++++++’)
matriz_Ay = np.array(
 [
 [a,e],[c,f]
 ]
)
print(‘A matriz Ay é: ‘)
print( matriz_Ay)
print(‘++++++++++++++++++++++++++’)
Dy = (a*f)-(c*e)
print(‘O valor da determinante Dy é:’, Dy)
print(‘++++++++++++++++++++++++++’)
if D != 0: 
 print(“Então é SPD”)
if D == 0 and Dx != 0: 
 print(“Então é SI”)
if D == 0 and Dx == 0: 
 print(“Então é SPI”) 
print(‘++++++++++++++++++++++++++’)
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 8
Se aplicarmos este algoritmo para o exemplo 1, teremos:
++++++++++++++++++++++++++
Aplicação da regra de Cramer em matrizes 2 x 2
++++++++++++++++++++++++++
Entre com o coeficiente de x para primeira equação: 1
Entre com o coeficiente de y para primeira equação: 1
Entre com o coeficiente de x para segunda equação: 2
Entre com o coeficiente de y para segunda equação: -1
A matriz A é: 
[[ 1 1]
 [ 2 -1]]
++++++++++++++++++++++++++
O valor da determinante D é: -3
++++++++++++++++++++++++++
Entre com o termo independente da primeira equação: 8
Entre com o termo independente da segunda equação: 1
A matriz Ax é: 
[[ 8 1]
 [ 1 -1]]
++++++++++++++++++++++++++ 
O valor da determinante Dx é: -9
++++++++++++++++++++++++++
A matriz Ay é:
[[1 8]
 [2 1]]
++++++++++++++++++++++++++
O valor da determinante Dy é: -15
++++++++++++++++++++++++++
Então é SPD
++++++++++++++++++++++++++
Procure testar os exemplos 2 e 3 neste algoritmo.
1
1
8
Considere que o sistema que você irá analisar tenha três incógnitas, como no 
exemplo a seguir. 
Seria mais eficiente e rápido utilizarmos um algoritmo na linguagem de pro-
gramação Python para aplicar a regra de Cramer. 
Utilizaremos funções e parte de algoritmos já estudados na geração deste 
novo algoritmo.
Observe que a resolução de cada determinante, quatro no total, 
D D D e Dx y z, , , são feitas em blocos, utilizando o import numpy as np e a 
função np.linalg.det. 
Após os quatro blocos, optamos em entrar com os valores já calculados de 
D D D e Dx y z, , , como uma forma de relembrar a regra de Cramer.
x y z
x y z
x y z
� � �
� � �
� � �
�
�
�
�
�
2 2
2 3 9
3 3 2 3
�
Inicialmente, iremos resolver o sistema pela regra de Cramer e depois pelo 
algoritmo.
VOCÊ SABE RESPONDER?
Utilizando o algoritmo anterior, qual seria o resultado para 
2 7
2 3 3
x y
x y
� �
� �
�
�
�
?
UNIASSELVI
1
1
9
TEMA DE APRENDIZAGEM 8
D
Dx
�
�
�
�
� � � � � � � � �
�
�
�
�
� �
1 2 1
2 1 3
3 3 2
2 18 6 3 9 8 14 4 10
2 2 1
9 1 3
3 3 2
4
( ) ( )
( 118 27 3 18 36 5 15 10
1 2 1
2 9 3
3 3 2
18 18 6 2
� � � � � � � � �
�
�
�
� � � � � �
) ( ) ( )
( ) (Dy 77 9 8 6 26 20
1 2 2
2 1 9
3 3 3
3 54 12 6 27 12 63
� � � � � � �
� � � � � � � � � � � �
) ( )
( ) ( )Dz 333 30
10
10
1
20
10
2
30
10
3
�
� �
� �
� �
x
y
z
 
print(‘******’*10)
print(‘Aplicação da regra de Cramer em matrizes 3 x 3.’)
print(‘******’*10)
import numpy as np
a = int(input(‘Entre com o coeficiente de x para primeira equação: ‘))
b = int(input(‘Entre com o coeficiente de y para primeira equação: ‘))
c = int(input(‘Entre com o coeficiente de z para primeira equação: ‘))
d = int(input(‘Entre com o coeficiente de x para segunda equação: ‘ ))
e = int(input(‘Entre com o coeficiente de y para segunda equação: ‘ ))
f = int(input(‘Entre com o coeficiente de z para segunda equação: ‘ ))
g = int(input(‘Entre com o coeficiente de x para terceira equação: ‘))
h = int(input(‘Entre com o coeficiente de y para terceira equação: ‘))
i = int(input(‘Entre com o coeficiente de z para terceira equação: ‘))
def main():
 m = np.array([(a, b, c), (d, e, f), (g, h, i)])
 D = np.linalg.det(m)
1
1
1
 print(‘******’*10)
 print(‘A matriz dos coeficientes é:’)
 print(m)
 print(‘******’*10)
 print(“O determinante da matriz é: “, D)
if __name__ == “__main__”:
 main()
print(‘******’*10)
s = int(input(‘Entre com o termo independente da primeira equação: ‘))
t = int(input(‘Entre com o termo independente da segunda equação: ‘ ))
w = int(input(‘Entre com o termo independente da terceira equação: ‘))
print(‘******’*10)
def main():
 mx = np.array([(s, b, c), (t, e, f), (w, h, i)])
 Dx = np.linalg.det(mx)
 print(‘A matriz dos coeficientes com a primeira coluna com termos inde-
pendentes é:’)
 print(mx)
 print(‘******’*10)
 print(“O determinante da matriz x é: “, Dx)
if __name__ == “__main__”:
 main()
print(‘******’*10)
def main():
 my = np.array([(a, s, c), (d, t, f), (g, w, i)])
 Dy = np.linalg.det(my)
 print(‘A matriz dos coeficientes com a segunda coluna com termos inde-
pendentes é:’)
 print(my)
 print(‘******’*10)
 print(“O determinante da matriz y é: “, Dy)
if __name__ == “__main__”:
 main()
print(‘******’*10)
def main():
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 8
 mz = np.array([(a, b, s), (d, e, t), (g, h, w)])
 Dz = np.linalg.det(mz)
 print(‘A matriz dos coeficientes com a terceira coluna com termos indepen-
dentes é:’)
 print(mz)print(‘******’*10)
 print(“O determinante da matriz z é: “, Dz)
if __name__ == “__main__”:
 main()
print(‘******’*10)
print(‘Para relembrar, entre com os valores de D, Dx, DY e Dz:’)
print(‘******’*10)
K1=float(input(‘Entre com o calor de D:’))
K2=float(input(‘Entre com o calor de Dx:’))
K3=float(input(‘Entre com o calor de Dy:’))
K4=float(input(‘Entre com o calor de Dz:’))
x = K2/K1
y = K3/K1
z = K4/K1
print(‘******’*10)
print(‘O valor de x será: x =’, x)
print(‘O valor de y será: y =’, y)
print(‘O valor de z será: z =’, z)
print(‘******’*10
Ao executar o algoritmo, temos:
************************************************************
Aplicação da regra de Cramer em matrizes 3 x 3
************************************************************
Entre com o coeficiente de x para primeira equação: 1
Entre com o coeficiente de y para primeira equação: 2
Entre com o coeficiente de z para primeira equação: -1
Entre com o coeficiente de x para segunda equação: 2
Entre com o coeficiente de y para segunda equação: -1
Entre com o coeficiente de z para segunda equação: 3
Entre com o coeficiente de x para terceira equação: 3
1
1
1
Entre com o coeficiente de y para terceira equação: 3
Entre com o coeficiente de z para terceira equação: -2
************************************************************
A matriz dos coeficientes é:
[[ 1 2 -1]
 [ 2 -1 3]
 [ 3 3 -2]]
************************************************************
O determinante da matriz é: 9.999999999999998
************************************************************
Entre com o termo independente da primeira equação: 2
Entre com o termo independente da segunda equação: 9
Entre com o termo independente da terceira equação: 3
************************************************************
A matriz dos coeficientes com a primeira coluna com termos independentes é:
[[ 2 2 -1]
 [ 9 -1 3]
 [ 3 3 -2]]
************************************************************
O determinante da matriz x é: 10.00000000000001
************************************************************
A matriz dos coeficientes com a segunda coluna com termos independentes é:
[[ 1 2 -1]
 [ 2 9 3]
 [ 3 3 -2]]
************************************************************
O determinante da matriz y é: 19.999999999999996
************************************************************
A matriz dos coeficientes com a terceira coluna com termos independentes é:
[[ 1 2 2]
 [ 2 -1 9]
 [ 3 3 3]]
************************************************************
O determinante da matriz z é: 30.000000000000004
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 8
************************************************************
Para relembrar, entre com os valores de D, Dx, DY e Dz:
************************************************************
Entre com o calor de D:10
Entre com o calor de Dx:10
Entre com o calor de Dy:20
Entre com o calor de Dz:30
************************************************************
O valor de x será: x = 1.0
O valor de y será: y = 2.0
O valor de z será: z = 3.0
************************************************************
APLICAÇÕES DE SISTEMAS LINEARES
Os sistemas lineares são a chave para resolver diversos problemas nas mais varia-
das áreas. Dessa forma, trazemos a resolução de algumas aplicações.
Exemplo 1:
Um veículo flex foi abastecido com 10 litros de álcool e 30 litros de gasolina, pa-
gando R$ 90,00. Depois de alguns dias, abasteceu com 30 litros de álcool e 20 litros 
de gasolina, pagando R$ 102,00. Mantendo os preços, obtenha o preço do álcool.
Utilizando as variáveis x e y para preços, respectivamente do álcool e da ga-
solina, montamos o sistema com as informações:
10 30 90
30 20 102
x y
x y
� �
� �
�
�
�
 
Nesse caso, podemos trabalhar de duas formas algebricamente:
 ■ Isolando uma variável na primeira equação e substituindo o seu equiva-
lente na segunda equação. 
Para x, teremos:
1
1
4
10 30 90
30 90 10
x y
y x dividindo todos os termos por
 
 
 
 
10
3 9
9
3
30 20 9
3
102
y x
y x
x x multiplican. ddo todos os termos por
x x
x
 
 
 
3
90 20 9 306
90 1880 20 306
70 306 180
70 126
126
70
1 8
 
 
 
 ,
x
x
x
x
x
-
-
-
-
-
Para y, teremos:
3 9
3 9 1 8
3 7 2
7 2
3
2 4
y x
y
y
y
y
 
 
 
�
�
�
�
�
,
,
,
-
-
 ■ Realizando o cancelamento de termo a termo no sistema, com o objetivo 
de eliminar inicialmente uma variável. 
Para x, teremos:
10x + 30y = 90 vamos dividir todos por 10
30x + 20y = 102 vamos dividir todos por 10
UNIASSELVI
1
1
5
TEMA DE APRENDIZAGEM 8
----------------------
 x + 3y = 9 vamos multiplicar todos por - 2
3x + 2y = 10,2 vamos multiplicar todos por 3
----------------------
-2x - 6y = -18 cancelando o -6y com +6y
9x + 6y = 30,6 
----------------------
7 12 6x = ,
x
x
=
=
12 6
7
1 8
,
,
Para y, teremos:
3 9
3 9 1 8
3 7 2
7 2
3
2 4
y x
y
y
y
y
�
�
�
�
�
 
 
 ,
,
,
-
-
Em vez de utilizarmos a biblioteca numpy do Python, utilizaremos agora a bi-
blioteca sympy, sugerida no início deste tema.
A biblioteca sympy permite que você trabalhe com sistema de equações como 
no exemplo anterior. Já na biblioteca numpy, você trabalha com matrizes e pode 
aplicar a regra de Cramer.
No algoritmo na linguagem de programação Python a seguir, optamos em 
colocar as equações e coeficientes diretamente no algoritmo. 
1
1
1
Entretanto, você pode aumentar este algoritmo e torná-lo padrão para outros 
sistemas de duas variáveis, utilizando a função input() para inserir os coeficientes 
de x e de y e o termo independente de cada equação. 
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
print(‘Cálculo do valor de x e de y no sistema linear.’)
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
from sympy import symbols, Eq, solve 
x, y = symbols(‘x,y’) 
eq1 = Eq((10*x+30*y), 90)
print(“Equação 1:”) 
print(eq1)
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
eq2 = Eq((30*x+20*y), 102) 
print(“Equação 2”) 
print(eq2) 
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
print(‘O valor de X e de Y será:’)
print(solve((eq1, eq2), (x, y))) 
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
Ao executar o algoritmo, temos:
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Cálculo do valor de x e de y no sistema linear 
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Equação 1:
Eq(10*x + 30*y, 90)
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Equação 2
Eq(30*x + 20*y, 102)
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
O valor de X e de Y será:
{x: 9/5, y: 12/5}
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Lembrando que 9/5 = 1,8 e 12/5 = 2,4
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 8
Exemplo 2:
Pedro quer totalizar a quantia de R$ 500,00 utilizando cédulas de um, cinco e 
dez reais. O total das células é 92, de modo que as quantidades de cédulas de um 
e de dez reais sejam iguais. A quantidade de cédulas de cinco reais que Pedro 
precisará é:
Utilizando as variáveis x, y e z para quantidades respectivamente das células 
de um, cinco e dez reais, montamos o sistema com as informações:
� � � � � �
�
x y z
x y z
 
 
� � �
� � �
�
�
�
92
5 10 500
e
2 92
11 5 500
x y
x y
 
 
� �
� �
�
�
�
� �
A fim de evitar cálculos demorados no papel, você pode utilizar o algoritmo na 
linguagem de programação Python baixo ou linguagem similar. 
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
print(‘Cálculo do valor de x, de y e de z no sistema linear. Lembrando que 
x = z.’)
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
from sympy import symbols, Eq, solve 
x, y = symbols(‘x,y’) 
eq1 = Eq((2*x+y), 92)
print(“Equação 1:”) 
print(eq1)
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
VOCÊ SABE RESPONDER?
Você saberia resolver o exercício anterior pela regra de Cramer, utilizando um dos 
algoritmos já ensinados?
1
1
8
eq2 = Eq((11*x+5*y), 500) 
print(“Equação 2”) 
print(eq2) 
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
print(‘O valor de x e y será:’)
print(solve((eq1,eq2), (x, y))) 
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
Ao executar o algoritmo, teremos o valor de x e de y, respectivamente.
O enunciado do exercício pede apenas o y.
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Cálculo do valor de x, de y e de z no sistema linear. Lembrando que x = z
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Equação 1:
Eq(2*x + y, 92)
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Equação 2
Eq(11*x + 5*y, 500)
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
O valor de x e y será:
{x: 40, y: 12}
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
VOCÊ SABE RESPONDER?
Você saberia resolver o exercício anterior pela regra de Cramer, utilizando um dos 
algoritmos já ensinados?
UNIASSELVI
1
1
9
TEMA DE APRENDIZAGEM 8
No algoritmo do GeoGebra (aplicativo de acesso livre), na seção material didático, 
tema Sistemas de equações lineares, você pode revisar e se aprofundar no assun-
to sobre a representação gráfica das equações. Manipule todos os pontos da di-
reita e analise os resultados gráficos. Recursos de mídia disponíveis no conteúdo 
digital do ambiente virtual de aprendizagem 
EU INDICO
Resumo de sistemas lineares.
• Equação linear é toda equação da forma: a x a x a x bn n1 1 2 2� � � � ... .
• Um sistema de equações lineares pode ser definido como um conjunto de n 
equações com n variáreis independentes entre si, na forma genérica como:
a x a x a x b
a x a x a x b
n n
n n
11 1 12 2 1 1
21 1 22 2 2 2
� � � �
� � � �
 
 
...
...
aa x a x a x b
a x a x a x
n n
n n nn
31 1 32 2 3 3
1 1 2 2
� � � �
� � �
 
 
...
...
   
nn nb� 
• Um sistema linear pode ser classificado como sendo de possível ou impossível 
solução. 
• No caso de ser um sistema linear de possível solução, ele ainda pode ser: 
determinado, solução única, ou indeterminado, de infinitas soluções. 
• No caso de ser um sistema linear impossível, ele não terá solução. 
• A regra de Cramer afirma que todo sistema normal tem uma única solução dada 
por X
D
Di
x= 1
, em que i n�� �1 2 3, , ,..., , D detA = é o determinante da 
matriz incompleta associada ao sistema e Dxi é o determinante obtido pela 
substituição, na matriz incompleta, da coluna i, pela coluna formada pelos termos 
independentes
1
1
1
NOVOS DESAFIOS
Neste tema, você estudou sistemas lineares, bem como equação linear, sistemas de 
equações lineares, classificação de um sistema linear, regra de Cramer e sistemas 
lineares na computação.
Suponha que você seja o dono de uma pastelaria e deseja ter um controle 
automatizado da venda de pastéis e de caldos de cana.
Em uma situação hipotética, você vende dois pastéis e três caldos de cana 
por R$ 5,40. Em outra situação, você vende cinco pastéis e dois caldos de cana 
por R$ 9,10. Você não quer mais fazer este tipo de cálculo na calculadora e ficar 
perdendo tempo, pois sua pastelaria está sempre cheia.
Então você resolve gerar um algoritmo na linguagem de programação Python 
com a inclusão das quantidades, pois os valores do pastel e do caldo de cana são 
fixos, ou seja, R$ 1,50 e R$ 0,80, respectivamente.
A solução seria criar um algoritmo no Python com a biblioteca sympy.
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
print(‘Cálculo do valor de x, de y e de z no sistema linear. Lembrando que 
x = z.’)
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
from sympy import symbols, Eq, solve 
a=int(input(‘Entre com a quantidade de pasteis: ‘))
b=int(input(‘Entre com a quantidade de caldos de cana: ‘))
eq1 = a*1.5 + b*0.8
print(“O valor total será: “) 
print(eq1) 
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
Para a primeira situação anterior, ao executar o algoritmo, você teria:
Acesse seu Ambiente Virtual de Aprendizagem e confira a aula referente a este 
tema. Recursos de mídia disponíveis no conteúdo digital do ambiente virtual de 
aprendizagem 
EM FOCO
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 8
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Cálculo do valor de x, de y e de z no sistema linear. Lembrando que x = z
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Entre com a quantidade de pasteis: 2
Entre com a quantidade de caldos de cana: 3
O valor total será: 
5.4
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Para a segunda situação, ao executar o algoritmo, você teria:
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Cálculo do valor de x, de y e de z no sistema linear. Lembrando que x = z
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Entre com a quantidade de pasteis: 5
Entre com a quantidade de caldos de cana: 2
O valor total será: 
9.1
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Esse exemplo simples demonstra como a linguagem de programação e a mate-
mática podem estar interligadas trazendo benefícios para o usuário.
Você pode criar vários algoritmos para atender suas necessidades profissio-
nais na questão de sistemas lineares. 
Lembre-se de que, para a linguagem de programação Python, você dispõe de 
duas bibliotecas com funções matemáticas: o numpy e o sympy. 
1
1
1
1. Uma das importantes aplicações dos sistemas lineares é no tráfego de veículos. Pode-se 
criar equações com três incógnitas, cada equação com duas incógnitas distintas, em um 
percurso entre três cidades. Veja a figura a seguir.
Imagine uma pessoa que se desloca de A para C, passando por B, percorrerá 450 km. Se a 
pessoa se deslocar de A para B, passando por C, o percurso será de 600 km. Para se deslocar 
de B para C, passando por A, a pessoa vai percorrer 800 km. Determine quantos quilômetros 
essa pessoa percorrerá nos percursor x, y e z, sem passar por cidades entre os percursos. 
x
Cidade
A Cidade
B
Cidade
C
z y
Crie um algoritmo na linguagem de programação Python ou linguagem similar, sem a ne-
cessidade de incluir a função input(), para resolver o sistema linear a seguir:
x + y = 460
z + y = 600
x + z = 800
Dica: use a biblioteca sympy do Python. 
2. Considerando um sistema linear de duas equações e duas incógnitas x e y, podemos aplicar 
a regra de Cramer para definir se é SPD, SPI e SI.
Cabe lembrar que:
No caso de ser um sistema linear de possível solução, SP, ele pode ser: determinado, SPD, 
solução única, ou indeterminado, SPI, de infinitas soluções e, no caso de ser um sistema 
linear impossível, SI, ele não terá solução. 
Crie um algoritmo na linguagem de programação Python ou linguagem similar, com a função 
AUTOATIVIDADE
1
1
1
input(), para resolver o sistema linear de duas equações e duas incógnitas, x e y. Aplicar a 
regra de Cramer a fim de definir se o sistema é SPD, SPI ou SI.
Dica: use a biblioteca numpy do Python. 
3. No algoritmo na linguagem de programação Python ou linguagem similar abaixo, pode-se 
calcular as incógnitas x e y.
print(‘Cálculo do valor de x e de y no sistema linear.’)
from sympy import symbols, Eq, solve 
x, y = symbols(‘x,y’) 
eq1 = Eq((x+2*y), 5)
print(“Equação 1:”) 
print(eq1)
eq2 = Eq((2*x-3*y), -4) 
print(“Equação 2”) 
print(eq2) 
print(‘O valor de X e de Y será:’)
print(solve((eq1, eq2), (x, y))) 
Este sistema é formado por duas equações.
O sistema linear formado pelas equações x + 2y = 5 e 2x - 3y = -4 é:
a) SI. 
b) SPI. 
c) SPD. 
d) SPI e SPD. 
e) SPI e SI. 
AUTOATIVIDADE
1
1
4
4. No algoritmo na linguagem de programação Python ou linguagem similar abaixo, pode-se 
calcular o valor total a ser pago em uma papelaria, sendo o a a quantidade de canetas e o 
b a quantidade de cadernos.
print(‘Cálculo do valor de x e de y no sistema linear.’)
from sympy import symbols, Eq, solve 
a=int(input(‘Entre com a quantidade de canetas: ‘))
b=int(input(‘Entre com a quantidade de cadernos: ‘))
eq1 = a*2 + b*8
print(“O valor total será: “) 
print(eq1) 
A equação eq1 = a*2 + b*8 é escrita em um algoritmo para calcular o valor total a ser pago 
em uma papelaria. Podemos afirmar que:
I - Os valores 2 e 8 representam os valores monetários: de uma caneta e de um caderno,respectivamente.
II - Os valores a e b representam os valores monetários: de uma caneta e de um caderno, 
respectivamente.
III - Os valores a*2 e b*8 representam valores não monetários: de uma caneta e de um ca-
derno, respectivamente.
É correto o que se afirma em:
a) I, apenas. 
b) III, apenas. 
c) I e III, apenas. 
d) II e III, apenas. 
e) I, II e III. 
AUTOATIVIDADE
1
1
5
5. Os sistemas lineares podem ser identificados em um plano cartesiano. No exemplo a seguir, 
na figura, o sistema SPD é representado por duas retas concorrentes em um ponto.
a
11
 x
1
 x + a
12
 x
2
 = b
1
a
21
 x
1
 + a
22
 x
2
 = b
2
Solução (x
1
, x
2
)
a
11
 x
1
 + a
12
 x
2
 = b
1
a
21
 x
1
 + a
22
 x
2
 = b
2
Um SI, sistema impossível, é representado no plano cartesiano por:
a) Uma reta. 
b) Duas retas iguais. 
c) Duas retas paralelas. 
d) Duas retas coincidentes. 
e) Duas retas concorrentes. 
AUTOATIVIDADE
1
1
1
REFERÊNCIAS
ANTON, H.; RORRES, C. Álgebra linear com aplicações. 8. ed. Porto Alegre: Bookman, 2001.
BOLDRINI, J. L. et al. Álgebra linear. 3. ed. São Paulo: Harbra, 1984.
JENSKE, G., PITZER, L. C.; SANTOS, L. G. Álgebra linear e vetorial. Indaial: Uniasselvi, 2016.
STEINBRUCH, A.; WINTERLE, P. Álgebra linear. 2. ed. São Paulo: Pearson Makron Books, 1987.
1
1
1
1. O algoritmo será:
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
print(‘Cálculo dos valores de x, y e z, distâncias entre cidades.’)
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
from sympy import symbols, Eq, solve 
x, y,z = symbols(‘x,y,z’) 
eq1 = Eq((x+y), 450) 
print(“Equação 1:”) 
print(eq1)
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
eq2 = Eq((z+y), 600) 
print(“Equação 2”) 
print(eq2) 
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
eq3 = Eq((z+x), 800) 
print(“Equação 3”) 
print(eq3) 
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
print(‘O valor de x, y e z são:’)
print(solve((eq1, eq2, eq3), (x, y, z))) 
print(‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)
Ao executar o algoritmo, teremos:
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Cálculo dos valores de x, y e z, distâncias entre cidades.
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Equação 1:
Eq(x + y, 450)
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Equação 2
Eq(y + z, 600)
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Equação 3
Eq(x + z, 800)
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
O valor de x, y e z são:
{x: 325, y: 125, z: 475}
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
GABARITO
1
1
8
2. O algoritmo será:
print(‘++++++++++++++++++++++++++’)
print(‘Aplicação da regra de Cramer em matrizes 2 x 2.’)
print(‘++++++++++++++++++++++++++’)
import numpy as np
a = int(input(‘Entre com o coeficiente de x para primeira equação: ‘))
b = int(input(‘Entre com o coeficiente de y para primeira equação: ‘))
c = int(input(‘Entre com o coeficiente de x para segunda equação: ‘))
d = int(input(‘Entre com o coeficiente de y para segunda equação: ‘))
matriz_A = np.array(
 [
 [a,b],[c,d]
 ]
)
print( matriz_A)
print(‘++++++++++++++++++++++++++’)
D = (a*d)-(b*c)
print(‘O valor da determinante D é:’, D)
print(‘++++++++++++++++++++++++++’)
e = int(input(‘Entre com o termo independente da primeira equação: ‘))
f = int(input(‘Entre com o termo independente da segunda equação: ‘))
matriz_Ax = np.array(
 [
 [e,b],[f,d]
 ]
)
print(‘A matriz Ax é: ‘)
print( matriz_Ax)
print(‘++++++++++++++++++++++++++’)
Dx = (e*d)-(b*f)
print(‘O valor da determinante Dx é:’, Dx)
print(‘++++++++++++++++++++++++++’)
matriz_Ay = np.array(
 [
 [a,e],[c,f]
 ]
)
print(‘A matriz Ay é: ‘)
print( matriz_Ay)
GABARITO
1
1
9
print(‘++++++++++++++++++++++++++’)
Dy = (a*f)-(c*e)
print(‘O valor da determinante Dy é:’, Dy)
print(‘++++++++++++++++++++++++++’)
if D != 0: 
 print(«Então é SPD»)
if D == 0 and Dx != 0: 
 print(«Então é SI»)
if D == 0 and Dx == 0: 
 print(«Então é SPI») 
print(‘++++++++++++++++++++++++++’)
3 Opção C.
Ao executar o algoritmo:
print(‘Cálculo do valor de x e de y no sistema linear.’)
from sympy import symbols, Eq, solve 
x, y = symbols(‘x,y’) 
eq1 = Eq((x+2*y), 5)
print(“Equação 1:”) 
print(eq1)
eq2 = Eq((2*x-3*y), -4) 
print(“Equação 2”) 
print(eq2) 
print(‘O valor de X e de Y será:’)
print(solve((eq1, eq2), (x, y))) 
Teremos:
Cálculo do valor de x e de y no sistema linear.
Equação 1:
Eq(x + 2*y, 5)
Equação 2
Eq(2*x - 3*y, -4) 
O valor de X e de Y será:
{x: 1, y: 2}
Logo, temos SPD.
4 Opção A. 
Na equação eq1 = a*2 + b*8, o a e o b representam quantidades e o 2 e o 8 representam 
valores monetários.
GABARITO
1
1
1
A multiplicação dos termos e o resultado final fornece o valor monetário total.
I. Os valores 2 e 8 representam os valores monetários: de uma caneta e de um caderno, 
respectivamente. Verdadeiro.
II. Os valores a e b representam os valores monetários: de uma caneta e de um caderno, 
respectivamente. Falso. Representa quantidades.
III. Os valores a*2 e b*8 representam valores não monetários: de uma caneta e de um caderno, 
respectivamente. Falso. Fornecerão o valor monetário total.
5 Opção C.
Um SI é representado por retas paralelas. 
Figura a seguir.
a
11
 x
1
 + a
12
 x
2
 = b
1
a
21
 x
1
 + a
22
 x
2
 = b
2
Não há soluçãoa
11
 x
1
 + a
12
 x
2
 = b
1
a
21
 x
1
 + a
22
 x
2
 = b
2
GABARITO
1
1
1
MINHAS METAS
INTRODUÇÃO À TEORIA DE GRAFOS
Compreender a teoria de grafos.
Compreender a aplicabilidade da teoria de grafos.
Aplicar a teoria de grafos na linguagem de programação Python.
Aplicar o networkx do Python na manipulação de grafos.
Aplicar a opção busca em grafos no uso de inteligência artificial.
T E M A D E A P R E N D I Z A G E M 9
1
1
1
INICIE SUA JORNADA
Vamos começar entendendo uma representação abstrata de um conjunto de 
objetos.
Vale lembrar que as empresas são entidades. As empresas têm relações entre 
si. Uma empresa pode ser ora cliente ora fornecedora.
Podemos representar essa concepção por meio de círculos, onde está uma 
empresa determinada, e de linhas ou arestas, que conectam essas empresas, ou 
seja, grafos, Figura 1. 
Agora, imagine uma situação-problema: você, como cliente final, quer saber 
todo o caminho que um produto fez para chegar até você.
Nesse caso, você poderia representar, por exemplo, essas relações entre as 
empresas por meio de círculos e de linhas orientadas, a fim de compreender o 
processo de produção e de transmissão. 
Empresa
A
Empresa
B
Empresa
C
Cliente
Figura 1 – Relações de empresas sendo representadas por círculos e linhas, um grafo / Fonte: o autor.
Descrição da Imagem: a figura apresenta um tipo de grafo, relacionado empresas e cliente. Nessa imagem, temos cír-
culos representando empresas e cliente e linhas que representam as relações entre estes objetos. Fim da descrição.
Entretanto, se você é o administrador principal de uma empresa em um com-
plexo número de empresas em rede, é mais produtivo ter o auxílio de uma 
ferramenta digital. 
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 9
Nesse contexto, você pode utilizar o networkx, que é um pacote da linguagem 
de programação Python, para a criação, a manipulação e o estudo da estrutura 
de redes complexas. 
Além da aplicação anterior, você pode utilizar a ideia de grafos em outros 
casos, como: em uma análise de redes sociais, em um estudo de redes econômicas 
e sociais e em uma compreensão da rede de passes de partida de futebol. Tudo 
isso usando o networkx do Python.
Neste podcast, você aprenderá sobre a introdução à teoria de grafos, a aplica-
ção da teoria de grafos na linguagem de programação Python, a aplicação do 
networkx do Python na manipulação de grafos e a aplicação da opção busca em 
grafos. Recursos de mídia disponíveis no conteúdo digital do ambiente virtual 
de aprendizagem.
PLAY NO CONHECIMENTO
VAMOS RECORDAR?
Antes de você iniciar o estudo sobre grafos, sugiroque você reveja a ideia de 
vértices e de diagonais de forma geométrica.
No algoritmo do GeoGebra (aplicativo de acesso livre), na seção material didático, 
tema Grafos completos, você pode revisar e se aprofundar no tema sobre vértices 
e diagonais. Realize testes com vários valores de n e observe a complexa rede 
que vai sendo criada Recursos de mídia disponíveis no conteúdo digital do 
ambiente virtual de aprendizagem 
Na próxima fase, será desenvolvido o tema 
Introdução à teoria de grafos: teoria de gra-
fos, aplicações, a aplicação da teoria de gra-
fos na linguagem de programação Python, 
a aplicação do networkx do Python na ma-
nipulação de grafos e a aplicação da opção 
busca em grafos.
1
1
4
DESENVOLVA SEU POTENCIAL
INTRODUÇÃO À TEORIA DE GRAFOS
A teoria de grafos fornece uma abstração simples e elegante 
para modelar os dados e seus relacionamentos. Formalmen-
te, um grafo ou rede consiste em um conjunto de vértices, 
os quais podem representar as ligações, e um conjunto de 
arestas, que servem para ligar dois vértices, representando 
um relacionamento entre dados. Por meio dessa abstração, 
é possível representar diversos fenômenos do mundo real.
Nos últimos anos, o tamanho dos grafos tem crescido 
exponencialmente, alavancado, principalmente, pelo fenô-
meno Big Data. Por exemplo, a rede social do Facebook, a 
qual pode ser representada por um grande grafo social, atin-
giu um tamanho de 3 bilhões de usuários em 2021. É fácil 
imaginar que esse grafo possui uma quantidade de arestas 
com, pelo menos, duas ordens de grandeza maiores que o 
número de vértices.
Podemos observar que a internet é um grande grafo, 
todo interconectado e que as páginas de buscas e as redes 
sociais têm contribuído muito para essa evolução da rede de 
computadores e da teoria de grafos.
Em estrutura de dados, a teoria dos grafos estuda as re-
lações entre os objetos de um determinado conjunto. Esse 
tipo de armazenamento permite fazer representações visuais 
e resolver problemas matemáticos.
UNIASSELVI
1
1
5
TEMA DE APRENDIZAGEM 9
TEORIA DE GRAFOS
A teoria de grafo consiste em estudar a relação entre os objetos de um determi-
nado conjunto empregando estruturas chamadas como grafos.
A aplicabilidade da teoria dos grafos é ampla, alcançando áreas, como Física, 
Química, Engenharias, Psicologia, Curso de Ciências e Engenharia da Computação.
Fundamentos da teoria dos grafos para computação 
Organizador: Maria do Carmo Nicoletti e Estevam R. Hruschka 
Júnior
Editora: LTC
Ano: 2017
Sobre o livro: a Teoria dos Grafos (TG) é um ramo recente na 
história da matemática, pois suas origens remontam ao século 
XVIII. Largamente utilizada na matemática aplicada e na ciência 
da computação, a TG tem se mostrado uma importante ferra-
menta para a modelagem de uma variedade de situações reais 
em diferentes áreas de conhecimento, tais como as Engenha-
rias, Física, Química, Linguística, Pesquisa Operacional e Inteli-
gência Artificial. O conteúdo deste livro pode ser usado como 
texto básico para disciplinas introdutórias a TG, como material 
que promove a revisão da modelagem baseada em grafos a 
vários problemas.
INDICAÇÃO DE LIVRO
Conceituação formal: um grafo é um par (V, A), em que V é um conjunto arbitrário e 
A é um subconjunto de V. Os elementos de V são chamados vértices e os de A são 
chamados arestas.
Esta definição se aplica a Euler, matemático suíço que possui uma representação 
do seu teorema contendo os elementos vértices e arestas. Vértices são os pontos 
representados por Euler como terra e as arestas são as ligações entre os pontos. 
Podemos dizer que, para montar um grafo, devemos ter dois conjuntos: Vértices 
(V) e Arestas (E do inglês edge).
1
1
1
Você pode observar um exemplo de grafo na Figura 2.
B
C
DA
Figura 2 – Grafos com vértices e arestas / Fonte: Lessa Junior e Lessa (2021, p. 116).
Descrição da Imagem: a figura apresenta o Grafo de Euler para o problema da cidade de Königsberg. Os pontos A, 
B, C e D representando as terras e as ligações (linhas), entre elas, as pontes, formando uma estrutura que lembra 
um losango. O ponto A está à esquerda, na parte superior está o ponto B, na parte inferior está o ponto C e à 
direita está o ponto D. As arestas são: A e B, B e A, A e C, C e A, D e A, D e B, C e D. Fim da descrição.
A representação do conjunto de aresta é feita em pares e pode ser orientada ou 
não. Orientado quando o sentido é definido, portanto, a aresta (A, B) é diferente 
de (B, A). Por esse motivo, na imagem, as setas representam a direção de cada 
aresta definida no conjunto.
Graus de um vértice são definidos pelo número de arestas que se liga a um 
vértice. No caso do exemplo anterior, o grau do vértice B é três, porque tem três 
arestas ligadas a ele. 
Outro exemplo de aplicação seria o problema das quatro cores, ou seja, quatro 
cores são suficientes para colorir qualquer mapa no plano com a condição de que 
regiões adjacentes não sejam coloridas com a mesma cor.
UNIASSELVI
1
1
1
TEMA DE APRENDIZAGEM 9
Quando o grafo é orientado, pode receber uma classificação adicional como:
Para um melhor entendimento do problema das quatro cores, sugiro a leitura do 
artigo O teorema das quatro cores. Recursos de mídia disponíveis no conteúdo 
digital do ambiente virtual de aprendizagem 
EU INDICO
VOCÊ SABE RESPONDER?
Qual o grau do vértice A?
GRAU DE EMISSÃO
Arestas que saem do vértice, por exemplo, o vértice D possui um grau de emissão, 
Figura 2.
GRAU DE RECEPÇÃO 
Arestas que chegam no vértice, por exemplo, o vértice D possui dois graus de recep-
ção, Figura 2.
Existem alguns cenários em que o grafo possui vértices que estão desconectados 
de outros vértices e, por isso, é possível classificar o grafo que contém todos os 
vértices conectados entre vértices como conexo e o que não possui um ou mais 
vértices conectados como desconexo, Figura 3.
1
1
8
a
b
c
d
a
b
c
d
e
f
Grafo Conexo Grafo Desconexo
Figura 3 – Grafos conexos e desconexos / Fonte: Lessa Junior e Lessa (2021, p. 117).
Descrição da Imagem: a imagem à esquerda é um grafo conexo, em que todos os vértices estão conectados, no 
qual temos uma figura quadrilátera. Temos: o primeiro vértice superior A; abaixo B; em diagonal de B, temos o 
vértice D; acima do vértice D, temos o vértice C. As arestas são formadas por A e B, B e D, D e C, C e A. A imagem 
à direita representa um grafo desconexo, no qual existem dois grupos de grafos distintos que não se conectam. 
Primeiro, temos uma figura quadrilátera com vértice superior A; abaixo B; em diagonal de B, temos o vértice D; 
acima do vértice D, temos o vértice C. As arestas são formadas por A e B, B e D, D e C, C e A. A segunda à direita 
do grafo quadrilátero, temos uma única ligação formada por dois vértices alinhados na vertical. O vértice superior 
é o E; abaixo o vértice F; e a aresta é formada por E e F. Fim da descrição.
Você pode também realizar uma revisão dos conceitos anteriores por meio de 
exercícios no algoritmo do GeoGebra (aplicativo de acesso livre), na seção material 
didático, tema Grafos K-regular. Realize testes com vários valores de n e observe 
o número de vértices e de arestas 
Recursos de mídia disponíveis no conteúdo digital do ambiente virtual de 
aprendizagem 
EU INDICO
UNIASSELVI
1
1
9
TEMA DE APRENDIZAGEM 9
APLICAÇÕES DA TEORIA DE GRAFOS
Como já foi mencionado, a aplicabilidade dos grafos na resolução de problemas 
atinge diversas áreas de conhecimento. Entrando no detalhe da computação, po-
demos utilizar grafos para criar sistemas complexos de localização como soluções 
mais simples, por exemplo, a navegabilidade de um portal web.
Muitas empresas investem massivamente em usabilidade para as suas aplica-
ções web de forma que fiquem mais atrativas e menos cansativas para os usuários.
Uma ferramenta que é utilizada para melhorar a navegabilidade dessas solu-
ções é o sitemap, que consiste em mapear todas as páginas e suas ligações, a fim 
de encontraro uso excessivo de cliques, Figura 4.
Figura 4 – Sitemap / Fonte: Lessa Junior e Lessa (2021, p. 118).
Descrição da Imagem: a imagem apresenta um sitemap que representa as páginas de um site e suas ligações. 
A aplicabilidade de grafo consiste em encontrar o menor caminho para um usuário que está na home e alcançar 
uma determinada página. Fim da descrição.
Nesse exemplo, podemos considerar que os vértices serão as páginas e as arestas 
o link entre elas. Por meio de grafos, podemos encontrar se existem páginas 
desconexas, páginas que precisam navegar por várias páginas antes de chegar ao 
destino. Parece muito simples? Pense quanto um grande e-commerce perde de 
vendas se a ação de compras necessitar de vários cliques.
1
4
1
Outro cenário que possui aplicabilidade muito relevante é em análise e simula-
ções de workflows e fluxos em bpms, Figura 5.
Um e-commerce é um comércio eletrônico. São negócios que estruturam seu 
processo de compra e venda na Internet.
PENSANDO JUNTOS
Figura 5 – Modelagem de um processo / Fonte: Lessa Junior e Lessa (2021, p. 119).
Descrição da Imagem: a imagem apresenta a aplicação do grafo, que é possível aplicar o caminho mais curto para 
finalizar o processo. A imagem tem referência sobre a automação de processo. Fim da descrição.
Simular um fluxo de trabalho resulta em análise mais precisa para aumentar a 
produtividade de uma empresa. Tarefas que normalmente são realizadas por 
meio da tentativa e erro ou, ainda, cálculos por meio de planilhas eletrônicas.
A cada cenário é construído os cálculos e valores. Uma vez que os caminhos 
se alternam, podem gerar erros na medida que existam mais cenários. Esses erros 
podem ser minimizados utilizando grafos como solução.
UNIASSELVI
1
4
1
TEMA DE APRENDIZAGEM 9
Outras soluções mais clássicas, como no ramo de logística de entrega, um diferen-
cial que muitas empresas têm adotado é uma entrega cada vez mais rápida. Para 
isso, investem muito em soluções que possam melhorar o tempo com menor custo 
de deslocamento. Aplicativos de GPS que, além de montar a rota, levam em con-
sideração a distância e o tempo para sair da origem e chegar ao destino planejado.
Caso você tenha interesse em se aprofundar no assunto de grafos e computação, 
sugiro a leitura do material Grafos, teoria, modelos e algoritmos, de Paulo Oswaldo 
Boaventura Netto. Recomendo ler principalmente o Capítulo 2, Principais noções. 
Disponível no Google Acadêmico. Recursos de mídia disponíveis no conteúdo 
digital do ambiente virtual de aprendizagem 
EU INDICO
VOCÊ SABE RESPONDER?
Você sabe explicar o termo simulações de workflows?
A fim de finalizar este tema, na aplicação da área de computação, falaremos sobre 
representação de grafos em sistemas.
1
4
1
A forma de representar um grafo em sistemas computacionais pode ocorrer 
da forma que melhor você entender. Parece bem genérico, mas lembre-se de que, 
tudo que criamos existem infinitas formas de ser representadas e isso não é tão 
importante, mas sim o conceito. 
Uma casa não é, necessariamente, quatro paredes com um teto, uma casa 
pode ser criada com outros formatos, mantendo o conceito de uma casa. 
Com um grafo não é diferente, podemos representá-lo de inúmeras formas, 
mas precisamos manter o conceito dos vértices e arestas para que se caracterize 
como grafo. O comum é um conjunto de nós ligados, Figura 6.
Figura 6 – Grafo não direcionado / Fonte: Lessa Junior e Lessa (2021, p. 120).
Descrição da Imagem: a imagem representa um grafo não direcionado em diagrama de nós e em lista, em que 
o nó A está conectado em C e B; nó B conectado em A e D; nó C conectado em A e D; nó D conectado em C e B. 
À direita do grafo, há uma tabela definindo o vértice e suas ligações. A primeira coluna é o Vértice descrito com 
o cabeçalho Nó; a segunda coluna são as Arestas com o cabeçalho Conectado a. São elas: A - C, B; B - A, D; C - A, 
D; D - C, D. Fim da descrição.
Nesse exemplo, há uma representação tanto em diagrama de nós quanto em uma 
lista, ambos são compreensíveis e mantêm o conceito inicial de grafo. 
O ponto-chave é manter o conceito em que um vértice precisa estar conectado a 
outro por meio de arestas.
PENSANDO JUNTOS
UNIASSELVI
1
4
1
TEMA DE APRENDIZAGEM 9
Outra forma clássica de representar um grafo é por meio de matrizes, no qual 
podemos representar uma matriz n x n. Entende-se uma matriz adjacente na 
seguinte representação da Figura 7.
Na matriz adjacente que representa um grafo, o valor da célula que possui zero 
significa que não possui aresta. O valor que contém o valor 1 representa uma 
reta de ligação entre os vértices. A representação gráfica da matriz com os nós 
seria como na Figura 8.
Figura 7 – Matriz adjacente / Fonte: Lessa Junior e Lessa (2021, p. 121).
Descrição da Imagem: a imagem é uma representação de uma matriz no qual os vértices de saída estão nas 
linhas e os vértices de destino nas colunas. As arestas são os valores 1 na matriz. As ligações são: A e B, A e C, A 
e D, B e A, B e C. B e D, B e E, C e A, C e B, D e A, D e B, D e E, E e B, E e D. Fim da descrição.
1
4
4
Um adjacente apenas simbolizando se existe 
(um) ou não existe (zero) pode ser chama-
da uma matriz de byte ou matriz de dados 
binários. 
Outra representação é se há a necessidade 
de valores absolutos. Entenda que nesta re-
presentação os valores podem influenciar 
no problema, por exemplo, a distância. 
Nesses casos, devemos informar realmente 
os valores que ocorrem na matriz, Figura 9.
d
a
b
c
e
Figura 8 – Representação em nós de grafo em relação à matriz adjacente / Fonte: Lessa Junior e Lessa 
(2021, p. 121).
Descrição da Imagem: a imagem é um grafo que mostra a relação de nós e a matriz adjacente, em que o vértice à 
esquerda é o A, e está ligado em B, C e D; à direita está o vértice B e está ligado em A, C, D, E; abaixo está o vértice 
C, e está ligado em A, B; acima do vértice A está o vértice D, ligado em A, B, E; e à direita está o vértice E, ligado 
em B, D. Fim da descrição.
UNIASSELVI
1
4
5
TEMA DE APRENDIZAGEM 9
A matriz adjacente pode representar adequadamente um grafo, mas quando se 
trata de valores absolutos, é importante ter o cuidado de informar se o valor zero 
representa um valor ou a falta da aresta. 
29
44
40 79
90
28
55
a
a
b
b
c
c
d
d
e
e
0
79
40
28
0
79
0
29
90
44
40
29
0
0
0
48
90
0
0
55
0
44
0
55
0
c
b e
d
a
Figura 9 – Matriz adjacente com valores absolutos / Fonte: Lessa Junior e Lessa (2021, p. 122).
Descrição da Imagem: a figura é uma representação do grafo sendo criado com a matriz adjacente com valores 
absolutos. A figura lembra um pentágono invertido, o primeiro vértice superior à esquerda é o C; à direita e no 
centro o vértice B; à direita o vértice E; abaixo o vértice D; e à direita o vértice A. As arestas com seus valores são 
(C, B, 29), (B, C, 79), (B, D, 90), (B, E, 44), (E, D, 55), (D, A, 28) e (A, C, 40). Fim da descrição.
Quando tratamos de valores absolutos, a referência faz a diferença de como inter-
pretar os dados que estão sendo coletados. Zero pode representar um valor válido 
dependendo da referência do problema a ser resolvido.
PENSANDO JUNTOS
1
4
1
APLICAÇÕES DA TEORIA DE GRAFOS NA LINGUAGEM DE 
PROGRAMAÇÃO PYTHON
Neste tema, não elaboraremos diretamente um algoritmo na linguagem de pro-
gramação Python, mas entenderemos os fundamentos para elaboração de um 
algoritmo sobre grafos.
Para a realização das próximas atividades, sugiro que além da plataforma Visual 
Studio Code, que temos utilizado, que você faça uso principalmente da platafor-
ma PyCharm 
Você pode, além das duas plataformas anteriores, optar pela plataforma Anacon-
da. É interessante que você teste seus algoritmos nessas plataformas e veja qual é 
mais adequada ao seu trabalho diário. Recursos de mídia disponíveis no conteú-
do digital do ambiente virtual de aprendizagem 
EU INDICO
Vamos aprender como implementar uma estrutura de dados em grafo em Python. 
Veremosduas formas de representar a estrutura: representação explícita, no qual 
nomeamos os vértices no grafo, e representação implícita, cujo identificador é 
um número inteiro associado automaticamente e faz a referência ao vértice.
Primeiramente, vamos aprender como montar o grafo. Assumiremos que será 
fornecida a lista de vértices com as suas devidas ligações. A partir disso, passamos 
a conectar os vértices e as arestas. Vamos trabalhar com a seguinte lista de arestas:
 ■ A B.
 ■ B D.
 ■ B C.
 ■ C E.
 ■ C B.
 ■ D A.
 ■ E B.
Para criar esse grafo em Python, é bem simples, basta criar as arestas para os 
vértices. Por exemplo, temos que dizer que possui uma aresta que vai de A para B. 
Neste exemplo, vamos usar um dicionário de lista em uma representação 
UNIASSELVI
1
4
1
TEMA DE APRENDIZAGEM 9
explícita, em que a chave é o vértice e os valores são a lista. Veja o código a seguir 
que mostra como montamos esse grafo e, em seguida, vamos detalhá-lo:
1 grafoexplicito = {“A” : [“B”],
2 “B” : [“C”, “D”],
3 “C” : [“B”, “E”],
4 “D” : [“A”],
5 “E” : [“B”]}
 ■ Linha 1: Cria a aresta do vértice A para o vértice B.
 ■ Linha 2: Cria a aresta do vértice B para o vértice C e D.
 ■ Linha 3: Cria a aresta do vértice C para o vértice B e E.
 ■ Linha 4: Cria a aresta do vértice D para o vértice A.
 ■ Linha 5: Cria a aresta do vértice E para o vértice B.
Veja a representação visual de como ficou esse grafo na Figura 10.
E
C
B
A
D
Figura 10 – Representação do grafo explícito criado em Python / Fonte: Lessa Junior e Lessa (2021, p. 124).
1
4
8
Uma vez montado o grafo, é necessário executar operações básicas que serão 
utilizadas durante a manipulação:
 ■ Listar os vértices.
 ■ Recuperar a lista de arestas.
 ■ Verificar a existência de uma aresta.
 ■ Adicionar uma aresta.
 ■ Obter tamanho do grafo.
 ■ Adicionar aresta entre dois vértices.
Veja o código de como criar cada uma dessas operações. Vamos usar a col-
lections defaultdict para manipular o grafo e, logo em seguida, detalharemos 
essas linhas de códigos:
1from collections import defaultdict
2
3class grafo(object):
4 def __init__(self, aresta, direcionado=False):
5 self.adj = defaultdict(set)
6 self.direcionado = direcionado
7 self.adiciona_aresta(aresta)
8
9 def get_vertice(self):
10 return list(self.adj.keys())
11
12 def get_aresta(self):
13 return [(k, v) for k in self.adj.keys() for v in self.adj[k]]
14
15 def adiciona_aresta(self, aresta):
16 for u, v in aresta:
17 self.adiciona_ligacao(u, v)
Descrição da Imagem: a figura é uma representação do grafo em diagrama de vértice, em que, à direta superior 
está o vértice E; abaixo o vértice C; no centro o vértice B; à direita superior o vértice A; e abaixo o vértice D. A 
arestas são formadas por (E, C), (E, B), (C, B), (B, A), (B, D) e (A, D). Fim da descrição.
UNIASSELVI
1
4
9
TEMA DE APRENDIZAGEM 9
18
19 def adiciona_ligacao(self, u, v):
20 self.adj[u].add(v)
21 if not self.direcionado:
22 self.adj[v].add(u)
23
24 def existe_aresta(self, u, v):
25 return u in self.adj and v in self.adj[u]
26
27 def __len__(self):
28 return len(self.adj)
29
30 def __str__(self):
31 return ‘{}({})’.format(self.__class__.__name__, dict(self.adj))
32
33 def __getitem__(self, v):
34 return self.adj[v]
 ■ Linha 3 a 7: inicializa a estrutura do grafo, passando com parâmetro se 
será direcionado ou não direcionado.
 ■ Linha 9 e 10: recupera a lista de vértices.
 ■ Linha 12 e 13: recupera a lista de arestas.
 ■ Linha 15 a 17: adiciona arestas de acordo com parâmetro.
 ■ Linha 19 a 22: adiciona uma ligação entre os vértices recebidos com pa-
râmetros (u e v).
 ■ Linha 24 e 25: verifica se possui uma aresta entre os parâmetros u e v.
 ■ Linha 27 e 28: obtém o tamanho do grafo.
 ■ Linha 30 e 31: formata a impressão do grafo de forma legível.
 ■ Linha 33 e 34: obter a lista adjacências do vértice.
Agora, com esses métodos criados, podemos criar um grafo e utilizar as opera-
ções criadas nesta classe. Por exemplo, seguido da explicação desse conteúdo:
1
5
1
1 from Grafo import grafo
2
3 aresta = [(‘A’, ‘B’), (‘B’, ‘C’), (‘C’, ‘B’), (‘D’, ‘A’), (‘E’, ‘B’)]
4
5 criagrafo = grafo(aresta, direcionado=True)
6 print(criagrafo.adj)
7
8 print(criagrafo.get_vertice())
9
10 print(criagrafo.get_aresta())
11
12 print(criagrafo.existe_aresta(‘A’,’B’))
13
14 print(criagrafo.existe_aresta(‘E’,’C’))
 ■ Linha1: importa a classe criada anteriormente.
 ■ Linha 3: cria as arestas.
 ■ Linha 5: inicializa o grafo direcionado com as arestas definidas na linha 3.
 ■ Linha 6: imprime o grafo em forma de texto: defaultdict(<class ‘set’>, {‘A’:
 ■ {‘B’}, ‘B’: {‘C’}, ‘C’: {‘B’}, ‘D’: {‘A’}, ‘E’: {‘B’}}).
 ■ Linha 8: imprime os vértices do grafo em texto: [‘A’, ‘B’, ‘C’, ‘D’, ‘E’].
 ■ Linha 10: imprime as arestas do grafo em texto: [(‘A’, ‘B’), (‘B’, ‘C’), (‘C’, 
‘B’),(‘D’, ‘A’), (‘E’, ‘B’)].
 ■ Linha 12: imprime em verdadeiro ou falso se existe uma aresta entre A e
 ■ B, resultado true.
 ■ Linha 14: imprime em verdadeiro ou falso se existe uma aresta entre E e 
C, resultado falso.
Dessa forma, podemos utilizar a classe grafo de forma genérica para criação 
e manipulação de qualquer grafo que deseja ser criado. 
Também podemos criar os grafos com representação implícitas, como men-
cionado anteriormente. Nesse caso, os vértices vão receber, automaticamente, um 
identificador inteiro. No caso anterior, adicionamos os nomes de forma manual. 
Por exemplo, seguido da explicação dessas linhas:
UNIASSELVI
1
5
1
TEMA DE APRENDIZAGEM 9
 ■ 1 grafoimplicito = [ [1],
 ■ 2 [2, 3],
 ■ 3 [1, 4],
 ■ 4 [0],
 ■ 5 [1]]
 ■ Linha 1: vértice 1 ligado ao vértice 0.
 ■ Linha 2: vértice 2 e 3 ligados ao vértice 1.
 ■ Linha 3: vértice 1 e 4 ligados ao vértice 2.
 ■ Linha 4: vértice 0 ligado ao vértice 3.
 ■ Linha 5: vértice 1 ligado ao vértice 4.
Veja a representação visual de como ficou esse grafo na Figura 11.
1
2
4
3
0
Figura 11 – Representação do grafo implícito criado em Python / Fonte: Lessa Junior e Lessa (2021, p. 128).
Descrição da Imagem: a figura é uma representação do grafo em diagrama de nós, em que o nó 0 está ligado em 
1,3; nó 1 ligado em 0,2,3,4; nó 2 ligado em 4,1; nó 3 está ligado em 0,1; e nó 4 está ligado em 2,1. Fim da descrição.
1
5
1
APLICAÇÃO DO NETWORKX DO PYTHON NA MANIPULAÇÃO 
DE GRAFOS
Quando trabalhamos com linguagens de alto nível, normalmente elas possuem 
bibliotecas que resolvem problemas clássicos, como listas, buscas, gráficos e grafos. 
O Python possui biblioteca que auxilia na criação, representação e solução 
dos grafos para auxiliar e facilitar o entendimento da construção de soluções. 
Uma das bibliotecas é a networkx, que cria e mantém um grafo, além de possi-
bilitar a criação de um gráfico de nós para o entendimento visual.
Não esqueça de instalar inicialmente, no seu computador, a biblioteca net-
workx no terminal ou cmd com o comado pip install networkx. Se você for 
utilizar o anaconda, use conda install networkx.
Vamos começar a criar algoritmos para gerar grafos no python por meio da 
biblioteca networkx. Você deve começar com:
import networkx as nx
G = nx.Graph()
No exemplo anterior, o vértice 0 representa o A; 1 o B; 2 o C; 3 o D; e 4 o E. Eles 
foram adicionados e referenciados de forma implícita, ou seja, não precisamos 
nomeá-los.
PENSANDO JUNTOS
Além da biblioteca collections, contendo defaultdict, você pode utilizar as bi-
bliotecas: python-igraph, instalação feita no terminal ou cmd com o comando pip 
install python-igraph e pip install pycairo, e o graph lib, instalação feita no terminal 
ou cmd com o comando pip install graphlib.
Se você for utilizar a plataforma anaconda, no caso do python-igraph, a instalação 
é feita no terminal da anaconda com o comando conda install -c vtraag python-i-
graph e conda install -c anaconda cairo.
Dentro do contexto de grafos no Python, a melhor opção é a biblioteca networkx.
APROFUNDANDO
UNIASSELVI
1
5
1
TEMA DE APRENDIZAGEM 9
Inicialmente, construiremos um grafo de três vértices e duas arestas. Afunção 
add_node gera vértices e a função add_edge gera arestas.
print(‘+++++++++++++++++++++++++++++++++++++++++’)
import networkx as nx
G = nx.Graph()
G.add_node(1)
G.add_node(2)
G.add_node(3)
print(G.nodes())
print(‘+++++++++++++++++++++++++++++++++++++++++’)
G.add_edge(1, 2)
G.add_edge(2, 3)
n_v = G.number_of_nodes()
n_a = G.number_of_edges()
print(‘Número de vértices: ‘, n_v, ‘Número de arestas: ‘, n_a)
print(‘+++++++++++++++++++++++++++++++++++++++++’)
Ao executar o algoritmo, teremos:
+++++++++++++++++++++++++++++++++++++++++
[1, 2, 3]
+++++++++++++++++++++++++++++++++++++++++
Número de vértices: 3 Número de arestas: 2
+++++++++++++++++++++++++++++++++++++++++
Agora, construiremos um grafo no formato de um quadrilátero com uma 
diagonal.
1 import networkx as bibliotecaNetworkx
2
3 grafo = bibliotecaNetworkx.Graph()
4 
5 grafo.add_node(“a”)
6 grafo.add_node(“b”)
7 grafo.add_node(“c”)
1
5
4
8 grafo.add_node(“d”)
9
10
11 grafo.add_edge(“a”,”b”)
12 grafo.add_edge(“a”,”c”)
13 grafo.add_edge(“b”,”d”)
14 grafo.add_edge(“c”,”d”)
15 grafo.add_edge(“c”,”b”)
16
17 numeroVertices = grafo.number_of_nodes()
18 numeroArestas = grafo.number_of_edges()
19 print(“Visualizando as ligações de um vértice”, grafo.adj[“a”])
20 print(“Quantidade de arestas por vértice”, grafo.degree)
21 print(“Quantidade de vértices”, numeroVertices)
22 print(“Quantidade de arestas”, numeroArestas)
23 print(“Vértices do grafo”, grafo.nodes())
24 print(“Arestas do grafo”, grafo.edges())
Ao executar o algoritmo, teremos:
Visualizando as ligações de um vértice {‘b’: {}, ‘c’: {}}
Quantidade de arestas por vértice [(‘a’, 2), (‘b’, 3), (‘c’, 3), (‘d’, 2)]
Quantidade de vértices 4
Quantidade de arestas 5
Vértices do grafo [‘a’, ‘b’, ‘c’, ‘d’]
Arestas do grafo [(‘a’, ‘b’), (‘a’, ‘c’), (‘b’, ‘d’), (‘b’, ‘c’), (‘c’, ‘d’)]
Perceba que, no código, importamos a biblioteca para conseguirmos utilizar 
as funcionalidades de gerenciamento do grafo. Vamos detalhar o código:
 ■ Linha 1: importa a biblioteca network para a definição bibliotecaNet-
workx.
 ■ Linha 3: instala o objeto como um grafo para utilizar os seus métodos.
 ■ Linha 5 a 8: adiciona os vértices ‘a’ até ‘d’. Veja que se utiliza-se “node”
 ■ (nó) para representar os vértices.
 ■ Linha 11 a 15: adiciona as arestas para que cada ligação seja formada.
UNIASSELVI
1
5
5
TEMA DE APRENDIZAGEM 9
 ■ Linha 17 a 18: recupera a quantidade de vértices e arestas, respectiva-
mente.
 ■ Linha 19: imprime os vértices ligados ao vértice informado, caso não seja 
informado (grafo.adj), será impresso os vértices com seus respectivos 
dados.
 ■ Linha 20: imprime a quantidade de arestas por vértices - [(‘a’, 2), (‘b’, 3),
 ■ (‘c’, 3), (‘d’, 2)].
 ■ Linha 21 a 22: imprime a quantidade de vértices e arestas existentes no 
grafo.
 ■ Linha 23 a 24: imprime os vértices e as arestas do grafo.
A biblioteca network possui funcionalidades completas para criar grafos, vértices, 
arestas e ainda podemos remover cada um dos elementos, acessar diretamente 
e exibir um elemento gráfico. 
Não esqueça de instalar inicialmente, no seu computador, a biblioteca ma-
tplotlib no terminal ou cmd com o comado pip install matplotlib. 
Por exemplo:
1
5
1
1 import matplotlib.pylab as grafico
2 import networkx as bibliotecaNetworkx
3
4 grafo = bibliotecaNetworkx.Graph()
5
6
7 grafo.add_node(“a”)
8 grafo.add_node(“b”)
9 grafo.add_node(“c”)
10 grafo.add_node(“d”)
11 grafo.add_node(“e”)
12 grafo.add_node(“f ”)
13
14 grafo.add_edge(“a”,”b”)
15 grafo.add_edge(“b”,”c”)
16 grafo.add_edge(“c”,”d”)
17 grafo.add_edge(“d”,”e”)
18 grafo.add_edge(“e”,”f ”)
19 grafo.add_edge(“f ”,”a”)
20
21 posicionamento = bibliotecaNetworkx.circular_layout(grafo)
22 bibliotecaNetworkx.draw_networkx_edge_labels(grafo,posicionamento,
23 edge_labels={(‘a’,’b’):’aresta a-b’,
24 (‘b’,’c’):’aresta b-c’, 
25 (‘c’,’d’):’aresta c-d’, 
26 (‘d’,’e’):’aresta d-e’, 
27 (‘e’,’f ’):’aresta e-f ’, 
28 (‘f ’,’a’):’aresta f-a’
29 }, 
30 font_color=’green’)
31 bibliotecaNetworkx.draw(grafo,with_labels=True,
32 pos=posicionamento,
33 node_color=’red’,
34 edge_color=’blue’)
35 grafico.show()
UNIASSELVI
1
5
1
TEMA DE APRENDIZAGEM 9
Nesse exemplo, além de acrescentar os vértices e arestas, são utilizadas proprieda-
des gráficas, como cor, layout e descrição das ligações. Todas essas propriedades 
podem ser utilizadas para melhor customizar ou, caso não sejam informadas, 
serão criadas aleatoriamente pela biblioteca, com a exceção da descrição.
 ■ Linha 1: importação da biblioteca que irá gerar o desenho.
 ■ Linha 2 a 19: idêntico ao exemplo anterior, que realiza a importação da 
biblioteca, cria o objeto grafo, adiciona os vértices e as arestas.
 ■ Linha 21: definido o layout que o grafo terá, é importante que esta defi-
nição seja após a inclusão dos vértices e arestas para que o layout possa 
ser calculado.
 ■ Linha 22 a 30: definido as informações que serão exibidas em cada linha 
do grafo, assim como a cor do texto. Esta configuração é opcional para 
quando existir a necessidade de exibir algum dado.
 ■ Linha 31 a 34: desenho do grafo para inclusão do layout, exibição dos 
valores em cada label e cores dos vértices e arestas.
 ■ Linha 35: exibe o grafo como imagem, quando usado em uma IDE, como 
Pycharm ou Júpiter, a imagem é exibida automaticamente.
Existem cenários em que esta característica é crucial para a resolução correta. 
Para criar o grafo com essa característica, precisa-se instanciar o objeto DiGraph 
que, utilizando o exemplo anterior, substituirá a linha 4: grafo = bibliotecaNet-
workx.DiGraph(). O resultado do grafo fica conforme a Figura 12.
c b
d a
e f
aresta b-c
aresta e-f
ar
es
ta
 f-
a
ar
es
ta
 c-
d
aresta d-e
aresta a-b
Figura 12 – Grafo com aresta direcionado no PyCharm / Fonte: Lessa Junior e Lessa (2021, p. 132).
1
5
8
APLICAÇÃO DA OPÇÃO BUSCA EM GRAFOS
Muitos problemas podem ser resolvidos por meio de grafos, nos quais a solução 
para o problema requer que realizemos uma busca pelo grafo. 
De uma forma simplificada, a busca em grafo sempre começa por um vértice 
qualquer e navegamos no grafo de formas diferentes, dependendo do tipo de busca. 
Por exemplo, para alguns tipos de problemas, a solução reside no caminho 
percorrido e não em um nó-alvo específico. 
Descrição da Imagem: a figura representa o grafo com arestas direcionadas quando instanciando o DiGraph e 
utilizando o PyCharm, no qual as arestas fazem as ligações em uma única direção, representadas pelas setas. A 
figura representa um hexágono com os vértices iniciando no centro à esquerda D; abaixo E; à direita F; centro 
superior A; superior B, esquerda C. As arestas com seus respectivos labels são: (D, E, aresta d-e), (E, F, aresta e-f), 
(F, A, aresta f-a), (A, B, aresta a-b), (B, C, aresta b-c), (C, D, aresta c-d). Fim da descrição.
Atualmente, com o uso massivo da internet, as fraudes têm aumentado significati-
vamente nas transações eletrônicas. 
As instituições financeiras têm apostado na teoria de grafos para auxiliar nesse 
combate às fraudes relacionadas ao sistema financeiro e transações on-line, es-
truturando um relacionamento entre pessoas e empresas, como relações societá-
rias, parentescos, endereços, dentre outros e utilizando os algoritmos específicos 
para resolver o problema, por exemplo, o caminho com menor custo.
PENSANDO JUNTOS
UNIASSELVI
1
5
9
TEMA DE APRENDIZAGEM 9
O primeiro passo é armazenar os dados em formato de grafo e seus relaciona-
mentos, porém, após os dados estarem estruturados, é necessário realizar uma 
busca nos relacionamentos. 
Existem diversos algoritmos que podem ser utilizados ou adaptados para 
solucionar um problema específico, como o caminho mais curto entre o ponto 
A e B ou, ainda, o relacionamento entre duas pessoas, a fim de detectar fraudes 
em uma transação financeira.
O uso de grafos e os tipos de buscas são comuns no uso de inteligência arti-
ficial e machine learning, principalmente para análises preditivas e prescritivas.
O uso desse tipo de

Mais conteúdos dessa disciplina