Buscar

E-book_Métodos Computacionais (Versão Digital)

Prévia do material em texto

G
RU
PO
 SER ED
U
CACIO
N
AL
M
étodos Com
putacionais
MÉTODOS
COMPUTACIONAIS
Organizador: ALFREDO JOÃO DOS SANTOS NETO
Autores: RAFAELA RODRIGUES OLIVEIRA AMARO
ARIEL DA SILVA DIAS
Capa para impressão_2022 1,3Capa para impressão_2022 1,3 27/07/2022 09:25:5327/07/2022 09:25:53
MÉTODOS
COMPUTACIONAIS
Autores: RAFAELA RODRIGUES OLIVEIRA AMARO; 
ARIEL DA SILVA DIAS.
Organizador: ALFREDO JOÃO DOS SANTOS NETO 
Métodos
Computacionais
© by Ser Educacional
Todos os direitos reservados. Nenhuma parte desta publicação poderá ser 
reproduzida ou transmitida de qualquer modo ou por qualquer outro meio, 
eletrônico ou mecânico, incluindo fotocópia, gravação ou qualquer outro 
tipo de sistema de armazenamento e transmissão de informação, sem prévia 
autorização, por escrito, do Grupo Ser Educacional.
Diretor de EAD: Enzo Moreira
Gerente de design instrucional: Paulo Kazuo Kato.
Coordenadora de projetos EAD: Jennifer dos Santos Sousa.
Equipe de Designers Instrucionais: Gabriela Falcão; José Carlos Mello; Lara 
Salviano; Leide Rubia; Márcia Gouveia; Mariana Fernandes; Mônica Oliveira 
e Talita Bruto. 
Equipe de Revisores: Camila Taís da Silva; Isis de Paula Oliveira; José Felipe 
Soares; Nomager Fabiolo Nunes.
Equipe de Designers gráficos: Bruna Helena Ferreira; Danielle Almeida; 
Jonas Fragoso; Lucas Amaral, Sabrina Guimarães, Sérgio Ramos e Rafael 
Carvalho. 
Ilustrador: João Henrique Martins. 
Neto, Alfredo João dos Santos; Amaro, Rafaela Rodrigues Oliveira; Dias, 
Ariel da Silva.
Recife: Editora Digital Pages e Grupo Ser Educacional - 2022.
185 p.: pdf
ISBN: 978-65-81507-39-8
1. Computadores 2. Redes 3. Programação.
Grupo Ser Educacional
Rua Treze de Maio, 254 - Santo Amaro
CEP: 50100-160, Recife - PE
PABX: (81) 3413-4611
E-mail: sereducacional@sereducacional.com
Iconografia
Estes ícones irão aparecer ao longo de sua leitura:
ACESSE
Links que 
complementam o 
contéudo.
OBJETIVO
Descrição do conteúdo 
abordado.
IMPORTANTE
Informações importantes 
que merecem atenção.
OBSERVAÇÃO
Nota sobre uma 
informação.
PALAVRAS DO 
PROFESSOR/AUTOR
Nota pessoal e particular 
do autor.
PODCAST
Recomendação de 
podcasts.
REFLITA
Convite a reflexão sobre 
um determinado texto.
RESUMINDO
Um resumo sobre o que 
foi visto no conteúdo.
SAIBA MAIS
Informações extras sobre 
o conteúdo.
SINTETIZANDO
Uma síntese sobre o 
conteúdo estudado.
VOCÊ SABIA?
Informações 
complementares.
ASSISTA
Recomendação de vídeos 
e videoaulas.
ATENÇÃO
Informações importantes 
que merecem maior 
atenção.
CURIOSIDADES
Informações 
interessantes e 
relevantes.
CONTEXTUALIZANDO
Contextualização sobre o 
tema abordado.
DEFINIÇÃO
Definição sobre o tema 
abordado.
DICA
Dicas interessantes sobre 
o tema abordado.
EXEMPLIFICANDO
Exemplos e explicações 
para melhor absorção do 
tema.
EXEMPLO
Exemplos sobre o tema 
abordado.
FIQUE DE OLHO
Informações que 
merecem relevância.
SUMÁRIO
UNIDADE 1 
Introdução.................................................................................. 12
Introdução a computadores e componentes................................ 13
Arquitetura de um computador......................................................... 15
Representação da informação no computador.................................. 18
Conceito de bits.................................................................................. 18
Bytes e seus múltiplos para coleção de bits........................................ 19
Desenvolvimento de Algoritmos................................................. 20
Sintaxe de um algoritmo.................................................................... 21
Fluxogramas...................................................................................... 23
Semântica de um algoritmo............................................................... 24
Exemplo não computacional de um algoritmo.................................. 24
Exemplo computacional de um algoritmo......................................... 25
Tipos de dados e convenções............................................................. 27
Nomes de variáveis............................................................................ 28
Operações Aritméticas...................................................................... 29
Teoria dos erros........................................................................... 31
Erro na origem dos dados.................................................................. 34
Erro de truncamento......................................................................... 35
Erro de arredondamento................................................................... 36
Erro absoluto, erro relativo e erro percentual...................................... 37
Aritmética de ponto flutuante........................................................... 39
Algarismos significativos.................................................................. 40
Multiplicação e divisão com algarismos significativos...................... 41
Felipe Costa
Máquina de escrever
Teoria dos erros
Sistemas numéricos.................................................................... 41
Sistema de numeração decimal......................................................... 43
Sistema de numeração binário.......................................................... 43
Sistema de numeração octal............................................................. 44
Sistema de numeração hexadecimal................................................. 44
Mudança de bases numéricas............................................................ 45
Base binária para base decimal.......................................................... 45
Base decimal para base binária.......................................................... 47
Sistema e Aritmética de ponto flutuante.......................................... 50
Linguagens de programação....................................................... 55
Paradigmas....................................................................................... 57
Paradigma imperativo....................................................................... 58
Paradigma procedural....................................................................... 58
Paradigma orientado a objetos......................................................... 59
Paradigma processamento paralelo.................................................. 61
Paradigma declarativo...................................................................... 62
Paradigma de lógica.......................................................................... 62
Paradigma funcional......................................................................... 63
Paradigma database (paradigma de processamento de banco de 
dados)............................................................................................... 64
Paradigma de programação orientada a eventos.............................. 65
Linguagens de baixo e alto nível........................................................ 66
Linguagem de baixo nível.................................................................. 66
Linguagem de alto nível.................................................................... 67
Principais diferenças entre linguagem de baixo nível e linguagem de 
alto nível............................................................................................67
UNIDADE 2
Introdução...................................................................................72
Introdução à linguagem de programação C.................................. 73
Conceitos básicos da linguagem C............................................... 73
Variáveis e constantes em C............................................................... 76
Comandos de entrada e saída de dados............................................. 80
Operadores na linguagem C............................................................... 83
Estruturas de decisãoem C ......................................................... 86
Estrutura de decisão IF....................................................................... 87
Estrutura de decisão SWITCH............................................................ 88
Estruturas de repetição em C...................................................... 90
Laço de repetição FOR....................................................................... 90
Laço de repetição WHILE.................................................................... 91
Laço de repetição DO-WHILE............................................................. 92
Funções em C.............................................................................. 93
Vetores e matrizes em C.................................................................... 95
UNIDADE 3
Introdução.................................................................................100
Equações não lineares.................................................................101
Solução de equações não lineares......................................................101
Teorema de Bolzano..........................................................................102
Métodos de solução de equações não lineares i...........................103
Método do Meio Intervalo (MMI)......................................................104
Método das Aproximações Sucessivas (MAS)...................................108
Métodos de solução de equações não lineares ii...........................111
Método das secantes (MS).................................................................111
Método de Newton-Raphson (MNR)................................................114
Comparação entre os métodos numéricos........................................118
Sistemas lineares.......................................................................120
Classificação de Sistemas Lineares....................................................121
Métodos diretos.........................................................................122
Método da Eliminação Gaussiana......................................................123
Método da fatoração LU....................................................................128
UNIDADE 4
Introdução.................................................................................134
Equações não lineares – métodos iterativos...............................135
Método de Gauss-Jacobi.................................................................. 136
Método de Gauss-Seidel.................................................................. 140
Teoria da aproximação...............................................................145
Ajuste de curvas............................................................................... 145
Método dos Mínimos Quadrados (MMQ)......................................... 146
Interpolação polinomial.............................................................151
Método de Newton-Gregory............................................................ 153
Método de Lagrange........................................................................ 157
Equações diferenciais ordinárias................................................160
Método de Euler............................................................................... 162
Método de Runge-Kutta.................................................................. 166
Integração numérica..................................................................169
Regra do Trapézio............................................................................. 171
Primeira Regra de Simpson............................................................... 173
Segunda Regra de Simpson............................................................... 176
Referências Bibliográficas.........................................................180
Apresentação
Olá, aluno(a)
Desde suas primeiras aplicações no século passado, ficou cla-
ro que o computador mudaria para sempre nossas vidas. Os compu-
tadores, que antes eram grandes máquinas de calcular, passaram 
a fazer parte de nossa realidade no formato de desktops pessoais, 
tablets, smartphones e tantos outros. 
A simulação computacional, proveniente do constante avan-
ço tecnológico,é possibilitada pela modelagem matemática, prática 
que permite esquematizar uma situação-problema. Nesse contexto, 
surge a necessidade de compreender métodos numéricos.
Neste objeto de aprendizagem, veremos uma introdução aos 
computadores e seus componentes. Aprenderemos o que são algo-
ritmos e como construí-los. Ainda neste objeto de aprendizagem, 
será introduzida a teoria dos erros e a aritmética de ponto flutuante, 
usada para representar números reais computacionalmente. Fina-
lizando com conceitos de linguagem de programação e seus para-
digmas.
Em seguida, entraremos no mundo da linguagem de progra-
mação C. Conheceremos como essa linguagem surgiu, seus con-
ceitos iniciais e os principais comandos. Também veremos como 
representar vetores e matrizes nessa linguagem e como construir 
funções.
Finalizando, aprenderemos métodos numéricos que possibi-
litarão a simulação computacional para resolução de problemas que 
não são analíticos. Você aprenderá métodos para resolver equações 
não lineares, sistemas lineares, equações diferenciais ordinárias e 
de integração numérica.
Autoria
Rafaela Rodrigues Oliveira Amaro
 Olá, meu nome é Rafaela Rodrigues 
Oliveira Amaro. Sou especialista em Me-
todologia do Ensino de Matemática pela 
Faculdade de Administração, Ciências, 
Educação e Letras (FACEL) em 2012 e gra-
duada em Matemática pela Fundação Co-
munitária de Ensino de Itabira (FUNCESI) 
em 2009. 
Ariel da Silva Dias
Olá, meu nome é Ariel da Silva Dias. 
Sou mestre em Ciência da Computação e 
Matemática Computacional pela Univer-
sidade de São Paulo (2014). É graduado 
em Ciência da Computação pela Pontifí-
cia Universidade Católica de Minas Gerais 
(2011). É professor universitário com atua-
ção em cursos de graduação e pós-gradua-
ção lato sensu nas áreas de Banco de Dados, Matemática Computa-
cional, Sistemas Distribuídos, Sistemas Operacionais, Segurança da 
Informação, Compiladores, Linguagens de Programação, Internet 
das Coisas, Jogos Digitais, Gameficação e Teoria dos Jogos. 
* Aponte a câmera do seu celular para ter acesso ao currículo lattes.
Alfredo João dos
Santos Neto
Rafaela Rodrigues 
Oliveira Amaro
Ariel da Silva Dias
Alfredo João dos Santos Neto
Olá, meu nome é Alfredo João dos 
Santos Neto. Sou bacharel em Física pela 
Universidade de Pernambuco (2016), mes-
tre em Física pela Universidade Federal de 
Pernambuco (2018) e especialista em Me-
todologias da Educação a Distância pela 
Universidade da Amazônia (2022).
Organizador
UN
ID
AD
E
1
Objetivos
 ◼ Compreender a arquitetura de um computador, seus elemen-
tos, o conceito de bits e seus múltiplos;
 ◼ Reconhecer a estrutura de um algoritmo e como implemen-
tá-lo;
 ◼ Conceituar, identificar e calcular o erro;
 ◼ Definir o que é Aritmética de ponto flutuante e apresentar 
suas propriedades;
 ◼ Definir o que é Aritmética de ponto flutuante e apresentar 
suas propriedades;
12
Introdução
Durante a leitura deste material, você conhecerá um pouco da his-
tória dos computadores, além de sua arquitetura e como seus com-
ponentes interagem.
Entenderá que um algoritmo é uma sequência lógica de ins-
truções e que não se limita apenas à computação. Aprenderá sobre a 
teoria dos erros e aritmética de ponto flutuante, dois conceitos im-
portantes e inerentes à linguagem dos computadores. 
Compreenderá o conceito de linguagem de programação, os 
principais paradigmas envolvidos e entenderá que essas linguagens 
foram criadas para dizer ao computador e aos elementos de sua ar-
quitetura o que eles têm que fazer e quando têm que fazer. 
Estude interativamente com o material, visitando os links e 
acessando os vídeos propostos, de forma a construir uma aprendi-
zagem mais efetiva.13
Introdução a computadores 
e componentes
Desde muito cedo, em 300 a.C., na Babilônia (atual Iraque), as má-
quinas de contagem, conhecidas como ábacos, já eram utilizadas 
no senso e para outros tipos de cálculos. A primeira ferramenta 
de contagem acionada por engrenagem foi o relógio de cálculo de 
Schickard, inventado em 1623. Alguns anos depois,uma calculadora 
– capaz de adicionar, subtrair, multiplicar e dividir – foi desenvol-
vida pelo famoso estudioso Gottfried Wilhelm Leibniz, que também 
desenvolveu os números binários e muitas ideias importantes em 
filosofia e lógica.
Em 1642, o filósofo e matemático Blaise Pascal, aos 19 anos, 
inventou a pascaline (Figura 1) como uma ajuda para o pai, que era 
cobrador de impostos. Pascal construiu 50 unidades dessa calcula-
dora de função única acionada por engrenagem, cuja única funcio-
nalidade era realizar adição. Entretanto, devido ao custo exorbitan-
te, não conseguiu vender muitas dessas calculadoras. Outro fator 
da baixa venda dá-se porque elas realmente não eram tão precisas, 
afinal, naquela época, não era possível fabricar engrenagens com a 
precisão necessária.
Figura 1: Pascaline ou pascalina, primeira máquina de calcular mecânica, inventada 
em 1642, por Pascal.
Fonte:BRANCAGLIONE, 2018.
Note que estamos falando de uma “tecnologia” (assim era 
para a época) que durou até a era atual, pois nos painéis dos carros 
a parte do hodômetro do velocímetro usava o mesmo mecanismo 
que a pascaline para incrementar a próxima roda após cada rotação 
completa da roda anterior.
14
O alemão Gottfried Wilhelm Leibniz, poucos anos depois de 
Pascal, conseguiu construir uma calculadora de quatro funções – 
adição, subtração, multiplicação e divisão –, que foi batizada de 
contador de passos. Embora o contador empregasse o sistema de 
números decimais, Leibniz foi o primeiro a defender o uso do sis-
tema de números binários, fundamental para a operação dos com-
putadores modernos. Leibniz é considerado um grande filósofo, foi 
inventor do cálculo junto com Newton, mas morreu pobre e sozinho.
Com o sistema binário, os inventores foram capazes de usar 
sistemas de cartões perfurados para os primeiros computadores 
eletrônicos. A International Business Machines (IBM) posterior-
mente adotaria essa tecnologia e a disponibilizaria para usos mais 
amplos.
Para atender às demandas de orientação de mísseis durante a 
Segunda Guerra Mundial, a IBM e a Universidade de Harvard se uni-
ram para criar o Harvard Mark I, um computador mecânico de um 
metro e oitenta de altura. Este foi o primeiro computador moderno.
SAIBA MAIS
A Hewlett-Packard (HP), uma empresa de tecnologia iniciada em 
1939, desenvolveu seu primeiro computador em 1966. O HP 2116A, 
como era chamado, era um controlador para vários instrumentos 
diferentes. Em 1974, a HP desenvolveu um sistema de processa-
mento de memória que usava chips DRAM (Dynamic Random Ac-
cess Memory Chips), em oposição aos núcleos magnéticos popula-
res.
O primeiro computador pessoal estava disponível em 1975: o 
computador MITAS Altair. Ele vinha em uma caixa e tinha que ser 
montado pelo comprador. Este foi o computador que inspirou Bill 
Gates, então calouro de Harvard, a mudar o rumo de sua carreira 
e criar a empresa chamada Microsoft. O primeiro computador da 
Apple, o Apple I, estava disponível um ano depois.
15
VOCÊ SABIA?
Existem vários lugares (virtuais e não virtuais) para se ver a evolu-
ção da tecnologia de computadores. O Computer History Museum 
está localizado em Mountain View, Califórnia, parte do famoso Vale 
do Silício. É um dos maiores museus que conta a história da evolu-
ção dos computadores. Como está um pouco longe de nós, que tal 
visitar o site e vivenciar um tour virtual?
A arquitetura do computador é uma especificação que detalha como 
o conjunto de padrões de tecnologia de software e hardware inte-
ragem para formar um sistema ou plataforma computacional. Em 
resumo, a arquitetura do computador se refere a como um sistema 
de computador é projetado e com quais tecnologias ele é compatível.
Como vimos brevemente em sua história, o computador é 
uma máquina eletrônica que facilita a execução de qualquer tare-
fa. No computador, a CPU executa cada instrução fornecida em uma 
série de etapas. Essa série é chamada ciclo da máquina e é repetida 
para cada instrução. Um ciclo de máquina envolve buscar instru-
ções, decodificar as instruções, transferir os dados e executar as 
instruções.
Existem três categorias de arquitetura de computadores: 
 • Design do sistema: inclui todos os componentes de hardware 
do sistema,como processadores, unidade de processamento 
gráfico e acesso direto à memória.Ele também inclui contro-
ladores de memória, caminhos de dados, multiprocessamento 
e virtualização.
 • Arquitetura do conjunto de instruções (ISA): é a linguagem 
de programação incorporada da unidade central de processa-
mento. Ela define as funções e capacidades da CPU com base 
em qual programação pode executar ou processar. Isso inclui 
Arquitetura de um computador
Felipe Costa
Destacar
16
Figura 2: Arquitetura de Von Neumann.
Fonte: O autor
Conforme pode ser observado na Figura 2, o sistema compu-
tacional possui unidades básicas que ajudam o computador a execu-
tar operações. Veja a seguir:
 • Unidade de entrada: conecta o ambiente externo ao sistema 
interno do computador. Ela fornece dados e instruções para o 
sistema do computador. Os dispositivos de entrada mais usa-
dos são teclado, mouse, fita magnética etc. A unidade de en-
trada executa as seguintes tarefas: aceita os dados e instruções 
do ambiente externo, converte-o em linguagem de máquina e 
fornece ao sistema computacional os dados convertidos.
o tamanho da palavra, tipos de registro do processador, mo-
dos de endereçamento da memória, formatos de dados e o 
conjunto de instruções que os programadores usam.
 • Microarquitetura: também conhecida como organização do 
computador, esse tipo de arquitetura define os caminhos dos 
dados, o processamento e o armazenamento dos dados, bem 
como a forma com que eles devem ser implementados na ISA.
Na história da computação, surgiram diversos tipos de arqui-
teturas de computador. Entretanto, a mais famosa, utilizada 
até hoje, é a arquitetura de Von Neumann, criada em 1946 por 
John Von Neumann (Figura 2).
17
 • Unidade de saída: responsável por conectar o sistema interno 
do computador ao ambiente externo. Ela fornece os resultados 
de qualquer cálculo ou instruções para o mundo exterior. Al-
guns dispositivos de saída são impressoras e monitores;
 • Unidade de memória ou armazenamento: contém os dados e 
instruções. Ela também armazena os resultados intermediá-
rios antes de serem enviados paraos dispositivos de saída ou 
para uso posterior. A unidade de memória ou armazenamento 
de um sistema de computador pode ser dividida em duas ca-
tegorias:
 • Armazenamento primário: é um tipo volátil, com 
armazenamento temporário, usado para armazenar 
os dados que estão sendo executados no momento. 
Os dados são perdidos quando o computador é des-
ligado. A RAM é usada como memória de armazena-
mento principal;
 • Armazenamento secundário: é um tipo não volátil, 
com armazenamento permanente de dados, sendo 
esta memória mais lenta e mais barata que a memó-
ria primária. Os dispositivos de memória secundária 
comumente usados são discos rígidos e CDs;
 • Unidade lógica aritmética (ULA): todos os cálculos são rea-
lizados na ULA do sistema computacional. Ela pode executar 
operações básicas, como adição, subtração, divisão, multi-
plicação etc. Sempre que são necessários cálculos, a unidade 
de controle transfere os dados da unidade de armazenamento 
para a ULA.Quando as operações são concluídas, o resultado é 
transferido de volta para a unidade de armazenamento;
 • Unidade de controle: responsável por controlar todas as ou-
tras unidades do computador e por buscar as instruções na 
memória principal. Também é conhecida como sistema ner-
voso central do computador;• Unidade central de processamento (UCP): a unidade de con-
trole e a ULA são conhecidas como UCP (ou CPU para sigla em 
inglês de central processing unit). A UCP é o cérebro do sis-
18
Representação da informação no computador 
A arquitetura do computador é composta de circuitos eletrônicos, 
que operam com sinais binários (0 e 1). Nos projetos de circuitos 
computacionais são usados chips, que são compostos de um mate-
rial semicondutor denominado transistor. Os transistores possuem 
a propriedade de conduzir energia elétrica apenas quando uma ten-
são conveniente é empregada em seus terminais. Sendo assim, os 
transistores são utilizados em um chaveamento como “liga-desli-
ga”, sendo que, quando está ligado, é representado por 1, e, quando 
desligado, é representado por 0.
O agrupamento de transistores permite outras funções lógi-
cas. Como não é o objetivo deste livro se aprofundar nessas funções, 
por ora é suficiente saber que tudo o que é armazenado e processado 
no computador trata-se de um conjunto finito de 0s e 1s, e isso nos 
leva ao conceito de bits.
Conceito de bits 
A informação mais básica que um computador consegue compreen-
der é o bit. Este termo é uma forma abreviada de dígito binário e 
possui apenas um dos dois valores: 0 ou 1. Se você olhar para um 
interruptor de luz, verá que ele é um mecanismo binário, pois ou 
está ligado ou desligado.
A forma abreviada de um bit é uma letra minúscula b. Para 
ter certeza de que seu significado é entendido, você provavelmente 
deve usar a palavra inteira bit, pois, em geral, às vezes as pessoas 
usam indevidamente a letra minúscula b para byte.
Nós, seres humanos, não conseguimos (ou temos alguma 
dificuldade) em pensar em termos de bits. Somente computadores 
possuem facilidade e destreza ao trabalhar com eles. Portanto, os 
seres humanos foram criando, aos poucos, uma organização para 
interagir com o computador. É aí que entram os bytes e outras co-
leções de bits.
tema computacional. Ela executa as seguintes tarefas: realiza 
todas as operações, toma todas as decisões e controla todas as 
unidades do computador.
19
Bytes e seus múltiplos para coleção de bits
Um byte (sua forma abreviada é um B maiúsculo) é uma unidade 
comum para agrupamentos de bits. Em uso geral, um byte é consi-
derado uma sequência contígua de oito bits. Existem outros signi-
ficados menos comuns para um byte, mas, para a sua formação, a 
sequência de oito bits é boa e será adotada neste livro.
Em termos de conversão para uso humano, considere que 
oito bits podem representar 256 coisas diferentes. Começando com 
zero (a contagem por um computador geralmente começa em zero 
em vez de um), você obtém uma sequência como a seguir:
 • 00000000 = decimal 0
 • 00000001 = decimal 1
 • 00000010 = decimal 2
 • 00000011 = decimal 3
 • ...
 • 11111111 = decimal 255
Deste modo, você pode mapear os números inteiros de 0 a 255 
em um byte,usar 256 bytes para representar 256 caracteres ASCII 
diferentes, usar 256 bytes para representar números hexadecimais 
de 0 a FF ou qualquer outro mapeamento definido por você. A capa-
cidade de fazer esse mapeamento permite que os humanos intera-
jam melhor com os computadores sem ter que pensar em binário.
As coisas ficam complicadas quando os conjuntos de bytes 
começam a aumentar; é aí que surgem os múltiplos como quilo, 
mega, giga, penta... bytes! Entretanto, aqui cabe uma atenção es-
pecial. O termo “quilo” é geralmente denotado para representar mil 
ou 103. No binário, por sua vez, “quilo” significa 210, o que resulta em 
1024 em decimal. Esta relação continua em toda a escala dos múlti-
plos de bytes.
Com tudo isso em mente, aqui estão os vários prefixos em 
uso hoje, e a que eles se referem em números reais. Cada múltiplo é 
mostrado primeiro como seu valor decimal e depois como seu valor 
binário:
20
 • Kilo (kB) = 1.000 bytes = 103 decimal
 • Kibi (KiB) = 1.024 bytes = 210 binário
 • Mega (MB) = 1.000.000 bytes = 106 decimal
 • Mebi (MiB) = 1.048.576 bytes= 220 binário
 • Giga (GB) = 1.000.000.000 bytes = 109 decimal
 • Gibi (GiB) = 1.073.741.824 bytes = 230 binário
 • Tera (TB) = 1.000.000.000.000 bytes = 1012 decimal
 • Tebi (TiB) = 1.099.511.627.776 bytes = 240 binário
Desenvolvimento de Algoritmos
Existem muitas definições para o termo algoritmo. As autoras do li-
vro Algoritmos e programação com exemplos em Pascal e C (2014), 
Nina Edelweiss e Maria Aparecida Livi, indicam que um algoritmo 
corresponde a uma descrição de um padrão de comportamento ex-
presso em termos de um conjunto finito de ações.
Edelweiss e Livi apontam que um algoritmo deve:
 • possuir um estado inicial;
 • consistir em uma sequência lógica finita de ações;
 • produzir dados de saída corretos;
 • possuir um estado final.
Thomas Cormen et al., em sua obra Algoritmos: teoria e prá-
tica (2012), defende que um algoritmo deve ser um procedimento 
computacional bem definido, que toma um conjunto de valores de 
entrada e produz um conjunto devalores como saída. Note que tanto 
Edelweiss e Livi quanto Cormen elencam propriedades de um al-
goritmo caracterizando, principalmente, que ele deve iniciar (re-
cebendo dados de entrada) e ser concluído (apresentando dados de 
saída).
Podemos definir algoritmo como um procedimento ou fór-
mula para resolver um problema com base na realização de uma 
sequência de ações especificadas. Um programa de computador 
pode ser visto como um algoritmo elaborado. Atente para a palavra 
Felipe Costa
Destacar
21
Sintaxe de um algoritmo
Como vimos, o algoritmo é uma sequência de ações para resolver 
um problema. Logo, para que todas as pessoas envolvidas em um 
projeto possam entender o seu algoritmo, é necessário estabelecer 
uma convenção ou conjunto de regras que regulem a escrita deste 
algoritmo. A este conjunto denominamos regras de sintaxe.
Quando falamos em regras na computação, estamos por in-
dicar quais tipos de comandos (estruturas de programação) e ex-
pressões podem ser utilizados.
Os tipos de comandos ou estruturas são:
 • Estrutura sequencial: trata-se da estrutura de controle pa-
drão. As instruções são executadas linha por linha, na ordem 
em que aparecem;
 • Estrutura condicional: é usada para testar uma condição. Uma 
sequência de instruções é executada dependendo da condição 
verdadeira ou falsa. Isso significa que o programa escolhe en-
tre dois ou mais caminhos alternativos. Esta condição se refe-
re a qualquer expressão ou valor que retorne um valor boolea-
no, significando verdadeiro ou falso;
 • Estrutura de repetição (ou iteração): executa repetidamente 
uma série de instruções em loop, desde que a condição de pa-
rada seja verdadeira. A condição de parada pode ser predefi-
nida ou em aberto. Um loop pode ser controlado por evento ou 
controlado por contador. Um loop controlado por evento exe-
cuta uma sequência de instruções até que ocorra um evento, 
enquanto um controlado por contador executa as instruções 
utilizada na frase anterior “pode”, pois, afinal, um programa é um 
algoritmo, mas um algoritmo não é um programa.
Em matemática e ciência da computação, um algoritmo ge-
ralmente significa um pequeno procedimento que resolve um pro-
blema recorrente. Porém, um algoritmo não se limita apenas a um 
programa de computador, ele pode se apresentar de outras manei-
ras: algoritmo que leve você de casa até a faculdade; algoritmo para 
fazer um bolo; algoritmo de como dirigir; algoritmo de como resol-
ver um cálculo matemático, entre outros exemplos.
22
EXEMPLO
Sintaxe de um algoritmo
Problema: precisamos mostrar na tela do computador a área do 
círculo com base no dado de entrada (raio) que será informado pelo 
usuário, sabendo que sua fórmula é área = pi · raio².
Resposta: um possível algoritmo que resolve este problema é:
inicio_do_algoritmo
Primeiro passo: peça ao usuário para digitar o raio do círculo;
Segundo passo: calcule a área usando a fórmula pi · raio²;
Terceiro passo: exiba o valor na tela.
fim_do_algoritmo
Note o estadoinicial, a solução do problema por meio de uma 
sequência finita de ações e o estado final, tudo conforme as defini-
ções vistas no início deste tópico.
um número pré-determinado de vezes.
Nos três tipos de estruturas existem expressões envolvendo a 
utilização de dados. Não é usual trabalhar diretamente com os valo-
res dos dados; deste modo, são utilizadas variáveis que os armaze-
nam para que sejam realizadas as operações. Uma variável corres-
ponde a um lugar físico na memória do computador,onde ficarão os 
bits referente aos dados.
Acrescentam-se ainda os valores constantes que, diferente-
mente das variáveis,não podem ser mudados. Por exemplo, o va-
lor de pi na matemática é3,1415...; na física e na geografia, ele tem 
o mesmo valor, logo, é uma constante.O saldo bancário é um valor 
que será modificado, podendo ser de mil reais,dois mil, dois reais ou 
zero. Chamamos este tipo de valor variável.
23
Fluxogramas
Além da escrita de uma sequência de ações em português, como foi 
feito anteriormente, também podemos utilizar fluxogramas, que 
possuem grande apelo visual.
Todo fluxograma possui uma sintaxe e uma semântica mui-
to bem definidas,apresentando símbolos específicos para cada co-
mando, tipos de expressões padronizados e sub-rotinas predefini-
das. Enquanto a sintaxe define os símbolos,a semântica define como 
interpretá-los. A Figura 3 apresenta os principais tipos de compo-
nentes do fluxograma.
Figura 3: Símbolos de um fluxograma.
Fonte: O autor
Utilizando estes elementos, podemos representar o algorit-
mo do cálculo da área do círculo por meio de um fluxograma. Obser-
ve o Diagrama 1.
Diagrama 1: Fluxograma para o cálculo da área de um círculo.
Fonte: O autor
Felipe Costa
Destacar
24
Veja pelo fluxograma que temos o início do algoritmo, a se-
quência finita de ações e o fim, todos os elementos bem definidos.
Semântica de um algoritmo 
Tendo as regras de escrita (sintática) definidas, é necessário deter-
minar um conjunto de regras para a interpretação do algoritmo, às 
quais chamaremos regras semânticas. Os símbolos e comandos, 
por si só, não possuem um significado, por isso precisam estar bem 
definidos.
Vamos olhar o Diagrama 1. O símbolo do retângulo represen-
ta o processamento da instrução “Área ← pi · raio²”. É um tipo de 
símbolo que será executado de forma imperativa, uma vez que não 
existe condição imposta a ele.
A instrução interna ao retângulo é condizente com a ação 
dele, logo, o símbolo está semanticamente correto. Note, então, que 
a semântica sempre deve acompanhar a sintaxe. Por exemplo, o 
símbolo de retângulo não poderia representar o início ou o fim de 
um fluxograma, uma vez que ele não possui esta funcionalidade.
Exemplo não computacional de um algoritmo 
Um exemplo de algoritmo que está fora do contexto computacional 
é o procedimento para se fritar um ovo. Vamos lá?!
início
Coloque um pouco de óleo na frigideira;
Acenda o fogo;
Coloque a frigideira sobre o fogo;
Espere o óleo esquentar;
Quebre o ovo;
Despeje o ovo no óleo quente;
Coloque um pouco de sal no ovo;
Retire o ovo quando estiver pronto.
Fim
25
Exemplo computacional de um algoritmo 
Um exemplo concreto do uso de algoritmo pode ser feito quando, 
dados dois valores, temos que encontrar qual deles é o maior e apre-
sentá-lo na tela.
Note que existe uma condição simples: se um número X for 
maior que um número Y, então mostraremos o número X na tela; 
caso contrário (senão), apresentaremos o número Y na tela. Vamos 
então ao algoritmo.
início
Pedir para o usuário fornecer valores inteiros para X e Y;
SE X > Y ENTÃO
Mostrar o valor de X na tela;
SENÃO
Mostrar o valor de Y na tela;
Fim
Podemos simular a execução deste algoritmo utilizando o 
conceito de teste de mesa. Em um teste de mesa, simulamos al-
gumas possíveis entradas do usuário, com o objetivo de entender a 
execução do algoritmo ou código e verificar se o algoritmo realmen-
te chega ao objetivo para o qual foi projetado. Neste teste, colocare-
mos o comando, bem como as variáveis, conforme o Quadro 1.
Quadro 1: Teste de mesa do algoritmo para encontrar maior valor.
Felipe Costa
Destacar
26
Note que o valor de entrada para a variável X foi 6, e o valor 
para a variável Y foi 5.No teste condicional, 6 é maior que 5, logo, ele 
foi apresentado. Mas veja agora o teste do Quadro 2. Nele, o usuário 
informa os valores 50 e 51, respectivamente, para X e Y.
Quadro 2: Teste de mesa do algoritmo para encontrar maior valor.
Diagrama 2: Fluxograma do algoritmo para encontrar o maior número entre 
X e Y.
Fonte: O autor
Para este segundo teste, X é igual a 50 e Y igual a 51. No teste 
condicional SE X > Y, a relação é falsa, logo, não é mostrado o valor 
de X na tela, mas, sim,o valor de Y. Note a instrução SENÃO indican-
do um segundo caminho na execução do algoritmo.
O Diagrama 2 possibilita visualizar os dois caminhos possí-
veis que podem ser obtidos por esse algoritmo. Note que a saída à 
direita é para quando X é maior que Y, e a saída à esquerda é para 
quando Y é maior que X.
27
Veja que com o fluxograma fica mais prático compreender o 
comportamento de execução do algoritmo. Nele, temos o início, as 
instruções finitas e o fim. Sendo verdadeira ou falsa a comparação, o 
fluxograma sempre terminará no último símbolo chamado fim.
Tipos de dados e convenções 
Até agora nós apenas criamos os algoritmos e os mostramos em 
“execução”.Porém, olhe o que fizemos e perceba que nem no al-
goritmo nem no fluxograma há indicação explícita do tipo de valor 
que está em operação. Por exemplo,os números 50 e 51, bem como 
o 6 e o 5, podem ser utilizados como números inteiros ou números 
reais. Logo, nos exemplos que vimos anteriormente, não tem como 
definí-los.
Por outro lado, os números 50,19 e 51,8 são, certamente, nú-
meros reais,pois existe uma vírgula separando as casas decimais. 
Além disso, existem valores como caracteres (uma única letra ou 
número), strings ou cadeias de caracteres(possui dois ou mais ca-
racteres) e valores lógicos. Esses são os tipos primitivos de dados e 
os veremos agora.
Números: em um algoritmo, podemos trabalhar tanto com 
números inteiros quanto com números reais. Estes últimos são es-
critos com separador de casas decimais. Por exemplo, ao pesar um 
determinado material, obtivemos o valor 40, que pode ser inteiro ou 
real. Se nosso objetivo era apenas pesar e saber o valor, sem se preo-
cupar com a precisão, então podemos declarar uma variável como 
inteira, logo, o 40 apresentado é inteiro. Porém, se desejamos obter 
precisão na aferição, a variável precisa ser declarada como núme-
ro real, deste modo, podemos obter um peso como 40,0002. Note a 
presença das casas decimais.
Caracteres e cadeias de caracteres: entende-se como carac-
tere a presença de uma única letra, número ou símbolo. Todo carac-
tere em linguagem de programação é limitado com aspas simples. 
Deste modo, o caractere A será representado como ‘A’. Isso ocorre 
para evitar confusão entre o valor do caractere e o nome de uma va-
riável, bem como para diferenciar um número cinco (que é inteiro) 
de um número ‘5’ (entre aspas simples, que é um caractere).
28
Símbolos como ‘@’, ‘\’, ‘/’, espaço em branco e outros tam-
bém são representados como caracteres. Quando existem dois 
ou mais caracteres juntos,chamamos de cadeia de caracteres ou 
strings. Por exemplo, a palavra “programação”é uma string ou ca-
deia de caracteres. Note que, neste caso, usamos aspas duplas para 
delimitar uma string. Outro exemplo: “programação de computa-
dores”,veja que aqui, além das letras, também há espaços em bran-
co que fazem parte da string.
Valores lógicos: George Boole elaborou a lógica booleana e, 
em sua homenagem, foi criado o tipo chamado booleano ou tipo 
lógico. Este tipo de dados, diferentemente dos anteriores, apenas 
possui dois valores:verdadeiro ou falso, sendo convencionado tra-
tá-los na grafia inglesa: true ou false. Estes valores são estudados 
em expressões lógicas e estruturas condicionais.
Nomesde variáveis 
Vimos então os tipos primitivos de dados: inteiro, real e caractere. 
Agora,veremos que existem convenções para declarar o nome das 
variáveis, e é importante que sejam seguidas para que não haja erros 
de execução ou interpretação de leitura do código.
1. O nome de uma variável deve ter, no máximo, 63 caracteres;
2. O nome deve ser iniciado obrigatoriamente por uma letra ou 
por ‘_’;
3. O nome só pode possuir número se começar com letra;
4. O nome da variável somente aceita: letras, números e o carac-
tere ‘_’;
5. Letras gregas ou outras fora do alfabeto ocidental não são 
aceitas;
6. Algumas linguagens de programação são case sensitive, ou 
seja, A (maiúsculo)é diferente de a (minúsculo).
 • Exemplos de nomes válidos de variáveis: numero, vetor, 
num1, coord_X,_resultado, ValorTotal, valor_parcial.
 • Exemplos de nomes inválidos de variáveis: n umero, @vetor, 
N 1, num-fi m,x&a, R$.
Felipe Costa
Destacar
29
Note que o espaço em branco é um erro, pois pode parecer 
que se tratam de duas variáveis diferentes. Os caracteres especiais 
não devem ser utilizados em variáveis. O caractere ‘-‘ não pode ser 
utilizado, uma vez que ele, na programação,tem o papel reservado 
para realizar operações de subtração.
Operações Aritméticas 
Na montagem do algoritmo ou de um código de programação, po-
demos considerar as quatro operações aritméticas, que são: adição, 
subtração, multiplicação e divisão. Dependendo do tipo de variável 
e dos operadores, o resultado da operação pode ser diferente, e isso 
ocorre em três casos: divisão real,divisão inteira e obtenção do res-
to da divisão. Todas estas operações são binárias, pois consideram a 
relação entre dois operandos.
Outro tipo de operação existente é a troca de sinal, que, dife-
rente das anteriores,é uma operação unária, pois realiza a troca de 
sinal de apenas um operando.Apesar de caracterizarmos apenas a 
relação entre números inteiros e números reais, também podemos 
utilizar a operação de adição em cadeias de caracteres.Por exemplo, 
considere uma variável A, que contém a cadeia “Métodos”,e uma 
variável B, que possui a cadeia de caracteres “Computacionais”.Ao 
fazermos C ← A + B, o resultado em C será “Métodos Computacio-
nais”.Denominamos este tipo de adição com cadeia de caracteres 
concatenação.
Veremos agora um exemplo de pseudocódigo de algoritmo 
que, ao receber dois números inteiros, realizará a divisão (operação 
div) e também obterá o resto da divisão utilizando a operação mod.
Algoritmo:
início
Pedir para o usuário fornecer valores inteiros para A e B;
Result ← A div B;
Resto ← A mod B;
Mostrar na tela result e resto.
fim
Felipe Costa
Destacar
O Operador + tem a finalidade principal de adicionar dois números. Entretanto, ele pode também concatenar operandos numéricos com operandos de cadeia de caracteres. O operador + possui um conjunto complexo de regras que determinam se adicionam, concatenam, sinalizam um erro do compilador ou emitem uma exceção InvalidCastException de tempo de execução.
30
Diagrama 3: Fluxograma de operações aritméticas.
Fonte: O autor
Agora faremos o teste de mesa simulando a interação do 
usuário com o algoritmo. A variável A receberá o valor 8, enquan-
to a variável B receberá o valor 5. Faremos a operação de divisão 
de inteiros e também obteremos o resto da divisão armazenando, 
respectivamente, nas variáveis result e resto, seguindo a ordem de 
execução do algoritmo e do Diagrama 3. Vejamos então estas opera-
ções no teste de mesa do Quadro 3.
31
Quadro 3: Teste de mesa do algoritmo apresentado.
Quando dividimos o inteiro 8 pelo inteiro 5, o resultado da 
divisão (Result ← A div B) será 1, pois a parte inteira de 8dividida por 
5 é 1. O valor do resto dessa divisão é 3, que foi obtido na operação 
Resto ← A mod B.
Teoria dos erros 
A obtenção de resultados provenientes de observações é limitada. 
Afinal, o ser humano é falho. Todavia, uma vez que é difícil determi-
nar respostas exatas e precisas, torna-se necessário estimar quão 
boa e eficiente foi a medição realizada, quantificando a qualidade da 
solução descoberta. Essa diferença entre o resultado encontrado e o 
resultado correto recebe o nome de erro e é inerente aos processos 
numéricos, não podendo, em muitos casos, ser evitado.
Da mesma forma, a nossa interação com os computadores 
gera erros que são inevitáveis. Mas de que forma? Ao fornecermos 
dados ao computador, estes serão convertidos para linguagem de 
máquina e todas as operações necessárias serão efetuadas. Uma 
nova conversão será feita para que os resultados nos sejam apre-
sentados.
Dentro desses cenários, nasce a Teoria dos Erros, que estuda 
a dinâmica do erro nas diversas situações em que ele pode estar in-
serido. Conforme Humes e outros autores, no livro Noções de Cál-
culo Numérico, publicado em 1987, é propósito da Teoria dos Erros:
 • determinar o mais correto resultado para a medida 
aferida a partir dos dados experimentais existentes, ou 
seja, definir, em termos estatísticos, a mais acertada 
aproximação para o valor verdadeiro;
 • encontrar a incerteza no valor obtido, isto é, determi-
nar o grau de precisão e confiança da medida analisada.
32
Vamos explorar um contexto comum à nossa vida, que fará 
toda a diferença para a compreensão desse conteúdo.
Considere uma pista de atletismo de forma circular e raio 
(distância do centro à borda da circunferência) equivalente a 50 m. 
Um atleta tem como meta percorrer tal pista dez vezes diariamente, 
de maneira a se preparar para uma competição. Se a meta proposta 
pelo atleta for cumprida, quantos metros ele terá percorrido?
Como se calcula o comprimento de uma circunferência? Vocês 
se lembram? A relação que permite calcular o comprimento de uma 
circunferência é C = 2 · π · r, em que π é uma constante e r indica a 
medida do raio da circunferência. Agora que já definimos os compo-
nentes da fórmula a ser utilizada, podemos solucionar o problema.
Figura 3: Elementos de uma circunferência.
Fonte: Adobe Stock. Acesso em: 05/10/2019.
Como já foi definido, o raio equivale a 50 m, mas e o valor de 
π? Que número representa essa constante?
Para sanar essas interrogações, partiremos para o cálculo da 
metragem percorrida baseado nos valores de π indicados a seguir:
π = 3,14
33
Sendo assim:
C = 2 · π · r
C = 2 · 3,14 · 50 = 314
Como esse percurso será executado dez vezes, logo, a conta 
que deve ser feita é:
314 · 10 = 3140 m
Para outro valor de π:
π = 3,1416
Desse modo:
C = 2 · π · r
C = 2 · 3,1416 · 50 = 314,16
Como esse percurso será executado dez vezes, logo, será per-
corrido:
314,16 · 10 = 3141,6 m
Para o seguinte valor de π:
π = 3,14159265
C = 2 · π · r
C = 2 · 3,14159265 · 50 = 314,159265
Como esse percurso será executado dez vezes, logo, será per-
corrido o seguinte valor:
314,159265 · 10 =3141,59265 m
Você identificou alguma alteração nas metragens percorri-
das? A resposta é categórica: sim! Atente-se ao fato de como o re-
sultado é alterado mediante o valor definido para π. Verifique que 
quanto mais preciso e exato se define essa constante, mais preciso 
e exato também é o resultado proveniente das operações que o uti-
lizam.
No entanto, a cada cálculo realizado, existe uma diferença, 
ainda que pequena,entre os resultados. Logo, há a incidência de 
erro, proveniente da utilização de um valor arredondado a outro 
mais preciso. Para operações como essa, é preciso identificar o tipo 
de erro existente para, posteriormente, mensurar o indicador.
Felipe Costa
Destacar
34
O número π indica a razão entre a circunferência de um círculo e seu 
diâmetro. Com a descoberta e aprimoramento do cálculo infinite-
simal, passou-se também a recorrer a utilização de séries infinitas 
convergentes de produtos e frações com o intuito de aproximar o 
valor de π.
CURIOSIDADE
Erro na origem dos dados 
Alguns dados são obtidos por medidas experimentais. Em outras 
palavras,até obter determinadas informações, é comum que surjam 
incoerências. Dessa forma, logono início, nos deparamos com os 
erros dos dados de entrada.
Quando o modelo matemático é proveniente de um problema 
físico, há incertezas quanto às medidas realizadas pelos instrumen-
tos de medição, que possuem uma precisão limitada devido a diver-
sos fatores, conforme mostra a Figura 4.
Figura 4: Fontes de erro na origem de dados. 
Fonte: Adobe Stock. Acesso em: 05/10/2019.
35
De maneira geral, na tentativa de indicar um fenômeno físico 
por um modelo matemático, dificilmente se obtém uma descrição 
adequada a este fenômeno.Geralmente,é preciso várias simplifi-
cações do mundo físico para se obter um modelo matemático que 
possibilite seu uso.
Erro de truncamento
O erro de truncamento consiste no erro característico e inerente aos 
modelos numéricos. O ato de truncar corresponde aos erros originá-
rios da utilização de processos, que são compostos por termos infi-
nitos ou muito grandes para a determinação de um valor.
Figura 5: Fontes de erro de truncamento.
Fonte: Adobe Stock. Acesso em: 05/10/2019.
São considerados exemplos de erro de truncamento:
36
 • estudo de uma série infinita, uma vez que ao adaptá-la para 
uma quantidade de termos finitos, ou seja, limitar uma quan-
tidade de termos, cometemos erro de truncamento;
 • processo de linearização de uma função, pois consiste no de-
senvolvimento da função em série de Taylor, considerando 
apenas os termos lineares. Por exemplo:para o valor de e 1,5 
ou de qualquer valor de e, pode-se utilizar a série de Taylor de 
uma função exponencial como recurso, definida por:
Erro de arredondamento 
De maneira a entender melhor o erro de arredondamento, é impor-
tante definir o que é arredondamento e quais regras fundamentam 
o ato de arredondar.
Arredondamento é o processo que “dispensa” algumas casas deci-
mais à direita de um algarismo. A Associação Brasileira de Normas 
Técnicas (ABNT) publicou, em 10 de dezembro de 2014, a norma 
ABNT NBR 5891:2014 – Regras de arredondamento na numeração 
decimal, definindo as regras para executar tal operação.
DEFINIÇÃO
A seguir, é possível ver quais são essas indicações, bem como 
seus respectivos exemplos:
 • Quando o algarismo imediatamente seguinte ao último for in-
ferior a 5, o último algarismo a ser conservado permanecerá 
sem modificação.
Exemplo 1: o algarismo 14,9834, quando arredondado, fica 14,98.
 • Quando o algarismo imediatamente seguinte ao último alga-
rismo a ser conservado for superior ou igual a 5 e for seguido 
de, no mínimo, um algarismo diferente de zero, o último alga-
rismo a ser conservado deverá ser aumentado em uma unidade.
37
Exemplo 2: o algarismo 4,6691, quando arredondado à segunda 
decimal, fica 4,67.
 • Quando o algarismo imediatamente seguinte ao último al-
garismo a ser conservado for 5 seguido de zeros, deve-se ar-
redondar o algarismo a ser conservado para o algarismo par 
mais próximo.
Exemplo 3: o algarismo 0,63500, quando arredondado à segunda 
decimal, fica 0,64.
 • Quando o algarismo imediatamente seguinte ao último a ser 
conservado for 5 e estiver seguido de zeros, ele permanecerá 
sem modificação quando for par.
Exemplo: o algarismo 10,6650, quando arredondado à segunda 
decimal, fica 10,66.
Logo, os erros de arredondamento ocorrem a cada arredon-
damento mal realizado e são introduzidos nas operações efetuadas, 
influenciando diretamente na solução e gerando, assim, resultados 
diferentes ou muito distantes do correto.
Erro absoluto, erro relativo e erro percentual 
É fundamental a quantificação do erro, ou seja, mensurar quão 
grande ou quão pequeno foi o erro cometido nos processos numéri-
cos. Para tal, podemos utilizar as medidas de erro denominadas erro 
absoluto, erro relativo e erro percentual.
O erro absoluto (EAx), lido como erro absoluto em x, com-
preende o resultado entre a subtração do valor exato de um número 
x e seu valor aproximado x, encontrado a partir de um procedimento 
numérico e da seguinte relação:
Na maioria das situações, apenas x é um valor conhecido. 
Desse modo, o que se faz é fixar um limitante superior ou uma es-
timativa para o módulo do erro absoluto.O erro absoluto não é sufi-
ciente para descrever a precisão de um cálculo.
Por isso, é mais incidente a utilização do erro relativo.
38
O erro relativo (ERx), também lido como erro relativo em x, é 
a razão entre o erro absoluto. Seu valor aproximado é dado por:
Por fim, o erro percentual é o erro relativo em porcentagem:
Você conhece o número de Euler? Já ouviu falar sobre essa 
interessante constante?Pois bem, ele é um famoso número irracio-
nal que possui infinitas casas decimais. Tendo isso em mente, va-
mos aplicar os conceitos aprendidos a esse popular número.
O número de Euler tem esse nome em homenagem ao matemáti-
co Leonhard Euler. Ele é um número irracional, positivo e funcio-
na como base para os logaritmos naturais. Além disso, o número de 
Euler possui infinitas casas decimais e nenhum padrão. O símbolo 
utilizado para representá-lo é a letra e.
CURIOSIDADE
Admita que o número de Euler esteja compreendido no se-
guinte intervalo:
e∈[2,71; 2,72]
Consideraremos o valor aproximado de x̅=2,71. Nesse contex-
to, calcularemos o erro absoluto, o erro relativo e o erro percentual.
 • Erro absoluto
Para determinar o erro absoluto, basta substituir o valor determi-
nado como aproximado (x̅) e o valor cujo erro queremos mensurar 
(x):
39
 • Erro relativo
Para calcular o erro relativo, utilizaremos o valor determinado para 
o erro absoluto:
 • Erro percentual
Para mensurar o erro percentual, é necessário realizar o produto 
entre o erro relativo por 100%. Logo:
A conclusão referente a essa situação é mais fácil de ser inter-
pretada pelo resultado do erro percentual, que permite concluir que 
o número e = 2,71 possui 0,37% de precisão em sua representação.
Aritmética de ponto flutuante 
Caro(a) aluno(a), você se recorda da notação científica? Lembra 
como representá-la?
A notação científica é um modo simplificado de escrever nú-
meros decimais muito grandes ou pequenos.
Ela pode ser utilizada no sistema de numeração binário?A 
resposta é categórica: não! Para atender a essa demanda, foi criado 
o ponto flutuante, que nada mais é do que uma versão da notação 
científica adaptada para o sistema binário.
Diagrama 4: Sistema decimal x Sistema binário.
Felipe Costa
Destacar
40
Já a Aritmética de ponto flutuante, como o próprio nome su-
gere, trabalha as operações aritméticas (adição, subtração, multipli-
cação e divisão) com os números representados em ponto flutuante.
Algarismos significativos 
Medições de grandezas físicas são constantemente utilizadas nas 
mais distintas operações. Assim, considerando o resultado de uma 
medição, os algarismos significativos são identificados como aque-
les que são contabilizados da esquerda para a direita, partindo do 
primeiro algarismo diferente de zero.
E como contabilizar estes algarismos significativos? Veja al-
guns exemplos:
 • • o algarismo 0,014 possui dois algarismos significativos;
 • • o algarismo 37,5 possui três algarismos significativos;
 • • o algarismo 0,007800 possui quatro algarismos significa-
tivos;
 • • o algarismo 91,042 possui cinco algarismos significativos.
O número zero quando posicionado à esquerda de um alga-
rismo,depois ou antes da vírgula, sinaliza apenas o uso das unida-
des, múltiplos e submúltiplos, não sendo considerado como signifi-
cativo. Se ele vier entre dois números diferentes de zero, então será 
considerado significado, como no exemplo acima para o número 
91,042 que possui cinco algarismos significativos. O número zero 
quando posicionado à direita e após outros algarismos diferentes de 
zero, só será significativo se vier após a vírgula.
 ◼ Exemplo 1: 0,00234 equivale a 0,234 · 10-3. Sua representação 
mudou, mas a quantidade de algarismos significativos per-
manece inalterada.
 ◼ Exemplo 2: 0,00000014 possui dois algarismos significativos.
Adição e subtração com algarismos significativos
Para as operações de adiçãoou subtração, devemos arredon-
dar os valores dos algarismos significativos a fim de deixá-los com 
uma igual quantidade de casas decimais e, em seguida, executar a 
operação.
41
 ◼ Exemplo 3:
10,08299 + 23,06 = 10,08 + 23,06 = 33,14
99,112 - 87,4436 = 99,112 - 87,444 = 11,668
Após os cálculos, a referência para representação em relação 
à quantidade de casas decimais continua com o componente que 
apresenta menor quantidade de algarismos significativos.
Multiplicação e divisão com algarismos 
significativos 
Operações de multiplicação e divisão são executadas conforme suas 
especificações próprias e o resultado obtido deve ser escrito com a 
mesma quantidade de algarismos significativos ao fator que com-
põe a operação que possui a menor quantidade de algarismos sig-
nificativos.
 ◼ Exemplo 4:
1,120 · 12,7306 = 14,258272≅14,26
67,23 : 7,0119 = 9,58798614 ≅9,588
Observe que o critério de quantidade de casas decimais se ba-
seia no número constituído por menos algarismos significativos.
Sistemas numéricos 
Como organizar vários algarismos de maneira a se obter uma estru-
turação lógica e concisa?
Nossos antepassados se preocuparam com essa questão e, 
para solucioná-la,criaram os sistemas de numeração. Como exem-
plo, temos o sistema de numeração romana, que foi desenvolvido 
na Roma Antiga e consiste na utilização de sete letras maiúsculas, 
I, V, X, L, C, D e M, às quais são atribuídos valores específicos a cada 
representação, de modo a diferenciá-las.
Felipe Costa
Destacar
42
Figura 6: Sistema de numeração romana.
Fonte: Shutterstock. Acesso em: 31/10/2019.
Um sistema de numeração é uma esquematização que repre-
senta uma grande quantidade de números de uma forma coerente 
e concisa, direcionando, a cada número, uma particular e única re-
presentação, refletindo em suas estruturas algébricas e aritméticas.
Tendo isso em mente, estudaremos os quatro grandes siste-
mas de numeração que são amplamente utilizados na matemática e 
computação, conforme mostra o Diagrama 5.
Diagrama 5: Principais sistemas de numeração.
Fonte: O autor
43
Sistema de numeração decimal 
O sistema de numeração decimal é instituído por dez dígitos: 0, 1, 
2,3, 4, 5, 6, 7, 8 e 9. Sua dinâmica ocorre pelo agrupamento de dez, 
sendo que cada algarismo é multiplicado por uma potência de 10, 
diferenciada pelo valor de seu expoente. Constitui um sistema po-
sicional, isto é, o valor de um algarismo é determinado pela posição 
que ocupa no numeral.
 ◼ Exemplo 1.
O número 671 é representado no sistema decimal da seguinte ma-
neira:
671 = 6 centenas + 7 dezenas + 1 unidade
671 = 6 · 102 + 7 · 101 + 1 · 100
 ◼ Exemplo 2.
O número 4125 é representado no sistema decimal da seguinte ma-
neira:
4125 = 4 unidades de milhar + 1 centena + 2 dezenas + 5 unidades
4125 = 4 · 103 + 1 · 102 + 2 · 101 + 5 · 100
Sistema de numeração binário 
O sistema de numeração binário é formado pelos algarismos 0 e 1, 
que são conhecidos como bits. No funcionamento desse sistema, 
cada algarismo que compõe o número é multiplicado por uma po-
tência de base dois, distinguida pelo valor atribuído a seu expoente.
 ◼ Exemplo3.
O número 111 é representado no sistema binário da seguinte manei-
ra:
(111)2 = 1 · 22 + 1 · 21 + 1 · 20
 ◼ Exemplo 4.
O número 101,01 é representado no sistema binário da seguinte ma-
neira:
44
(101,01)2 = 1 · 22+ 0 · 21+ 1· 20 + 0 · 2-1 + 1 · 2-2
Sistema de numeração octal 
No sistema de numeração octal, a base é 8 e cada posição é indicada 
por um múltiplo de uma potência de 8. Como o próprio nome suge-
re, é formado por oito algarismos, que originam outros números.
 ◼ Exemplo 5.
O número 532 é representado no sistema octal da seguinte maneira:
532 = 5 · 82 + 3 · 81 + 2 · 80
 ◼ Exemplo 6.
O número 982,5 é representado no sistema octal da seguinte ma-
neira:
982,5 = 9 · 82 + 8 · 81 + 2 · 80 + 5 · 8-1
Sistema de numeração hexadecimal 
O sistema de numeração hexadecimal possui base igual a 16, que é 
elaborada pelo conjunto dos seguintes algarismos: 0, 1, 2, 3, 4, 5, 
6, 7, 8, 9, A, B, C, D,E, F. Nesse sistema, existe a combinação entre 
letras e números. Assim, cada algarismo pode conter dezesseis pos-
sibilidades de símbolos. Ao findar todos os dígitos hexadecimais, a 
repetição começa com o incremento de outro dígito.Dessa maneira, 
a continuidade da sequência é dada por: 10, 11, 12, 13, 14, 15,16, 17, 18, 
19, 1A, 1B, 1C, 1D, 1E, 1F, 20, 21, 22, 23 etc.
 ◼ Exemplo 7.
O número 12412 é representado no sistema hexadecimal da seguinte 
maneira:
12412 = 307 C
 ◼ Exemplo 8.
O número 427 é representado no sistema hexadecimal da seguinte 
maneira:
427 = 01AB
45
Mudança de bases numéricas 
Antes de prosseguirmos com o conteúdo, vamos fazer uma breve 
revisão?
Aprendemos que os números podem ser representados em 
formatos diferentes,atrelados a sistemas posicionais que utilizam 
bases específicas.Nesse contexto, surge uma dúvida: de que manei-
ra é possível converter os números representados em bases posicio-
nais diferentes? Como alterar um número alocado em base decimal 
para uma base binária? E o processo inverso, como deve ser realiza-
do? Explicações a estas interrogações descobriremos a seguir!
Base binária para base decimal 
Para converter um número representado na base binária para a base 
decimal, é necessário realizar os seguintes passos:
 • escreva o número na base binária e relacione as potências da 
direita para a esquerda;
 • comece com o último algarismo mais à direita e associe a ele a 
multiplicação por 20;
 • adicione o número 1 a cada expoente, sempre da direita para 
a esquerda;
 • encerre quando o número de elementos presentes na listagem 
for equivalente à quantidade de algarismos presentes na re-
presentação binária;
 • realize a operação aritmética resultante, começando pelas 
multiplicações e,em seguida, as adições;
 • o resultado do somatório indica o número procurado.
 ◼ Exemplo 1.
(1001)2 = (?)10
( 1 0 0 1 )2 = 1 · 23 + 0 · 22 + 0 · 21 + 1 · 20
( 1 0 0 1 )2 = 1 · 8 + 0 · 4 + 0 · 2 + 1 · 1
( 1 0 0 1 )2 = 8 + 0 + 0 + 1
( 1 0 0 1 )2 = (9)10
46
Quando houver a existência de uma vírgula na representação biná-
ria, é indicação que há uma parte fracionária. Sendo assim, é neces-
sário lembrar que toda base elevada a um expoente negativo possui 
a propriedade de ser convertida a uma fração. 
DICA
Por exemplo:
Logo, o número 1001, representado na base binária, equivale 
a 9 na representação decimal.
 ◼ Exemplo 2.
(110101)2 = (?)10
( 1 1 0 1 0 1 )2 = 1 · 25 + 1 · 24 + 0 · 23 + 1 · 22 + 0 · 21 + 1 · 20
( 1 1 0 1 0 1 )2 = 1 · 32 + 1 · 16 + 0 · 8 + 1 · 4 + 0 · 2 + 1 · 1
( 1 1 0 1 0 1 )2 = 32 + 16 + 0 + 4 + 0 + 1
( 1 1 0 1 0 1 )2 = (53)10
Logo, o número 110101, representado na base binária, equiva-
le a 53 na representação decimal.
 ◼ Exemplo 3.
(10,01)2 = (?)10
( 1 0 ,0 1 )2 = 1 · 21 + 0 · 20 + 0 · 2-1 + 1 · 2-2
( 1 0 ,0 1 )2 = 1 · 2 + 0 · 1 + 0 · 0,5 + 1 · 0,25
( 1 0 ,0 1 )2 = 2 + 0 + 0 + 0,25
( 1 0 ,0 1 )2 = (2,25)10
Logo, o número 10,01, representado na base binária, equivale 
a 2,25 na representação decimal.
47
Assim, conseguimos determinar os outros termos relativos à repre-
sentação binária.
 ◼ Exemplo 4.
(10,111)2 = (?)10
(1 0 ,1 1 1)2 = 1 · 21 + 0 · 20 + 1 · 2-1 + 1 · 2-2 + 1 · 2-3
(1 0 ,1 1 1)2 = 1 · 2 + 0 · 1 + 1 · 0,5 + 1 · 0,25 + 1 · 0,125
(1 0 ,1 1 1)2 = 2 + 0 + 0,25 + 0,125
(1 0 ,1 1 1)2 = (2,375)10
Base decimal para base binária
O processo de conversão de um número indicado na base decimal 
para a base binária é diferenciado para a parte inteira e a parte deci-
mal (se houver). Assim,conheceremos as duas técnicas.
A transformação da parte inteira, ou o método das divisões 
sucessivas, é guiada pelas seguintes orientações:
 • divida o número inteiro por 2;
 • divida novamente o quociente da divisão anterior por 2;
 • repita o processo de divisão por 2 até obter o último quociente 
igual a 1.
O número binário é obtido pela escrita do último quociente e 
seusrespectivos restos referentes às divisões. Além disso, eles são 
lidos sempre em sentido inverso.
Quando o número for composto por uma porção fracionária, 
ou seja, quando ele for decimal, utilizamos o método das multipli-
cações sucessivas, que é orientado pelos seguintes passos:
 • multiplique a parte fracionária por 2;
 • do resultado obtido, a parte inteira será o primeiro dígito do 
número em base binária. Caso haja parte fracionária restante, 
ela deverá ser multiplicada novamente por 2;
 • o processo é repetido até se obter o número 0 na parte fracio-
nária da última multiplicação.
48
 ◼ Exemplo 1.
(14)10 = (?)2
Tabela 1: conversão da base decimal para a base binária do exemplo 1.
A leitura é realizada sempre no sentido contrário e a partir do 
quociente 1.Assim, o número 14, indicado na base decimal, possui 
representação binária dada por 
 ◼ Exemplo 2.
( 1 1 1 0 )2.
(41)10 = (?)2
Tabela 2: conversão da base decimal para a base binária do exemplo 2.
Considerando a leitura no sentido contrário a partir do quo-
ciente 1, concluímos que o número 41, indicado na base decimal, 
possui representação binária dada por
(1 0 1 0 0 1)2.
49
 ◼ Exemplo 3.
(0,1875)10 = (?)2
0,1875 · 2 = 0,375
0,375 · 2 = 0,75
0,75 · 2 = 1,50
0,50 · 2 = 1,00
Como a parte inteira é zero, ela permanece inalterada. Já a 
leitura, é feita baseada na parte inteira provinda dos resultados das 
multiplicações e segue o sentido de cima para baixo. Logo, o número 
0,1875 possui representação binária equivalente a 
(0,0 0 1 1)2.
Nesta situação, de um número composto por uma parte in-
teira e outra decimal,é necessário realizar um procedimento ade-
quado para número inteiro e outro para a porção decimal.
 ◼ Exemplo 4.
(85,375)10 = (?)2
Tabela 3: conversão da base decimal para a base binária do exemplo 3 – 
parte inteira.
Para a parte decimal, é necessário realizar o seguinte proce-
dimento: 
0,375 · 2 = 0,75
0,75 · 2 = 1,50
0,50 · 2 = 1,00
Assim, é possível concluir que a representação binária para o 
número 85,375 é 
(1 0 1 0 1 0 1 ,0 1 1)2.
50
Observe que todas as representações binárias são passíveis de con-
ferência. Assim, ao optar em conferir se o resultado encontrado está 
realmente correto, basta realizar o processo inverso, ou seja, seguir 
os parâmetros para conversão da base binária para a base decimal. 
DICA
Sistema e Aritmética de ponto flutuante 
A necessidade de representar computacionalmente números muito 
extensos,sejam muito grandes ou números muito pequenos, justi-
fica a utilização da representação em ponto flutuante, que consiste 
em uma versão da notação científica tendo a base binária como re-
ferência. A representação em Aritmética de ponto flutuante é muito 
utilizada na computação digital. Um exemplo disso são as calcula-
doras científicas.
Um número real (R) é representado internamente em um 
computador por meio de uma série de impulsos elétricos que apon-
tam dois resultados possíveis:0 ou 1, indicando a utilização de uma 
base binária.Cada número representado em ponto flutuante está 
relacionado com três outros números: mantissa, expoente (valor 
mínimo e máximo) e base.
A mantissa é a parte do número que representa seus dígitos 
significativos. O expoente está associado à base utilizada e a base 
corresponde ao sistema que opera a máquina. Outro componen-
te importante é t, que revela o número de dígitos significativos do 
sistema de representação, também definido por ser a precisão da 
máquina.
De acordo com Franco, autor do livro Cálculo Numérico, publi-
cado em 2006,um número x, representado no sistema de numera-
ção de ponto flutuante é dado por:
x = mantissa · βe
x = ± 0, d1, d2, d3 …dt· β
e
Felipe Costa
Destacar
Felipe Costa
Destacar
Felipe Costa
Destacar
Felipe Costa
Destacar
51
Em que é possível identificar os componentes:
 • β é a base de operações aritméticas da máquina;
 • e é o expoente que está compreendido no intervalo -m ≤ e ≤ M, 
em que (m,M ∈N);
 • t é a quantidade de dígitos da mantissa, em que d1 ≠ 0, 0 ≤ di< 
β, i = 1, 2, 3, …t.
De maneira prática e resumida, todas as informações neces-
sárias para um sistema de ponto flutuante serão apresentadas da 
seguinte forma:
F (β,t,m,M)
Bem, considere um sistema de ponto flutuante descrito por:
F (2, 5, -4, 4)
Sendo que:
 • a base é binária;
 • a precisão equivale a 5;
 • -4 indica o valor mínimo para o expoente;
 • 4 indica o valor máximo para o expoente.
É indicado que exista uma forma normalizada de representa-
ção numérica.Para tanto, em nosso contexto, utilizaremos somente 
mantissas normalizadas.Uma mantissa se encontra normalizada 
quando é constituída unicamente por uma parte fracionária (não 
existe parte inteira) e quando o primeiro dígito à direita da vírgula 
for diferente de 0, ou seja, considerando o sistema numérico biná-
rio,só existe a possibilidade de ser o algarismo 1.
Destaca-se que um número não normalizado é passível de 
normalização.Para isso, basta realizar deslocamentos da mantissa 
para a direita ou esquerda e incrementos ou decrementos do ex-
poente, respectivamente.
Para manter a magnitude, ou seja, o tamanho do número, é 
necessário a multiplicação pela base elevado a um expoente com-
posto pela quantidade de casas que a vírgula for deslocada. O sinal 
que o acompanhará será positivo caso o deslocamento aconteça 
para a esquerda e será negativo quando ocorrer para a direita.
Felipe Costa
Destacar
52
 ◼ Exemplo 1.
Considere a seguinte representação binária não normalizada:
(-111,101)2
Para normalizá-la, é necessário deslocar a vírgula três casas 
para a esquerda, de modo que o primeiro algarismo antes da vírgula 
seja igual a 0. Logo, seu formato será:
(-0,111101)2
Assim, a versão normalizada pode ser descrita por:
(-0,111101 · 23)2
Aprendemos como identificar se a representação numérica 
está normalizada.No entanto, como converter um número retratado 
por uma base numérica qualquer para o sistema de ponto flutuante? 
Basta seguirmos os três passos descritos a seguir:
 • 1°: verifique se a base é igual à solicitada;
 • 2°: converta, caso necessário, o número para a base indica-
da;
 • 3°: normalize.
 ◼ Exemplo 2.
Escreva o número (-3,625)10 no sistema F (10, 5, -3, 3).
 • 1°: observe que a base do sistema é 10, igual à da represen-
tação numérica.Logo, não é necessário o segundo passo, uma 
vez que não haverá conversão.
 • 2°: normalize. Será necessário deslocar a vírgula uma casa à 
esquerda.Logo, a base 10 deverá ter o expoente igual a 1.
Sendo assim, a resposta correta é:
(-0,3625 · 101 )10
 ◼ Exemplo 3.
Escreva o número (-3,625)10 no sistema F (2, 5, -3, 3).
 • 1°: a base é diferente. Logo, há a necessidade de conversão;
53
 • 2°: Para converter uma base decimal em uma binária, é pre-
ciso utilizar o método das divisões sucessivas para a parte in-
teira (Tabela 4); e o de multiplicações sucessivas para a parte 
decimal. Esses cálculos podem ser vistos a seguir.
Tabela 4: divisões sucessivas para a parte inteira.
Multiplicações sucessivas para a parte decimal:
0,625 · 2 = 1,25
0,25 · 2 = 0,50
0,50 · 2 = 1,00
Assim, a representação binária para o número -3,625 é:
(1 1, 1 0 1 )2.
 • 3° Normalize: para normalizar é necessário deslocar a vírgula 
duas casas para a esquerda. Logo, a base 2 terá um expoente 
de número 2 positivo (22).
A resposta correta é:
(-0,1 1 1 0 1 · 22 )2
 ◼ Exemplo 4.
Escreva o número (11,01)2 no sistema F (2, 4, -5, 5).
 • 1°: observe que a base do sistema é 2, igual à da representação 
numérica.Logo, não se torna necessário o segundo passo, uma 
vez que não haverá conversão;
 • 2°: normalize. Será necessário deslocar a vírgula duas casas 
para a esquerda. Logo, a base 2 deverá ter o expoente igual a 
+2.
Logo, a representação neste sistema de ponto flutuante será:
(0,1101 · 22 )2
 ◼ Exemplo 5.
Escreva o número (11,01)2 no sistema F (10, 3, -3, 3).
54
 • 1°: as bases são distintas. Logo, existe a necessidade de con-
versão;
 • 2°: para converter uma base binária em umadecimal, é preci-
so realizar produtos entre a base 2:
(11,01)2 = (?)10
( 1 1 , 0 1 )2 = 1 · 21 + 1 · 20 + 0 · 2-1 + 1 · 2-2
( 1 1 ,0 1 )2 = 1 · 2 + 1 · 1 + 0 · 0,5 + 1 · 0,25
( 1 0 ,1 1 1 )2 = 2 + 1 + 0 + 0,25
( 1 1 ,0 1 )2 = (3,25)10
 • 3°: para normalizar, é necessário deslocar uma casa para a es-
querda.Logo, a base 10 terá um expoente um positivo. Assim, 
a representação adequada para esse sistema é:
(0,325 · 101 )10
 ◼ Exemplo 6.
Escreva o número (0,00012238)10 no sistema F (10, 5, -3, 3).
 • 1°: observe que as bases são 10. Logo, é necessário realizar o 
segundo passo, uma vez que não haverá conversão;
 • 2°: será necessário deslocar a vírgula por três casas à direita. 
Logo, a base10 deverá ter o expoente igual a -3.
A representação nesse sistema de ponto flutuante é:
(0,12238 · 10-3 )10
Como sabemos, o conjunto de números reais é ilimitado, ou 
seja, infinito.Todavia, sua representação em um sistema de ponto 
flutuante não é o que o torna limitado, isto é, um sistema finito.
Essa limitação atribuída ao sistema de ponto flutuante é 
oriunda de duas vertentes: faixa do expoente limitada, sendo de-
limitada por um valor mínimo e outro máximo, e a mantissa, que 
também indica um número finito de números.
Sempre que uma operação matemática gera um número 
com expoente acima do expoente máximo, tem-se o overflow. As 
operações que resultam em expoente abaixo do expoente mínimo, 
por sua vez, sofrem underflow.
Felipe Costa
Destacar
55
De forma mais simplificada, é possível afirmar que um erro 
ocasionado por overflow acontece quando um número é muito gran-
de para ser representado.Em contrapartida, um erro de underflow é 
gerado quando um número é muito pequeno para ser representado.
Uma dúvida que pode aparecer é a seguinte: como determi-
nar o maior e o menor número em um sistema de ponto flutuante, 
uma vez que ele é limitado?Bem, vamos resolver dois exercícios, de 
modo a sanar tal questionamento.
 ◼ Exemplo 7.
Admita um sistema de ponto flutuante descrito por F (2, 3, 
-3, 3). A partir disso, determine:
a) O maior número representável nesse sistema.
Como o desejado é o maior número, ele pode ser descrito por:
xn = 0,111 · 23
Uma vez que a maior mantissa no sistema binário é o 1 1 1 e o 
maior expoente,conforme especificações, é o 3. Logo, convertendo 
para a base decimal,tem-se:
xn = (1 · 2-1 + 1 · 2-2 + 1 · 2-3) · 23 = 7
Assim, em um sistema flutuante F (2, 3, -3, 3), o maior valor 
passível de representação é o 7.
b) O menor número representável nesse sistema.
Como o desejado é o menor número, ele pode ser descrito por:
xn = 0,100 · 2-3
Uma vez que a menor mantissa no sistema binário é 1 0 0 e o 
menor expoente,conforme especificações, é o -3. Logo, converten-
do para a base decimal,tem-se:
xn = (1 · 2-1 + 0 · 2-2 + 0 · 2-3) · 2-3 = 0,0625
Assim, em um sistema flutuante F (2, 3, -3, 3), o menor valor 
passível de representação é o 0,0625.
Uma linguagem de programação é uma notação projetada para co-
nectar instruções a uma máquina ou um computador. As linguagens 
de programação são usadas, principalmente, para controlar o de-
Linguagens de programação 
Felipe Costa
Destacar
56
sempenho de uma máquina ou para expressar algoritmos. Existem 
milhares de linguagens de programação implementadas, algumas 
para objetivos gerais e outras para fins específicos.Muitas destas 
linguagens precisam ser declaradas de forma imperativa, enquanto 
outras utilizam a forma declarativa. O programa pode ser dividido 
de duas formas: como sintaxe e como semântica.
Pensa-se que o primeiro computador programável a ser 
projetado (embora nunca tenha sido realmente concluído) seja o 
Analytical Engine, concebido em 1835 por Charles Babbage, e des-
tinado a ser usado para resolver problemas computacionais gerais. 
Nesse esforço, Babbage foi assistido porLady Ada Lovelace, que hoje 
é amplamente considerada a primeira programadora de computa-
dor. Ela introduziu muitos conceitos de programação em uso até 
hoje, incluindo o uso de loops para lidar com tarefas repetitivas e o 
uso de sub-rotinas que podem ser chamadas de qualquer lugar den-
tro de um programa.
O primeiro computador eletromecânico programável foi 
construído na Alemanha,em 1941, por Konrad Zuse, embora seu 
significado pareça ter sido ignorado pelos militares alemães.
Durante a década de 1940, vários outros cientistas da com-
putação começaram a desenvolver a ideia de computadores com 
programas armazenados,nos quais as instruções e os dados podiam 
ser gravados na memória do computador. Um artigo de 1936 do ma-
temático Alan Turing havia descrito tal máquina. Turing publicou 
especificações de projeto detalhadas para um programa de compu-
tador em 1946, mas um artigo publicado por John Von Neumann, 
em 1945, foi mais amplamente divulgado e, consequentemente,re-
cebeu muito mais atenção.
Sistemas de computador existentes, como o computador 
Colossus, usado pelos britânicos durante a guerra para decifrar os 
códigos militares alemães, e o computador ENIAC, usado após a 
guerra pelos americanos para desenvolver a bomba de hidrogênio, 
foram programados ajustando interruptores e controlando dados.
O Diagrama 6 demonstra a organização dos diferentes para-
digmas de programação.Daremos ênfase em cada um destes para-
digmas, e citaremos conceitualmente as principais linguagens rela-
cionadas a eles.
57
Diagrama 6: paradigmas de linguagem de programação.
Fonte: O autor
Cada linguagem tende a suportar um paradigma (ou estilo) particu-
lar de programação. Embora vários fatores possam afetar a escolha 
da linguagem de programação para uma tarefa específica, incluindo 
preferência pessoal, política corporativa ou simplesmente a dis-
ponibilidade de conhecimento e experiência interna suficientes, a 
linguagem selecionada deve ser a mais adequada para a tarefa em 
questão. Qualquer que seja a linguagem escolhida, os seguintes re-
cursos são comuns à maioria:
 • Entrada: obtenha dados de um dispositivo de entrada, como 
uma unidade de disco ou o teclado;
 • Saída: envie dados para um dispositivo de saída, como uma 
unidade de disco, unidade de exibição visual, impressora ou 
adaptador de rede;
 • Aritmética e lógica: execute operações aritméticas, como 
adição e multiplicação,e operações lógicas, como comparar o 
valor de duas variáveis;
Paradigmas 
Vamos estudar agora sobre os diferentes paradigmas de lin-
guagens de programação e as diferenças entre eles.
58
 • Execução condicional: execute um conjunto diferente de ins-
truções do programa, dependendo de uma condição especifi-
cada ser verdadeira ou falsa;
 • Repetição: execute um conjunto de instruções do programa 
repetidamente,até que alguma condição de saída seja avalia-
da como verdadeira (um loop condicional)ou para um número 
especificado de iterações (um loop de contagem).
Serão apresentados a seguir os principais paradigmas de pro-
gramação. Entretanto,vale reforçar que, atualmente, as linguagens 
de programação são multiparadigmas,ou seja, uma mesma lingua-
gem pode possuir dois ou mais paradigmas.
Paradigma imperativo
A palavra "imperativo" vem do latim impero, que significa "eu or-
deno". É a mesma palavra que originou "imperador", e esta relação 
é bastante adequada.Neste paradigma, o desenvolvedor é o im-
perador. Você dá ao computador pequenas ordens e ele as executa 
uma de cada vez e as informa.
O paradigma consiste em várias instruções e, após a execução 
de todas elas, o resultado é armazenado. Trata-se de escrever uma 
lista de instruções para informar ao computador o que fazer, passo 
a passo. Os exemplos de algoritmos que vimos até aqui são impera-
tivos.
Em um paradigma de programação imperativo, a ordem das 
etapas é crucial,porque uma determinada etapa terá consequências 
diferentes, dependendo dos valores das variáveis no momento em 
que a etapa é executada.
O fluxo de controle na programação imperativa é explícito: os 
comandos mostram como a computação ocorre, passo a passo. Cada 
etapa afeta o estado global

Continue navegando