Logo Passei Direto
Buscar
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

ALGORITMOS E PROGRAMAÇÃO I
Mário Roberto Klein Junior
SUMÁRIO
Esta é uma obra coletiva organizada por iniciativa e direção do CENTRO SU-
PERIOR DE TECNOLOGIA TECBRASIL LTDA – Faculdades Ftec que, na for-
ma do art. 5º, VIII, h, da Lei nº 9.610/98, a publica sob sua marca e detém os 
direitos de exploração comercial e todos os demais previstos em contrato. É 
proibida a reprodução parcial ou integral sem autorização expressa e escrita.
CENTRO UNIVERSITÁRIO UNIFTEC
Rua Gustavo Ramos Sehbe n.º 107. Caxias do Sul/ RS 
REITOR
Claudino José Meneguzzi Júnior
PRÓ-REITORA ACADÊMICA
Débora Frizzo
PRÓ-REITOR ADMINISTRATIVO
Altair Ruzzarin
DIRETOR DE ENSINO A DISTÂNCIA (EAD) 
Rafael Giovanella
Desenvolvido pela equipe de Criações para o Ensino a Distância (CREAD)
Coordenadora e Designer Instrucional 
Sabrina Maciel
Diagramação, Ilustração e Alteração de Imagem
Igor Zattera, Thaís Munhoz 
Revisora
Luana dos Reis
ALGORITMO 5
FRITANDO UM OVO 7
CONSTRUINDO UM ALGORITMO 9
RESUMINDO O CAPÍTULO 18
VARIÁVEIS: TIPOS DE DADOS E OPERADORES 19
TIPOS DE DADOS 20
OPERADORES 23
TABELA VERDADE 25
PRECEDÊNCIA DE OPERADORES 26
COLOCANDO EM PRÁTICA 27
RESUMINDO O CAPÍTULO 30
VISUALG 31
DOWNLOAD 32
INTERFACE DO VISUALG 32
UTILIZANDO O VISUALG PARA CRIAR E EXECUTAR ALGORITMOS 35
EXECUTANDO O ALGORITMO 36
EXECUTANDO O ALGORITMO PASSO A PASSO 37
ESTRUTURAS CONDICIONAIS 39
ESTRUTURA SE-ENTÃO 40
ESTRUTURA SE-ENTÃO-SENÃO 41
EXPRESSÕES CONDICIONAIS COMPOSTAS 43
ESTRUTURA DE SELEÇÃO ANINHADA 44
ESTRUTURA DE SELEÇÃO MÚLTIPLA ESCOLHA 47
RESUMINDO O CAPÍTULO 52
ESTRUTURAS DE REPETIÇÃO 53
ESTRUTURA DE REPETIÇÃO DE NÚMEROS DEFINIDOS 54
ESTRUTURAS DE REPETIÇÕES DE NÚMEROS INDEFINIDOS 60
RESUMINDO O CAPÍTULO 64
3ALGORITMOS E PROGRAMAÇÃO I
APRESENTAÇÃO
Prezado, aluno! Seja bem-vindo à disciplina de Algoritmo e programação I! 
Levando em conta que você está realizando um curso superior voltado a área 
de tecnologia, a minha pergunta é óbvia, mas não custa fazê-la.
Quão importante o computador é na sua vida?
Se você respondeu: “muito”, estamos pensando da mesma maneira. Ago-
ra, o motivo pelo qual eu fiz essa pergunta? Porque ela me leva a uma próxima 
pergunta. Você já parou para pensar em como o seu computador funciona? Aqui, 
quando eu falo computador, não estou me referindo somente aos dispositivos que, 
comumente, aprendemos a chamar de computador. O nosso velho desktop ou o 
não tão novo notebook ou laptop. Hoje em dia, temos computadores nos nossos 
bolsos (smartphones), na nossa parede da sala (smart TV’s) ou até nos nossos 
pulsos (relógios). Entretanto, vamos voltar 
a pergunta. Você já parou para pensar em 
como esses dispositivos fazem o que dese-
jamos que façam? Como que, quan-
do pegamos nosso celular e abrimos 
o WhatsApp, podemos em poucos 
segundos enviar uma mensagem 
para alguém que está do 
outro lado do mundo?
Então, vou lhe contar um segredo, são programas que realizam as seguintes funções; é por 
causa deles que conseguimos fazer o que desejamos com nossos computadores. Também é por causa 
deles que estamos aqui, para começar a aprender um pouco sobre como eles funcionam.
Nossos computadores executam uma função simples e bem definida: PROCESSAR DADOS. 
Você deve estar se perguntando, mas que dados são esses e que tipo de processamento é esse? 
Vamos por partes, desde o momento em que ligamos o computador, a principal função dele é 
processar dados de maneira pela qual ele foi programado. Esses dados podem vir de diversas fon-
tes, desde nosso mouse, teclado ou HD, até de fontes mais “distantes”, como a internet. Tudo para o 
computador se trata de dados, desde a tela que está sendo exibida no monitor, até quando o navega-
dor da internet retorna alguma busca realizada.
Vamos levar em conta esse exemplo da busca realizada no navegador. O navegador é um aplica-
tivo ou programa (como você preferir). Esse aplicativo é responsável por pegar seus dados de entrada 
do teclado (quando você digita o que quer buscar), enviá-los através da internet para outro compu-
tador, receber os dados retornados por este outro computador e mostrá-los na tela para você.
Se você não conhece o Whatsapp, sugiro que abra o seu buscador preferido na 
internet e dê uma rápida lida e volte aqui para continuarmos.
4ALGORITMOS E PROGRAMAÇÃO I
APRESENTAÇÃO
Todo esse processo é realizado através de uma programação que foi 
realizada para que funcionasse da maneira que nós esperamos.
Essa programação é o que aprenderemos daqui para frente (não so-
mente nessa disciplina). Vamos começar a entender que tudo começa com a 
lógica necessária para darmos as instruções para que o computador realize 
o processamento dos dados. Depois, aprenderemos como estruturar essa ló-
gica em uma linguagem específica que está mais perto da linguagem que o 
computador entende, e começaremos a criar nossos primeiros programas, 
utilizando uma linguagem de programação real, que é possível ser utilizada 
para criar diversos programas.
No entanto, vamos começar com um passo de cada vez. E esse passo co-
meça por entendermos o que é, como funciona e como se cria um Algoritmo.
5
ALGORITMO
Do ponto de vista da informática, um algoritmo é o conjunto das regras e 
procedimentos lógicos, perfeitamente definidos, que levam à solução de 
um problema em um número finito de etapas.
6ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Suponha que você receba as seguintes instruções:
1. Vá até o supermercado.
2. Encontre o corredor dos cafés.
3. Busque pelo café mais barato.
4. Pegue 3 unidades.
5. Dirija-se ao caixa.
6. Pague em dinheiro.
7. Volte para casa.
8. Prepare um café quente e saboroso.
Você é capaz de executar essas instruções perfeitamente?
Se você consegue seguir essas instruções, saiba que é exatamente assim que um computa-
dor trabalha, o tempo todo.
Deixando um pouco de lado a sátira dessa lista de instruções, é importante en-
tender que ela respeita uma sequência lógica (se mudarmos a ordem de alguma delas 
o resultado poderá não ser o mesmo) e tem um objetivo bem definido para a resolução 
do problema da falta de café em casa.
O que muda dessa lista de instruções para um programa de computador que você 
está acostumado a utilizar, é que os programas possuem uma linguagem específica e 
são um pouco mais complexos. Quero dizer, muito mais complexos. Mas não se assus-
te, com o tempo você aprenderá que a complexidade para desenvolver a solução de um 
problema está, diretamente, ligada ao seu conhecimento sobre o problema e as ferra-
mentas que você tem disponível para resolvê-lo.
 Pronto! Agora que você já entendeu o que é um algoritmo, você está pronto para 
programar um aplicativo em seu computador. Bem-vindo ao maravilhoso mundo da 
programação! Você já é um programador profissional!
Brincadeiras a parte, vamos começar a modelar os nossos problemas em sequên-
cias lógicas de instruções.
Importante: caso você ainda não saiba, aprenderá, 
empiricamente, que “programadores são ferramentas projetadas 
para converter cafeína em código”.
7ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
FRITANDO UM OVO
Agora, que você já teve o primeiro contato com 
uma sequência de instruções, comece a criar uma outra 
para direcionar o processo para fritar um ovo. 
Primeiramente vamos definir algumas regras:
• Crie o máximo possível de instruções. Tenha em 
mente que quem executará estas instruções não 
possui nenhum conhecimento prévio de como fun-
ciona uma cozinha, aonde as coisas estão e como 
elas funcionam.
• Leve em conta que quem executará tais instruções 
já se encontra dentro da cozinha.
• Apesar de não conhecer nada da cozinha, o exe-
cutor sabe identificar as coisas. Se uma instrução 
for, por exemplo, “Abrir a geladeira”, ele saberá 
como fazer isso.
Agora pare de ler um pouco e faça esse exercício, 
escrevendo em um papel todas as instruções.
VALIDANDO A SOLUÇÃO
Vou agora descrever a minha solução para o problema dado:
1. Abra a porta da geladeira.
2. Na porta dageladeira, encontre a bandeja de ovos.
3. Pegue um ovo.
4. Feche a porta da geladeira.
5. Coloque os ovos sobre a pia.
6. Abra a porta do armário.
7. Junto às panelas, encontre uma frigideira.
8. Pegue a frigideira.
9. Coloque sobre uma boca vazia do fogão.
10. Junto aos temperos, encontre o azeite.
11. Pegue o azeite.
12. Coloque a quantia necessária de azeite para cobrir o fundo da frigideira.
13. Guarde novamente o azeite.
14. Próximo aos talheres, encontre uma escumadeira.
15. Coloque sobre a pia.
8ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
16. Feche o armário.
17. Ligue a boca do fogão cuja panela encontra-se sobre.
18. Bata suavemente a casca do ovo (mais ou menos no 
meio) contra a pia.
19. Com as duas mãos abra o ovo sobre a frigideira.
20. Abra o armário.
21. Próximo aos temperos, localize o pote com sal.
22. Pegue o pote.
23. Feche o armário.
24. Abra o pote.
25. Coloque uma pitada de sal sobre o ovo que se encon-
tra na frigideira.
26. Tampe o sal e coloque-o em cima da pia.
27. Quando a clara estiver branca e a gema estiver leve-
mente mole, desligue o fogo.
28. Abra o armário.
29. Localize um prato.
30. Pegue e segure-o consigo.
31. Feche o armário.
32. Pegue a escumadeira que está sobre a pia.
33. Com cuidado para não estourar a gema, retire o ovo da frigideira.
34. Coloque-o no prato.
35. FIM!!!
Ufa! Essa foi a receita para fazer um ovo frito mais extensa que eu já 
vi no mundo. 
E A SUA RECEITA? FICOU IGUAL?
Aposto que não. Assim como nas receitas de culinária de verdade, 
não existe uma única forma de se criar uma sequência de instruções para 
a resolução de um problema. Isso também acontece com os programas de 
computador. Dependendo de quem for o programador, o algoritmo utili-
zado pode ser completamente diferente, porém, ambos podem chegar ao 
mesmo resultado final. 
Isso também acontecerá com os exemplos de algoritmos que iremos 
produzir durante toda a disciplina. Procure não se preocupar muito com a so-
lução dada por mim e com a solução que você produzir. Procure sempre iden-
tificar se você conseguiu atingir o objetivo, que é a resolução do problema.
IMPORTANTE, NÃO SE 
PREOCUPE MUITO COM 
ISSO, AGORA!
As soluções costumam 
ser diferentes, porém, a 
resolução do problema 
deve ser sempre o principal 
objetivo; ele deve ser 
efetivo.
Quando você estiver 
escrevendo um algoritmo, 
saiba também, que às 
vezes temos que produzir o 
melhor algoritmo; ele deve 
ser, também, eficaz.
9ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Agora que já estamos entendidos sobre o que é um algoritmo, qual a sua função e como ele fun-
ciona, precisamos entender como se constrói um “algoritmo de verdade”.
CONSTRUINDO UM ALGORITMO
Para construir um algoritmo, precisamos seguir alguns passos importantes para que ele faça 
corretamente o que precisamos que faça. Vamos a eles:
1. Estudar e entender tudo sobre o problema a ser resolvido, para que nenhuma informação seja 
desconsiderada enquanto estivermos escrevendo nosso algoritmo.
2. Estruturar quais são os dados que são necessários informar para que o nosso algoritmo tenha 
um bom funcionamento. Chamamos esses de dados de entrada.
3. De forma lógica, pensar como esses dados devem ser processados para que o algoritmo re-
solva o problema.
4. Estruturar quais são os dados que representam a solução do problema. Estes, chamamos de 
dados de saída.
5. Finalmente, construiremos o algoritmo utilizando o formato necessário para que ele funcione.
Note no passo 5, que eu falei sobre formato necessário. Isso quer dizer que existe mais de um 
tipo de se representar um algoritmo. Vamos entender alguns tipos que nos servirão de base para 
criarmos nossos algoritmos:
TIPOS DE REPRESENTAÇÃO DE ALGORITMOS
Conforme comentei anteriormente, existe mais de um tipo para represen-
tarmos nossos algoritmos. Cada um com a sua característica e sua função no pro-
cessamento, representação e entendimento do nosso problema.
DESCRIÇÃO NARRATIVA
Essa é a forma que acabamos de ver. Sim, a lista de instruções é uma ma-
neira de representação de algoritmos. Ela é ótima para entendermos o problema 
e quais são os passos necessários para resolvê-lo. E você não precisou aprender 
nada de diferente. Mas ela não é perfeita. Vamos supor o passo 18 do nosso exem-
plo de como fritar um ovo.
Bata suavemente a casca do ovo (mais ou menos no meio) contra a pia.
Essa instrução está sujeita a interpretações diferentes, considerando quem 
irá executá-la. Certo? Suavemente, para mim pode ser diferente do que é para 
você. Isso quer dizer que esse formato pode não ser tão eficaz, visto que, ele está 
sujeito à interpretação de quem o executa.
Vamos ao próximo formato:
10ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
FLUXOGRAMA
Você sabe o que é um fluxograma e como se monta um? Vou te 
dar um exemplo de fluxograma:
Quando olhamos um desenho como esse, uma coisa fica ób-
via: a sequência dos passos a serem seguidos. Mas. por outro lado, 
ele exige que conheçamos quais os símbolos que foram utilizados 
para representar cada um dos passos. Isso não é necessariamente 
um problema, pois, formalmente, é definida a linguagem utilizada.
O que pode ser sim, um problema, quando utilizamos esse 
formato, e quando estamos representando os passos para a so-
lução de um problema muito complexo, que pode ficar muito ex-
tenso, impossibilitando uma visão clara de todo o processo.
Isso não quer dizer que ele não é utilizado, só pode não ser a 
melhor forma para que representemos os nossos problemas, pre-
tendendo que o computador os resolva.
Um pouco mais próximo do que é utilizado para a programa-
ção dos nossos computadores, temos o nosso próximo formato:
PSEUDOCÓDIGO – PORTUGUÊS ESTRUTURADO
Esse é o formato que trabalharemos nossos primeiros al-
goritmos daqui para frente. Ele é chamado de pseudocódigo, 
porque não é uma linguagem de programação propriamente 
dita, todavia ele se aproxima bastante, pois é construído utili-
zando a Língua Portuguesa.
Vamos entender como representar o nosso algoritmo utili-
zando um exemplo real, mas para isso, precisamos seguir nossos 
5 passos para a construção de um algoritmo.
Importante: não é um requisito para 
o aprendizado da programação, mas 
é muito importante que você tenha 
algum certo conhecimento da língua 
inglesa, pois a maioria das linguagens 
de programação utilizam essa língua 
como base.
11ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Definição do problema:
Faça um algoritmo que leia do usuário 3 números e calcule a média entre 
eles, escrevendo-a.
1. Problema: o problema a ser resolvido pelo nosso algoritmo é o cálculo da mé-
dia aritmética entre três números quaisquer, que serão informados durante a 
execução do algoritmo. Sabemos, da Matemática, que para realizar o cálculo 
da média aritmética de 3 números devemos somá-los e dividi-los por 3.
2. Definir dados de entrada: conforme a nossa definição do problema, os 3 nú-
meros, cuja média será calculada, serão informados durante a execução do 
algoritmo, logo, esses são os nossos dados de entrada.
3. Processamento: os passos são:
a. Leitura dos dados
b. Cálculo da média – (N1 + N2 + N3) / 3
c. Escrita da média
4. Definir dados de saída: nesse problema, o que desejamos é que a média cal-
culada seja escrita, nesse caso, nosso dado de saída é a própria média.
5. Criar o algoritmo: para criar nosso algoritmo em português estruturado, precisamos primeiro 
entender como se estrutura um algoritmo nesse formato. 
ESTRUTURA DE UM ALGORITMO EM PORTUGUÊS ESTRUTURADO
Um algoritmo em português estruturado possui um formato bem definido com comandos igual-
mente bem definidos.
Vamos entender como é o formato básico de um algoritmo?
Agora, aprenderemos o significado de cada linha.
Linha 1 – a palavra reservada “algoritmo” indica que estamos iniciando um novo algoritmo e 
que o nome desse algoritmo está na sequência entre aspas.
Importante: durante o decorrer deste material, sempre que forexibido um 
algoritmo, seja ele em português estruturado ou em linguagem de programação 
(mais adiante iniciaremos com linguagens reais que nos permitam criar 
programas) será utilizada uma fonte monoespaçada e no formato utilizado abaixo.
12ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Linha 2 – a palavra reservada “var” indica que estamos iniciando a sessão do 
nosso algoritmo responsável pela declaração das variáveis. Variáveis, como na Mate-
mática, são responsáveis por guardar um determinado valor, porém, o algoritmo não 
armazena valores numéricos. 
Linha 3 – as duas barras indicam que está sendo iniciado um comentário, ou seja, 
tudo o que vem após as barras não será considerado parte do algoritmo e só está ali para 
servir de comentário. Nesse caso, está indicando que estamos dentro da seção de decla-
ração de variáveis, que aprenderemos mais adiante.
Linha 4 – quando, após a seção de declaração de variáveis, for encontrada a pala-
vra reservada “inicio” (note que não tem acento, assim como em todo o algoritmo não 
se utiliza acentos, espaços e caracteres especiais com exceção do “_” – underline – que 
pode ser utilizado para separação de palavras) indica que terminamos a seção de decla-
ração de variáveis e iniciamos o processamento do nosso algoritmo.
Linha 5 – igualmente à linha 3, é o comentário, informando que estamos dentro da 
seção de processamento do algoritmo, ou seja, o corpo do nosso algoritmo. É no corpo 
que passos para a resolução do nosso problema serão listados em ordem.
Linha 6 – quando, após os comandos do corpo do nosso algoritmo, forem encon-
tradas as palavras reservadas “fimalgoritmo”, sem espaço, estaremos informando que 
nosso algoritmo terminou. Nada virá após.
Importante: palavras reservadas são palavras que não podem ser utilizadas 
como variáveis para a construção do nosso algoritmo. Existem mais 
palavras reservadas que estaremos conhecendo no decorrer do material.
Vamos entender um pouco mais das duas sessões que utilizamos para a criação do nosso 
algoritmo. As declarações de variáveis e corpo do nosso algoritmo.
DECLARAÇÃO DE VARIÁVEIS
A seção de declaração de variáveis serve para que indiquemos todas as variáveis que 
serão utilizadas no decorrer do nosso algoritmo. Uma variável, conforme comentado ante-
riormente, serve para armazenarmos alguma informação que pode, ou não, ser modificada 
durante a execução do algoritmo.
Esse processo também existe em qualquer programa que utilizamos. Do ponto de vista 
do processamento realizado por um computador, a declaração de uma variável serve para que 
o computador possa reservar um espaço na memória, que permanecerá durante toda a execu-
ção daquele algoritmo.
Como o português estruturado representa o pseudocódigo de um programa de computa-
dor, também devemos declarar as variáveis que utilizaremos no decorrer do nosso algoritmo.
13ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Para declararmos uma variável, devemos utilizar a seguinte sintaxe:
Onde <var1> deve ser substituído por uma ou outra lista separada por 
vírgula, de nomes de variáveis. Para facilitar o entendimento, deve-se no-
mear as variáveis de acordo com o dado que nela é armazenado. Após a lis-
ta de variáveis, deve vir um símbolo de dois pontos, e, na sequência, o tipo 
de dados que todas as variáveis daquela linha possuirão.
Isso quer dizer que podemos, não sendo obrigatório, agrupar a de-
claração de variáveis, desde que todas armazenem o mesmo tipo de dados. 
Posteriormente, veremos quais são os tipos de dados possíveis de se utili-
zar em um algoritmo.
Importante: quando, no contexto de algoritmos, ou até no 
contexto de programação, falamos sobre “sintaxe”, estamos 
tratando da estrutura que deve ser utilizada. Quando 
estamos programando no computador, caso a sintaxe 
do nosso algoritmo não esteja correta, o algoritmo não 
funcionará, ou seja, ele não está sintaticamente correto. 
Cabe a você entender a sintaxe correta para escrever o 
algoritmo e utilizá-la.
CORPO DO ALGORITMO
É nessa seção que ocorre o algoritmo propriamente dito. 
Aqui são descritos os comandos que serão executados para 
que o problema inicial seja resolvido. Também, escreveremos 
comandos para a leitura dos dados (entrada de dados), pro-
cessamento e escrita dos dados processados (saída de dados).
No decorrer de toda a disciplina, estaremos aprendendo 
novos comandos que nos auxiliam em uma função específica.
Esses comandos são a grande diferença entre um al-
goritmo representado em descrição narrativa e em pseu-
docódigo, pois temos comandos bem definidos que não 
estão sujeitos a diferentes tipos de interpretação. É o que 
o computador precisa para executar nossos programas e 
comandos bem definidos.
Importante: todo o comando que é 
representado por uma palavra, esta palavra 
deve ser reservada, ou seja, não pode ser 
utilizada para representar uma variável.
14ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
RETOMANDO NOSSO ALGORITMO
Agora que conhecemos como é a estrutura básica de um algoritmo, vamos retomar ao nosso 
problema da média e ver como é um algoritmo que resolve esse problema.
Vamos analisar o que foi feito nas seções de declaração de variáveis (linha 3 e 4) e corpo do 
algoritmo (linhas 6 a 10). 
Declaração das variáveis:
Linha 3 – estamos declarando três variáveis com nomes “num1”, “num2”, “num3” com tipo 
inteiro (número sem casas decimais). Estas variáveis servem para armazenar a entrada de dados.
Linha 4 – estamos declarando uma variável com nome “media” (sem acento - lembre-se 
dos caracteres especiais que não podem ser utilizados) com o tipo de dado real (número com vír-
gula). Como o resultado de uma divisão pode ser um número com vírgulas, não podemos declará-
-la junto com as demais que são do tipo inteiro. Essa variável, como o nome indica, armazenará o 
resultado do cálculo da média que realizaremos no corpo do nosso algoritmo.
Corpo do algoritmo:
Linhas 6 a 8 - estamos indicando que devem ser lidos valores de entrada e estes 
serão armazenados nas respectivas variáveis.
Linha 9 – esta linha deve ser analisada em duas partes. A primeira parte até o 
símbolo de atribuição “<-”, que indica que o resultado da expressão que está à direita 
do símbolo que será armazenado na variável que está à esquerda do símbolo. Agora, 
vamos analisar a expressão que está à direita. Trata-se de uma expressão matemática, 
onde os valores lidos anteriormente, representados por suas variáveis, serão somados 
(assim como na matemática, os parênteses indicam a precedência) e, posteriormente, 
o valor dessa soma será dividido por 3.
Linha 10 – por último, estamos realizando a saída de dados, ou seja, estamos 
dando o comando de escrita da média.
Importante: essa vai ser a última dica referente às palavras reservadas que 
teremos em nosso material. A lógica das palavras reservadas será a mesma 
para todo o decorrer do material e também no decorrer da sua vida, 
enquanto estiver programando. Uma palavra que representa algo fora do 
contexto do problema, não pode ser utilizada como nome de variável.
Nesse algoritmo, temos mais 4 palavras reservadas (“inteiro”, “real”, “leia” e 
“escreva”). Novamente, devemos lembrar que não podemos utilizar essas 
palavras como nome de alguma variável.
15ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Agora que temos o nosso algoritmo pronto, o que fazemos com ele. Lembre-se 
que falamos sobre o que é um algoritmo e o que ele representa. Então, se o nosso al-
goritmo representa os passos para a solução de um problema, precisamos validar se o 
nosso problema inicial foi solucionado.
Para fazer isso, vamos testar o nosso algoritmo, ou seja, iremos segui-lo passo 
a passo para ver se no seu final, todas as premissas de que nosso problema nos im-
pôs foram satisfeitas.
TESTANDO O ALGORITMO – TESTE DE MESA
Assim como, para a construção do algoritmo, temos uma técnica a ser seguida, 
para testá-lo temos também uma técnica. Chamamos essa técnica de teste demesa.
Um teste de mesa é a simulação de cada um dos comandos referente ao corpo do 
nosso algoritmo. Aí você me pergunta, como fazemos para conferir se tudo está certo? 
Para problemas simples como este, podemos fazer isso “de cabeça”, guardando a 
cada passo os valores das variáveis em nossa memória, mas conforme os problemas vão 
ficando mais complexos e extensos, não podemos confiar somente na nossa memória 
para saber quais os valores armazenados em cada uma das variáveis do nosso algorit-
mo, conforme vamos executando os passos. Porém, temos uma ferramenta bem simples 
para fazer isso. Vamos fazer como um computador faz, vamos armazenar os dados.
Considerando que, até o momento estamos escrevendo nosso algoritmo no papel, simu-
laremos a execução deste também no papel.
Quando analisamos um algoritmo, a primeira coisa a se fazer é analisar a declaração das 
variáveis. Para cada uma das linhas de declaração de variáveis, criaremos uma tabela com o 
nome da variável e o tipo dela. Essa tabela será nossa memória no decorrer da execução.
Para criá-la, colocamos cada uma das variáveis em uma coluna com nome da variável e o 
tipo de dados referentes. Vamos à tabela de dados do nosso algoritmo:
Agora que temos o cabeçalho da nossa tabela montada, as linhas serão os valores de cada 
uma delas após a execução de cada comando do nosso algoritmo. Consideraremos os valores da 
entrada de dados para as variáveis num1, num2 e num3, que são respectivamente 3, 6 e 9.
Para entender os valores desse teste de mesa, tenha o algoritmo ao seu lado e simularemos 
ele juntos. Vamos executar cada instrução (linhas 6 a 10) e atualizarmos a nossa tabela de dados. 
Na linha 6, o algoritmo pede para ler um valor que será armazenado na variável num1. 
Como a variável num1 é do tipo inteiro, devemos utilizar somente valores desse tipo. Consi-
deramos o valor 3. Como essa é a primeira instrução executada, criamos a primeira linha da 
tabela com o valor 3 na coluna referente a variável num1 e deixamos todas as outras com zero 
(uma variável numérica sem valor, e que possui o valor zero).
num 1 (inteiro) num2 (inteiro) num3 (inteiro) media (real)
16ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Agora, na linha 7, o algoritmo pede novamente para lermos um valor e armazená-
-lo na variável num2. Consideramos o 6 como valor lido. Criaremos uma nova linha e na 
coluna do num2 colocaremos o valor lido. Nas demais colunas, como os valores das va-
riáveis não sofreram alterações, repetimos o valor anterior.
Agora, na linha 8, segue a mesma lógica, porém, para a variável num3, com valor 
9, o resultado é o seguinte:
Agora, na linha 9, temos uma diferença. Temos o nosso cálculo da média, que deve 
ser feito somando as variáveis num1, num2 e num3, e depois dividido por 3. E é nesse 
tipo de instrução que a tabela de dados do nosso teste de mesa comprova sua eficiência. 
num 1 (inteiro) num2 (inteiro) num3 (inteiro) media (real)
3 0 0 0,0
Para saber qual o valor de cada uma das variáveis utilizadas, devemos consultar a última 
linha, até o momento, para saber qual é. No nosso caso, 3, 6 e 9. Fazemos a soma “de 
cabeça” (18) e dividimos por 3. Para o resultado, 6, criamos uma nova linha na tabela e 
o colocamos na coluna referente a média. Novamente, as demais variáveis não sofreram 
alterações, portanto, os valores são repetidos.
Por último, na linha 10, a instrução é de saída. Nesse caso, não precisamos atua-
lizar nossa tabela de dados, porém, podemos simular a saída, escrevendo-a à parte da 
nossa tabela, como se fosse em um monitor do computador. Infelizmente, não é pos-
sível demonstrar esse passo aqui, mas é importante que saibamos que ele existe, pois é 
ele que representa todo o processamento realizado. 
Se pensássemos nesse algoritmo como um programa de computador, sem esse 
passo, o usuário teria digitado os valores, mas nunca veria o resultado, ou seja, para ele, 
o programa não executou nada.
num 1 (inteiro) num2 (inteiro) num3 (inteiro) media (real)
3 0 0 0,0
3 6 0 0,0
num 1 (inteiro) num2 (inteiro) num3 (inteiro) media (real)
3 0 0 0,0
3 6 0 0,0
3 6 9 0,0
num 1 (inteiro) num2 (inteiro) num3 (inteiro) media (real)
3 0 0 0,0
3 6 0 0,0
3 6 9 0,0
3 6 9 6,0
17ALGORITMOS E PROGRAMAÇÃO I
EXERCÍCIOS SUMÁRIO
Agora chegou a sua vez de escrever alguns algoritmos para resolução de pro-
blemas. Vou descrever os problemas e você deverá criar o algoritmo e testá-lo, uti-
lizando a técnica do teste de mesa que foi vista anteriormente:
1. Escreva um algoritmo que leia dois valores numéricos que representem as 
medidas de base e altura de um triângulo. Tendo estas medidas, calcule a área 
desse triângulo escrevendo o seu resultado.
OBS: se você não lembra como se calcula a área de um triângulo, digite no Goo-
gle “cálculo área do triângulo”, você encontrará facilmente a fórmula desejada.
2. Escreva um algoritmo que leia o número de horas trabalhadas por um profis-
sional autônomo e também o valor hora e o percentual de imposto que ele deve 
pagar. Calcule o valor do imposto a ser descontado desse profissional e o valor 
líquido que ele tem por receber. Escreva, primeiramente, o valor do imposto e, 
na sequência, o valor líquido.
OBS: O percentual do imposto informado será em base 100, ou seja, para um 
imposto de 15% será informado o valor 15. Lembre-se que você deve realizar um 
cálculo intermediário com esse número para calcular o valor do imposto.
18ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
1. Aprendemos, através de instruções, como fritar um ovo, porém, a lista de 
instruções pode ser diferente para resolução de um mesmo problema.
2. Aprendemos quais são os passos necessários para construção de qualquer 
algoritmo e que precisamos internalizar esses passos para criação de um 
pensamento lógico para solução dos problemas que serão resolvidos pe-
los nossos algoritmos.
3. Vimos que não existe uma única forma de se representar um algoritmo. As 
três formas de representação que conhecemos foram: descrição narrativa, 
fluxograma e português estruturado – pseudocódigo. Este último é o que 
utilizaremos por sua semelhança com os programas de computador.
4. Aprendemos como é a estrutura de um algoritmo representado em português estruturado, ten-
do como estrutura básica as seguintes sessões: inicialização e declaração do nome do algoritmo, 
declaração das variáveis, início, corpo e fim do algoritmo. Analisamos também o exemplo do 
algoritmo, que calcula a média aritmética de três números quaisquer informados pelo usuário.
5. Finalizando, aprendemos como testar e validar o nosso algoritmo, utilizando como ferra-
menta o teste de mesa e a tabela de dados para acompanhamento dos valores das variáveis no 
decorrer da execução.
6. Espero que você tenha conseguido criar os algoritmos que foram propostos para exercitar. Qual-
quer dúvida, utilize o ambiente virtual para esclarecimentos. Nos vemos no próximo capítulo.
RESUMINDO O CAPÍTULO
19
VARIÁVEIS: TIPOS 
DE DADOS E 
OPERADORES
Ao falarmos sobre variáveis, para uma compreensão dos algoritmos, 
precisamos entender como elas funcionam em um programa que é 
executado em um computador.
20ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Em um programa de computador, que você está acostumado a 
utilizar, existem muitas variáveis declaradas. Essas, armazenam os 
dados úteis durante a execução do programa. Um exemplo seria a va-
riável que armazena as coordenadas da posição da janela em relação à 
tela. Sempre que arrastamos a janela, os valores da coordenada mu-
dam, ou seja, o valor que está armazenado na variável será modificado 
pelo nosso programa.
Se as variáveis são responsáveis por armazenar nossos dados, 
onde é que esses dados são armazenados? 
Você já deve ter ouvido falar sobre memória RAM, aquela memó-
ria que nossos computadores utilizam para armazenar as informações 
que são necessárias somente durante a execução dos programas.
Toda a declaração de variável feita nos programas, ou,em nosso 
caso, nos algoritmos, fazem com que o computador reserve um de-
terminado espaço na memória, para que aquela informação seja salva, 
novamente, durante a execução do programa.
Quais informações podemos armazenar 
dentro das variáveis?
No capítulo anterior, quando analisamos a estrutura de um 
algoritmo, vimos que existe uma seção específica destinada a de-
claração de variáveis (abaixo, novamente a sintaxe das linhas de 
declaração de variáveis). Sabendo que todas as variáveis declara-
das possuem um tipo de dado bem definido, sejam elas agrupadas 
por tipo (mais de uma variável por linha), ou declaradas individu-
almente (linha a linha), aprenderemos quais são os tipos de dados 
que podemos dar as nossas variáveis.
TIPOS DE DADOS
No capítulo anterior, em nosso primeiro algoritmo completo, 
declaramos variáveis de dois tipos de dados. Um tipo foi o “inteiro”, 
que representa os números inteiros, positivo ou negativo, e o ou-
tro foi o “real”, que representa os números que podem ter, ou não, 
casas decimais. Esse é o tipo de dados numéricos, que possui essas 
duas divisões.
Porém, existem outros tipos de dados destinados a outras fun-
cionalidades. Vamos a todos eles:
21ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
• Numérico: conforme já comentado, esse tipo de dado serve para declarar variáveis que 
armazenam números. Porém, sintaticamente, “numérico” não é um tipo de dado váli-
do, pois precisamos especificar qual o tipo de número que nossa variável armazenará. 
Devemos declarar nossas variáveis numéricas utilizando o tipo específico de número 
armazenado, ou seja, “inteiro” ou “real”.
Importante salientar que, no corpo do algoritmo, quando queremos colocar um nú-
mero com separador decimal, devemos utilizar o símbolo de ponto para essa função, e não 
vírgula, como estamos acostumados no sistema brasileiro. No caso da separação de milha-
res, que no sistema brasileiro utilizamos o ponto como símbolo, não precisamos fazê-la.
Exemplo de declaração:
• Lógico: quando uma variável possui esse tipo de dado, ela pode ter somente um dos 
dois valores válidos: Verdadeiro ou Falso. Esse tipo de dado servirá para que possamos 
realizar testes lógicos com nossas variáveis.
Exemplo de declaração:
• Caractere: variáveis declaradas com esse tipo de dado servem para armazenar ex-
pressões literais que não são interpretadas pelo nosso algoritmo (podemos, inclusive, 
utilizar caracteres especiais em nossas expressões literais). Um exemplo de variável 
que pode ser declarada utilizando esse tipo de dado, é uma variável que armazena o 
nome de uma pessoa. 
Exemplo de declaração:
Após aprendermos como utilizar esses dados, vamos observar um exemplo:
Na legislação trabalhista brasileira, sempre que um funcionário gozará de seu período 
de férias, ele deve receber, adiantado, uma bonificação no valor de 1/3 de seu salário bruto 
como “Adicional de Férias”. Considerando essa definição, escreva um algoritmo que leia o 
Importante: para que possamos, no corpo do algoritmo, atribuir um valor 
literal em uma variável, ou também utilizá-lo em chamadas de funções 
(como por exemplo, na função de saída “escreva”), precisamos colocar a 
expressão literal a ser atribuída entre aspas. 
Ex:
Nome <- “joão da silva”
22ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
nome de um funcionário e o seu salário bruto e calcule o valor 
a ser recebido por esse funcionário como acréscimo de férias, 
escrevendo ao final o nome do funcionário, o valor do salário 
bruto, o valor do adicional de férias e o valor total, conforme 
exemplo de saída abaixo:
RESOLUÇÃO DO ALGORITMO PARA CÁLCULO DE FÉRIAS
Antes de verificar a resolução e análise da solução abaixo, 
tente criar esse algoritmo por conta própria. A prática é que te 
levará cada vez mais próximo da perfeição.
Importante: Sempre Que, No Decorrer Deste 
Material, For Mostrado Um Exemplo De Saída 
De Dados (Escrita) De Um Algoritmo, Cada 
Expressão De Escrita Gera Uma Nova Linha E 
Esta Sempre Irá Iniciar Com O Caractere “>”. Na 
Sequência, A Informação De Saída.
Lembrando que não existe uma única, vamos analisar a solução acima.
Linhas 3 e 4: declaração das variáveis, conforme já vimos anteriormente, 
porém, utilizando o tipo de dados “caractere”.
Linhas 6 e 7: aqui estamos vendo um adendo na forma de ler o nome do 
funcionário para a variável “nome”. Estamos primeiro escrevendo qual dado 
será lido, para depois realizar a leitura. Podemos utilizar o comando escreval, 
que vai escrever a frase “Digite o nome do funcionário”, em uma nova linha, na 
tela do usuário. Pensando no monitor do usuário, temos a seguinte situação:
23ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Onde teremos, na segunda linha, o cursor piscando e aguardando que o usuário digite a in-
formação e pressione “ENTER” para prosseguir. Utilizamos, primeiramente, a escrita, para que o 
usuário não veja somente o cursor piscando sem saber o que ele deve fazer. Quando simularmos 
nossos algoritmos em um programa, você conseguirá ter uma visualização melhor desta “técnica”.
Linhas 8 e 9: similar às linhas 6 e 7, porém, dessa vez, para a leitura do salário bruto.
Linha 10: cálculo do adicional de férias através da divisão do valor do salário por 3, repre-
sentando nosso 1/3 de férias. Após o cálculo, o valor é armazenado na variável “ferias”.
Linha 11: Similar à linha 10, porém, o cálculo é do valor total que se dá através da soma do 
valor do salário bruto com o valor do adicional de férias, calculado anteriormente. A variável to-
tal vai receber o valor do resultado da soma do “salario” com as “ferias”.
Linha 12: novamente, uma forma diferente para realizar uma função já conhecida. Nes-
se caso, estamos escrevendo uma expressão literal explicativa antes da informação propria-
mente dita. Podemos escrever várias informações (variáveis ou expressões) na mesma linha, 
separando-as por vírgula.
Linhas 13, 14 e 15: similar à linha 12, estamos escrevendo as demais informações solicitadas.
Agora que já conhecemos os tipos de dados, vamos entender um pouco mais o que pode-
mos fazer com cada um desses tipos de dados. Vamos conhecer os operadores que podem ser 
utilizados para manipulação dos dados.
OPERADORES
Mesmo sem nos darmos conta, nos exemplos e exercícios realizados até agora, já 
utilizamos alguns tipos de operadores. Por mais que alguns sejam simples, como por 
exemplo, o operador de atribuição, “<–”, e não precisam maiores explicações, vamos 
analisar uma lista com todos os operadores que podemos utilizar em nossos algoritmos.
Operador de atribuição: conforme comentado acima, este é um dos primeiros 
operadores que utilizamos. Sua sintaxe é bastante simples: primeiramente, é avaliado 
o resultado da expressão que está à direita do operador e o resultado é armazenado na 
variável que está à esquerda do operador.
Operadores aritméticos: os operadores aritméticos permitem a realização de cálcu-
los matemáticos, utilizando valores armazenados em variáveis, ou ainda, valores escritos 
diretamente no código. Até agora, já vimos os operadores referentes às quatro operações 
matemáticas básicas. Vamos ver os demais, inclusive repassando novamente por estes:
Operador Representação no algoritmo Exemplo
Soma + valor1 + valor2
Subtração – valor1 – valor2
Multiplicação * valor1 * valor2
Divisão / valor1 / valor2
Exponenciação ^ valor1 ^ valor2
Módulo (resto inteiro da divisão) mod valor1 mod valor2
Operadores aritméticos
24ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Operadores relacionais: os operadores relacionais são utilizados para comparação de dois valo-
res conforme o tipo de operador utilizado. O resultado de uma expressão que utiliza um operador rela-
cional é sempre um resultado lógico, ou seja, verdadeiro ou falso. Vamos ver quais são:
Operadores lógicos: Os operadores lógicos são utilizados para associar expressões ou variáveis 
lógicas. O resultado destas expressões também é um resultado do tipo lógico.
Operador Representaçãono algoritmo Exemplo
Maior > valor1 > valor2
Maior ou igual ≥ valor1 ≥ valor2
Menor < valor1 < valor2
Menor ou igual ≤ valor1 ≤ valor2
Igual = valor1 = valor2
Diferente <> valor1 <> valor2
Operadores relacionais
Operador Representação no algoritmo Exemplo
e 
(conjunção)
E – este operador retorna verdadeiro se somente os dois lados da 
expressão forem verdadeiros.
<expressão 1> E 
<expressão 2>
ou 
(disjunção)
OU – este operador retorna verdadeiro se ao menos um dos lados 
da expressão forem verdadeiro.
<expressão 1> OU 
<expressão 2>
não 
(negação)
NAO – este operador inverte o valor da expressão adjacente, ou 
seja, retorna verdadeiro para uma expressão com valor falso ou 
retorna falso para uma expressão com valor verdadeiro.
NÃO <expressão>
Operadores lógicos
25ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Você deve estar se perguntando, de que forma os operadores relacionais e lógicos são 
utilizados dentro de um algoritmo? Antes de lhe mostrar como iremos utilizá-los, primeiro 
preciso que você entenda bem como eles funcionam, pensando somente nos valores lógicos 
que eles retornam. Para isso, vamos analisar uma ferramenta que chamamos de tabela ver-
dade. Ela nos auxiliará no entendimento destes operadores.
TABELA VERDADE
Para a análise da tabela verdade, vamos considerar duas variáveis, A e B, analisan-
do os resultados possíveis dos operadores relacionais e o resultado da combinação com 
operadores lógicos.
Analisando a primeira linha, na primeira coluna temos a suposição de que A = 3 (A é 
igual a 3) seja verdadeiro e, na segunda coluna, a suposição de que B <> 20 (B é diferente de 
20) seja verdadeiro também. Dessa forma, temos para cada um dos operadores lógicos (“E”, 
“OU” e “NÃO”) o valor de uma operação, considerando as duas primeiras suposições. Ainda 
analisando a primeira linha, para “A = 3 E B <> 20” temos um retorno verdadeiro, da mesma 
forma que para “A = 3 OU B <> 20” temos um retorno verdadeiro, porém, para o operador 
“NÃO” na expressão “NÃO A = 3”, como “A = 3” é verdadeiro e a função do operador é in-
verter o valor, o resultado final será falso.
Lembre-se! O resultado de uma expressão contendo um operador relacional ou lógico, 
sempre resultará em um valor lógico. Por ora, você deve atribuir o resultado dessas expres-
sões sempre em uma variável do tipo lógico.
OPERADOR
E
OPERADOR
OU
OPERADOR 
NAO
Expressão no 
Algoritmo
A = 3 B <> 20 A = 3 E B <> 20 A = 3 OU B <> 20 NAO A = 3
RESULTADOS
V V V V F
V F F V F
F V F V V
F F F F V
Tabela verdade
26ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
PRECEDÊNCIA DE OPERADORES
Assim como na Matemática, em algoritmos temos operadores 
que possuem precedência sobre outros. Você deve estar lembrado que 
quando temos uma expressão matemática composta, por exemplo, 
de operadores de adição e multiplicação, primeiramente devemos 
resolver a operação de multiplicação, para só, então, resolvermos a 
operação de adição.
Um pequeno exemplo para recordarmos. Resolva a expressão:
2 + 5 × 3 + 4 = ?
Se você chegou ao resultado 21, você resolveu essa expressão 
corretamente.
Em algoritmos, também temos regras de precedência de ope-
radores. Considerando os operadores aritméticos, a precedência é 
a mesma utilizada nas expressões matemáticas. Primeiro, temos a 
precedência dos parênteses, que vem depois da operação de expo-
nenciação, que após as operações de multiplicação, divisão e por úl-
timo as operações de adição e subtração.
Importante: nas expressões 
matemáticas temos os separadores 
de expressões, os parênteses, 
chaves e colchetes. Em algoritmos, 
temos somente os parênteses. 
Quando se deseja separar mais de 
uma operação, que na matemática 
utilizaríamos as chaves e colchetes, 
em algoritmos utilizamos 
parênteses aninhados. Vamos a um 
exemplo:
Considere a seguinte expressão 
matemática:
{5 + (2 + 5) × (3 + 4)} × 2
Nesse caso, em algoritmos teríamos 
a seguinte expressão:
(5 + (2 + 5) * (3 + 4)) * 2
27ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Considerando que em algoritmos temos ainda os operadores lógicos e relacionais, temos 
uma lista de precedência um pouco maior. Para melhor compreensão, podemos montar uma pi-
râmide de precedência, onde no topo da pirâmide estará a maior precedência, e a base da pirâmi-
de representa a menor precedência:
Levando em conta essa pirâmide de precedência, temos que considerar a utili-
zação de parênteses sempre que temos expressões que mesclam operadores de maior 
e menor precedência, para que, assim, tenhamos certeza do resultado esperado.
Se, em uma expressão, os operadores possuem a mesma precedência, ela será 
executada da esquerda para a direita.
COLOCANDO EM PRÁTICA
Agora é hora de exercitarmos para fixarmos um pouco mais sobre o que aca-
bamos de aprender.
Considerando o exercício anterior de cálculo das férias, modifique o algorit-
mo criado para que seja deduzido o INSS (desconto de 11%), escrevendo o valor de 
INSS e também: “O funcionário deve descontar IRRF: <VERDADEIRO/FALSO>”, 
onde a expressão, após os dois pontos, indica se o usuário deve descontar o im-
posto de renda na fonte. Considerando que na tabela do imposto de renda de 2016, 
diz que, deve ser descontado o imposto na fonte para todos que obtiveram ganhos 
superiores a 1.903,98 (lembre-se que no corpo do algoritmo, o símbolo de separa-
dor decimal é o ponto e a vírgula, não sendo necessário a utilização do separador 
de milhar), já descontado o valor do INSS.
28ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
RESOLUÇÃO DO ALGORITMO PARA CALCULO DE FÉRIAS
Antes de verificar a resolução e análise da solução a seguir, tente criar esse algoritmo por conta própria. A prática é que 
te levará cada vez mais próximo da perfeição. Não me cansarei de escrever isso, pois tenho a certeza de que é uma verdade.
Para a solução, primeiro devemos lembrar que não temos o operador de percentual nos operadores matemáticos, po-
rém, sabemos que 11% pode ser realizada através da operação matemática, 11 dividido por 100. Ou seja, a expressão mate-
mática para esse cálculo pode ser representada da seguinte forma:
inss = total × 11 ÷ 100
Tendo isso em mente, vamos ao nosso algoritmo:
29ALGORITMOS E PROGRAMAÇÃO I
EXERCÍCIOS SUMÁRIO
Da mesma forma que no capítulo anterior, e também em todos os demais que 
teremos nesse material, chegou a sua vez de exercitar:
1. Considerando que em uma escola existe média para aprovação em uma disci-
plina, a média ponderada do ano deve ser superior a 6, escreva um algoritmo 
que leia o nome do aluno que se deseja calcular a média, as notas dos 4 bimes-
tres, calculando a média. A média ponderada deve ser calculada levando em 
conta que o primeiro bimestre tem peso 1, o segundo peso 2, e assim susceti-
velmente. No final, escreva o nome do aluno, a média atingida e VERDADEIRO 
OU FALSO para o caso do aluno ser aprovado ou não.
DICA: Se você não lembra como se calcula uma média ponderada, realize uma 
pesquisa rápida para entender esse cálculo.
2. Escreva um algoritmo que leia um número inteiro e escreva VERDADEIRO se o 
número for par ou FALSO se o número for ímpar.
DICA: Você deverá utilizar o operador módulo.
3. Escreva um algoritmo que leia dois números reais, o primeiro representando o 
raio da base de um cilindro, e o segundo, a altura deste cilindro, logo, calcule o 
volume do mesmo.
DICA: A mesma do primeiro exercício.
30ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
1. Aprendemos os tipos de dados que podemos utilizar em nossos algorit-
mos: numéricos (inteiro e real), lógico e caractere.
2. Aprendemos quais são os operadores que podem ser utilizados para a 
realização de expressões aritméticas. Soma, subtração, multiplicação, 
divisão, exponenciação e módulo.
3. Da mesma forma, aprendemos que existem operadores relacionais que 
podem montar expressões sobre os mesmos valores numéricos, porém, 
o resultado das expressões sempre será um valor lógico. São eles: maior, 
maior ou igual, menor,menor ou igual, igual e diferente.
4. Como último grupo de operadores, vimos os operadores lógicos, que nos 
permitem trabalhar com valores lógicos para compor expressões entre 
2 valores (operadores “E” e “OU” e, também, o operador “NAO”, que 
realiza a inversão de um valor lógico.
RESUMINDO O CAPÍTULO
31
VISUALG
Até este momento, nossos algoritmos foram construídos somente papel. 
Vamos dar um passo adiante!?
32ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Conforme vimos, superficialmente, no capítulo de Introdução, quando quere-
mos desenvolver um programa, utilizamos uma linguagem de computador. Isso não 
quer dizer que teremos que, até o final dessa disciplina, ficarmos praticando somen-
te no papel. Apesar desse tipo de prática ser bastante eficiente para o aprendizado, 
uma vez que o único fator envolvido é a solução do problema, utilizando uma pseu-
dolinguagem, temos disponível, gratuitamente, uma ferramenta que nos permite 
construir e testar nossos algoritmos, utilizando essa mesma pseudolinguagem.
A ferramenta, chamada de Visualg, foi criada por um professor universi-
tário que viu a importância dos alunos das disciplinas de Algoritmo, praticarem 
a criação e testes dos algoritmos propostos, tendo uma ideia mais real de como 
seria esse mesmo processo caso estivessem utilizando uma linguagem de pro-
gramação já difundida.
A ideia é que, daqui para frente, possamos utilizar essa ferramenta para a cons-
trução dos nossos algoritmos.
DOWNLOAD
Primeiramente, é necessário realizar o download através do link: 
https://sourceforge.net/projects/visualg30/files/latest/download
Após o término do download, tem-se disponível um arquivo em formato RAR que deve ser 
descompactado, utilizando algum software adequado para essa função. Logo, à descompactação, 
temos acesso ao aplicativo visualg30, conforme imagem ao lado.
INTERFACE DO VISUALG
Abrindo esse aplicativo, tem-se acesso à interface que permite a criação e os testes do nosso 
algoritmo. próxima imagem, você visualizará a interface e todos os componentes que serão utili-
zados daqui para frente.
Instalação Visualg
33ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
34ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
1. Editor que utilizaremos para a criação do nosso algoritmo. Nele, digitamos 
os códigos que permitem que nosso algoritmo funcione.
2. Quando estamos executando nosso algoritmo, nesta listagem aparecerão 
todas as variáveis declaradas, o tipo e o valor da variável até o momento 
da execução. A utilização deste quadro só representa uma funcionalidade 
quando o algoritmo está sendo executado com breakpoints ou através da op-
ção passo a passo. Mais adiante, veremos como executá-lo dessa forma.
3. Nesse painel, poderemos executar a saída do nosso aplicativo, ou seja, é 
nele que todos os resultados dos comandos de escrita aparecerão após te-
rem sido executados.
4. Após ter concluído a construção do algoritmo, utilizamos esse botão para 
executá-lo de forma contínua, ou seja, as únicas paradas na execução, ocor-
rerão quando for executado um comando de leitura (comando “leia”).
5. Com esse botão, nosso algoritmo é executado passo a passo, ou seja, nós é 
que decidimos quando deve ser executado o próximo comando (a próxima 
linha). Para a execução passo a passo, devemos utilizar esse botão para cada 
linha a ser executada.
Agora que já conhecemos a interface da ferramenta, vamos entender algumas 
pequenas diferenças que temos com relação a linguagem que utilizamos até agora.
1. As palavras reservadas Algoritmo (primeira linha), Var, Inicio e Fimalgoritmo tem a primeira 
letra maiúscula, sendo que a palavra reservada que indica o final do algoritmo é uma só, sem o 
espaço de separação, ficando Fimalgoritmo.
2. A indentação padrão (espaços em branco que nos auxiliam de forma visual a ver os blocos - até 
o momento, temos o bloco de declaração de variáveis e o bloco do corpo do algoritmo) é reali-
zada através de 3 espaços.
3. Verifique corretamente as aspas a serem utilizadas para a criação de expressões literais, do tipo 
caractere. De forma escrita é difícil de exemplificar, mas cuide para utilizar aspas duplas sem indi-
cação de direção (não se deve utilizar o caractere aspas que aponta à direita quando está iniciando 
e à esquerda quando está finalizando). Desconfie das aspas quando, ao executar um algoritmo, for 
mostrado um erro em uma linha que tenha expressões literais, como no exemplo que segue:
Tirando esses detalhes, tudo o que aprendemos até o momento pode ser executado nessa ferra-
menta. É isso que faremos agora.
Aviso
35ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
UTILIZANDO O VISUALG PARA CRIAR E EXECUTAR ALGORITMOS
Primeiramente, quero que saiba que entendo que pode passar algumas dificul-
dades durante o processo até que consiga pegar a prática. Como não estamos em uma 
disciplina presencial, quero que lembre que pode sempre recorrer ao nosso ambiente 
virtual para sanar suas dúvidas. Porém, esse atendimento pode não ser on-line e não 
quero que interrompa seus estudos até que obtenha um retorno. Dessa forma, vou 
lhe apresentar uma estratégia para tentar resolver os problemas que venham surgir. 
Você pode utilizar a opção ajuda que a ferramenta oferece. Nessa opção será 
aberto o navegador contendo toda a documentação de ajuda provida pela ferramenta.
Entretanto, não quero que você se apavore com os problemas que podem surgir. 
Normalmente, eles são de fácil resolução, bastando que tenhamos atenção a toda in-
formação que a ferramenta nos dá, comparando com o algoritmo que escrevemos nela. 
Agora, deixamos de perder tempo e vamos começar com um algoritmo que já 
desenvolvemos.
Digite o algoritmo de cálculo de férias com desconto no INSS que criamos em 
conjunto no capítulo anterior, fazendo as adaptações necessárias. Na próxima ima-
gem, você consegue visualizar como ficou o algoritmo, antes da execução:
Exemplo
36ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
EXECUTANDO O ALGORITMO
Após digitá-lo, vamos executar pelo botão “Executar” (número 4 da tela explicativa).
Nesse momento, a ferramenta começará a execução de cada uma das instruções que coloca-
mos. Primeiramente, todas as variáveis serão declaradas. Depois, no primeiro comando do corpo 
do algoritmo, será escrita a mensagem. Porém, o que você vê logo após clicar no botão executar, 
é uma janela preta do prompt de comando, similar a imagem:
Executando algoritmo
Arrastando a janela do prompt sobre o algoritmo, conseguimos ver os dois pai-
néis direitos, o superior que mostra todas as variáveis declaradas com seus respecti-
vos valores, e o inferior que mostra o resultado de saída até o momento. Conforme co-
mentei anteriormente, quando utilizamos a opção de “Executar”, a única parada que é 
feita para interação acontece quando se executa a instrução leia. É isso que a janela do 
prompt de comando está aguardando. Que seja digitado algum valor que será armaze-
nado na variável “nome”, conforme o comando da linha 9 do nosso algoritmo.
Digite um nome qualquer e pressione Enter. Nesse momento, o que você vê na 
tela deve ser algo semelhante a imagem:
Executando algoritmo
37ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Antes de digitar o salário, note que no painel das variáveis, a variá-
vel nome já mudou de valor, tendo agora, exatamente, o que foi digitado 
no comando leia.
Nesse momento, você pode digitar o salário e, novamente, pressionar 
Enter. Agora você deve estar vendo no prompt de comando algo semelhante 
ao que se vê na imagem abaixo:
Eu sei que não é exatamente o que esperávamos, isso porque não houve 
quebra de linhas entre cada um dos comandos “escreva”. Quando desejamos 
que o Visualg quebre a linha após escrever alguma sentença na tela, devemos 
utilizar o comando “escreval”. Faça a mudança e teste novamente se desejar.
Executando algoritmo
Voltando a nossa análise do que temos em tela, repare no painel superior direito, o das variáveis, o que 
ele representa. Se você leu e sededicou até aqui no material, notará que ele é bem semelhante à tabela que pro-
duzimos quando executamos nosso teste de mesa manualmente. A única diferença aqui é que não temos, linha 
a linha, a evolução dos valores das variáveis conforme a execução dos comandos. Esse painel, quando chega-
mos no final da execução do algoritmo, representa a última linha da tabela produzida em nosso teste de mesa.
Para fechar o prompt de comando, basta pressionar ESC.
EXECUTANDO O ALGORITMO PASSO A PASSO
A execução passo a passo se aproxima muito do teste de mesa que executamos quando estamos testan-
do nosso algoritmo “no papel”. Quando expliquei para você o funcionamento do teste de mesa, à primeira 
vista não deve ter sido um processo simples, imagino eu. 
Explicar esse mesmo processo utilizando o Visualg, parece-me um tanto quanto mais complicado, sen-
do passível a problemas na interpretação com minhas palavras, levando em conta a informação que eu pre-
tendo passar. Por isso, preparei um vídeo, especialmente, para explicar como funciona a execução passo a 
passo através do Visualg. 
Quando você tiver visto a facilidade que esse processo lhe proporciona, saiba que quase todas as gran-
des linguagens de programação, através de alguma ferramenta de desenvolvimento, permite esse tipo de 
execução. Isso pode lhe salvar horas no futuro quando os algoritmos se tornarem cada vez mais complexos. 
Busque sempre saber as facilidades de desenvolvimento disponíveis para cada linguagem de programação 
que você utilizará para desenvolver seus programas.
38ALGORITMOS E PROGRAMAÇÃO I
EXERCÍCIOS SUMÁRIO
Vamos aproveitar as novas ferramentas para praticar um pouco mais o desenvolvimento de al-
goritmos. Crie os algoritmos conforme os enunciados abaixo.
Dica geral: se não lembrar das fórmulas para os cálculos, realize uma breve pesquisa para relembrar.
1. Criar um algoritmo que leia um valor que representará o diâmetro de um círculo e calcule e im-
prima a área deste círculo.
Exemplo para validação: para entrada = 10, o valor esperado de saída = 78,53975.
2. Criar um algoritmo que leia um valor que representará uma temperatura em graus Célsius. Cal-
cule e imprima esta temperatura convertida para Fahrenheit e Kelvin.
Exemplo para validação: para entrada = 30 o valor esperado de saída para Fahrenheit = 86, e 
saída para Kelvin = 303,15
3. Criar um algoritmo para calcular e imprimir o valor de uma prestação em atraso, considerando a 
seguinte fórmula: prestação = valor + (juros_dia × dias_atraso) onde juros_dia = valor + %juros. 
Importante: lembre que em algoritmos não temos um operador pronto para o cálculo de percentual.
Exemplo para validação: para entrada valor = 30, dias_atraso = 10 e %juros = 1 o valor esperado 
de saída = 33
39
ESTRUTURAS 
CONDICIONAIS
Neste capítulo, aprenderemos sobre operadores lógicos e relacionais. 
Acompanhe-me!
40ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Em alguns exemplos, até verificamos que podemos atribuir valores a variáveis 
lógicas utilizando esses operadores, mas essa é somente uma pequena funcionalidade 
que esses operadores nos provêm nos algoritmos que construímos.
Uma situação que diversos algoritmos precisam lidar é com condições. No con-
texto de um algoritmo, uma condição representa um ponto decisório em que a execução 
do algoritmo seguirá fluxos diferentes conforme o retorno da expressão condicional. 
Isso quer dizer que poderemos escrever trechos de códigos diferentes que serão execu-
tados somente quando o valor de uma ou mais variáveis respeitar a condição proposta.
Fazendo uma analogia com a vida real, podemos exemplificar uma estrutura 
condicional com a seguinte frase: “Se o tempo será de chuva vou sair de casa com o 
guarda-chuva, caso contrário sairei de manga curta”. Nessa frase, podemos avaliar 
exatamente a estrutura condicional que teremos em nossos algoritmos.
Vamos analisar primeiramente a condição: “Se o tempo será de chuva”. Nessa 
expressão, a variável que terá seu valor avaliado é o “tempo” como previsão do tem-
po e chuva é o nosso valor de comparação. Agora, analisaremos as hipóteses. Caso a 
expressão seja verdadeira, a ação será “vou sair de casa com o guarda-chuva”. Caso a 
expressão seja falsa, a ação será “sairei de manga curta”.
Começaremos a realizar condições em nossos algoritmos, iniciaremos com con-
dições simples do tipo “se-então”.
ESTRUTURA SE-ENTÃO
A sintaxe para utilizarmos essas estruturas em nossos algoritmos é a seguinte:
Na primeira linha, temos a palavra reservada “se”, que indica o início da estrutura condi-
cional. Após, temos entre parênteses, a nossa expressão condicional que pode ser uma expressão 
simples (uma condição utilizando somente um operador relacional) ou composta (mais de uma 
condição, cada qual separada por um operador lógico). Por último, temos a palavra reservada 
“entao”, que indica que está iniciando o conjunto de instruções que serão executadas quando a 
condição for verdadeira.
Na segunda linha, podemos ter uma ou mais instruções (chamamos também de bloco de 
instruções) que serão executadas até que se finalize a estrutura condicional através da palavra 
reservada “fimse”, que pode ser vista na terceira linha.
Importante: se você notar no exemplo da sintaxe, na linha 2 temos um espaço 
extra à esquerda. Conforme comentado anteriormente, esse espaço representa a 
indentação do nosso bloco de instruções. 
Não é obrigatório indentar os blocos de código, pois não mudará em nada a 
execução do seu algoritmo. Porém, a indentação é um artifício visual para que 
saibamos que aquele bloco de código está dependendo de uma determinada 
situação para ser executado.
41ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Vamos a um exemplo simples, conforme o seguinte enunciado:
Escreva um algoritmo que leia um número que representa uma temperatura e 
escreva “quente” se a temperatura for maior que 30.
Considerando essa instrução, nosso algoritmo pode ser construído assim (esse, 
e os próximos algoritmos daqui em diante, já está na estrutura do Visualg, ou seja, 
você pode digitá-lo, como aqui se encontra, retirando somente o número das linhas):
Vamos analisar a nova estrutura, das linhas 7 à 9.
Na linha 7, iniciamos nossa estrutura com a palavra reservada “se”, depois te-
mos na nossa condição que é a temperatura maior do que 30 e, no final da linha, a pa-
lavra reservada “entao”, que indica que dali em diante teremos o bloco condicional.
Na linha 8, a nossa instrução condicional (devidamente indentada), represen-
tada pelo comando “escreval”.
E por último, na linha 9, finalizamos a estrutura condicional com a palavra reservada, “fimse”.
Faça diversos testes no Visualg, colocando valores menores, maiores e iguais a 30 e execute 
em modo Passo a Passo. Note que a palavra “quente” só será escrita quando o valor digitado for 
realmente maior que 30.
Agora que você já testou bastante esse algoritmo e entendeu o seu funcionamento, escreva 
e teste um algoritmo, utilizando o Visualg, considerando o seguinte enunciado:
Escreva um algoritmo que leia dois números e escreva, “são iguais”, caso estes números 
sejam realmente iguais.
Não colocarei a solução desse algoritmo aqui, pois quero que você pratique os seus co-
nhecimentos. Se você está com dúvida de como criar o algoritmo para o enunciado dado, leia 
novamente o material.
ESTRUTURA SE-ENTÃO-SENÃO
Além da estrutura “se-então”, que nos permite executar um bloco de instruções, caso a ex-
pressão condicional seja verdadeira, temos também a estrutura “se-então-senão”, que permite 
também a execução de um bloco de instruções quando a expressão condicional for falsa.
A sintaxe é bem semelhante. Vamos a ela:
42ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Analisando a sintaxe, podemos notar que foi incluída, na linha 3, a palavra reservada 
“senao”, a qual indica o final das instruções, caso a condição seja verdadeira e, o início das 
instruções, caso a condição seja falsa. 
Agora, vamos modificar umpouco o enunciado que vimos anteriormente.
Escreva um algoritmo que leia um número que represente uma temperatura e escreva 
“quente”, se a temperatura for maior que 30 e escreva “frio” caso contrário.
Note agora, que na linha 9 temos a palavra reservada “senao”, que indica o final dos 
comandos, caso a temperatura seja maior que 30 e o início dos comandos caso, seja menor ou 
igual a 30. Na linha 10 temos a nossa instrução de escrita para quando a condição retornar um 
valor falso. Na linha 11, temos a finalização de toda a estrutura condicional.
Novamente, sugiro que você execute esse algoritmo no Visualg, em formato passo a pas-
so, digitando valores maiores, menores e igual a 30.
Agora, praticaremos um algoritmo para um enunciado (esse algoritmo também não es-
tará com a solução):
Escreva um algoritmo que leia dois números. Se os números forem diferentes, calcule 
a subtração do primeiro pelo segundo número e escreva o resultado. Caso eles sejam iguais, 
calcule a soma e escreva o resultado.
43ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
EXPRESSÕES CONDICIONAIS COMPOSTAS
Até o momento, tanto os exemplos dados, quanto os algoritmos que você deve ter criado para 
praticar, utilizam expressões condicionais simples, ou seja, possuem somente uma condição. 
Se você voltar um pouco no conteúdo, verá que temos os operadores lógicos que nos permi-
tem realizar expressões que possuem mais de uma condição.
Do ponto de vista das estruturas condicionais, a sintaxe é a mesma, mudando somente a ex-
pressão presente dentro dos parênteses, mas vamos ver alguns exemplos para que você coloque 
em prática os operadores lógicos que vimos lá atrás.
Vamos considerar um novo enunciado:
Escreva um algoritmo que leia 3 números. Escreva “igual”, caso os 3 números sejam iguais 
ou escreva “diferente”, caso algum deles seja diferente dos demais.
Solução:
Importante: para analisar esse algoritmo, devemos acionar um 
pensamento lógico. O enunciado do algoritmo solicitava que fosse 
feita a comparação entre os três números para verificar se os três são 
iguais, porém, temos somente dois testes (n1 = n2 e n2 = n3).
Podemos construir o algoritmo somente com dois testes, porque 
no caso de n1 ser igual a n2 e n2 ser igual a n3, podemos assumir 
implicitamente que n1 é igual a n3.
Vamos praticar mais um pouco, considerando o seguinte enunciado:
Escreva um algoritmo que leia dois números e escreva “você digitou um nú-
mero maior do que 20” caso algum dos números digitados seja realmente maior do 
que 20. No caso, se nenhum dos números for maior que 20 escreva “os dois números 
são menores que 20”.
44ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
ESTRUTURA DE SELEÇÃO ANINHADA
Nem sempre, ao escrevermos nossos algoritmos, temos regras simples do tipo “se-en-
tão” ou “se-então-senão”. Às vezes, temos várias regras condicionais que não podem ser 
traduzidas para algoritmos somente com as estruturas, “se-então-senão”.
Suponha que você tenha um problema para resolver, que tenha um enunciado assim:
Escreva um algoritmo que leia um número que escreva “positivo”, caso o número di-
gitado seja maior que zero, “negativo” caso o número seja menor que zero ou “neutro” se o 
número for igual a zero.
Desse modo, com uma estrutura “se-então-senão”, conseguimos facilmente atender 
os dois primeiros requisitos, porém, o último (do neutro) ficará sem atendimento, a não 
ser, é claro, que utilizássemos três estruturas diferentes do tipo “se-então”, uma para cada 
requisito. Vamos ver como ficaria nesse caso:
Se você rodar esse algoritmo através do Visualg, verá que ele funciona, perfeitamente, 
atendendo todos os requisitos do problema. Porém, executando-o em modo passo a passo, 
notará que, mesmo que você digite um número maior do que zero, a execução do algoritmo 
realizará os outros dois testes. E isso pode ser um problema.
Vamos supor que, no enunciado do algoritmo tenha um outro requisito que diga assim:
Escreva um algoritmo que leia um número que escreva “correto”, caso o número 
digitado for igual a 10. Se não for, o algoritmo deve escrever “positivo”, caso o número 
digitado seja maior que zero, “negativo” caso o número seja menor que zero ou “neutro” 
caso o número seja igual a zero.
45ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Dessa maneira, não basta somente adicionar uma nova estrutura para testar se o 
número é igual a 10. Supondo que nossa ideia seja adicionar uma nova estrutura para o 
teste igual a 10, anterior as demais, como o algoritmo executará também os próximos 
testes, no resultado final seria escrito, caso digitado o número 10, primeiro “correto” 
e na sequência “positivo”, pois os demais testes também seriam executados.
Faça o teste no Visualg, digitando o número 10:
Para solucionar esse problema, temos ao nosso dispor uma técnica de aninha-
mento de condições.
Primeiramente, temos que entender o que significa uma estrutura estar aninha-
da. No nosso contexto, a melhor definição quando falamos que algo está aninhado é 
dizer que está envolto. Vamos pensar na nossa estrutura “se-então-senão”. Porque 
não podemos aninhar, dentro do bloco do “senão” uma nova estrutura “se-então-senão”? Na ver-
dade, é isso mesmo que temos que fazer para resolver esse tipo de problema. Vamos aninhar as es-
truturas condicionais, tantas quantas forem necessárias para atender aos nossos requisitos. 
Agora que já entendemos o que podemos fazer, o mais importante é: Como fazer? Seguindo o 
mesmo enunciado, analise como não é nada de outro mundo:
Podemos notar que o que foi feito não é a aplicação de um novo conceito, mas sim uma nova 
técnica. A ideia aqui é utilizar o bloco “senão” para uma nova estrutura condicional. Isso faz com que 
essa estrutura só seja executada se o primeiro teste retornar um valor falso.
Importante: note o quão importante é a utilização da técnica de indentação, nesses 
casos. Faça o teste retirando os espaços em branco do início da linha e veja como, 
“visualmente”, fica mais complicado de entender o fluxo do algoritmo.
46ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Agora que já entendemos o funcionamento das estruturas condicionais “se-então” e “se-
-então-senão” e também as técnicas de expressões condicionais compostas e de estruturas con-
dicionais aninhadas, vamos ver em um enunciado mais prático, como podemos aplicá-las.
Escreva um algoritmo que leia três números inteiros que representam as dimensões de um 
possível triângulo. Esse algoritmo deve verificar primeiramente se as dimensões formam um tri-
ângulo, escrevendo “não é um triângulo” quando não formar. Caso forme um triângulo, o algo-
ritmo deve classificá-lo como equilátero, isósceles ou escaleno. Seguem as regras:
• Para formar um triângulo, nenhum dos lados pode ter comprimento igual a zero e nenhum 
dos lados pode ter comprimento igual a soma dos demais lados.
• Para ser um triângulo equilátero, todos os lados devem ter o mesmo comprimento.
• Para ser um triângulo isósceles, dois lados devem possuir o mesmo comprimento.
• Para ser um triângulo escaleno, todos os lados devem possuir comprimentos diferentes.
Minha primeira dica para esse algoritmo é não olhar a solução que virá na sequência. Lem-
bre-se: é muito importante a prática para o desenvolvimento do raciocínio lógico. 
Vamos aprender as dicas para construção do algoritmo? Primeiramente, tente compreen-
der, do ponto de vista prático, as restrições que o enunciado nos impõe. Entenda como elas cor-
relacionam para que você possa organizar a construção do seu algoritmo.
Quando começar a escrever o algoritmo, tenha em mente que você deve tentar 
quebrá-lo em partes, para que fique mais simples. Dessa forma, vamos tentar aplicar 
uma regra do enunciado de cada vez. Sabendo que essa regra funciona (fazendo pe-
quenos testes de mesa direcionados), aí sim, passamos à próxima regra.
Agora é a hora de pegar o papel e a caneta, para escrevê-lo ou iniciar um novo algo-
ritmo no Visualg, caso você se sinta mais confortável. Lembre-se:só pule para a solução 
quando você tiver concluído ou se você não conseguiu desenvolver por conta própria.
47ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Ao analisar a solução, atente para os comentários (frase que vem após a sequência de duas 
barras “//”). Quando estiver criando um algoritmo que possua um nível de complexidade maior, 
utilize a técnica de comentar os trechos que são mais importantes para o seu entendimento.
Se você chegou até aqui e ficou um pouco confuso, volte um pouco no material e releia 
com calma o funcionamento das estruturas condicionais. No final do capítulo, você encon-
trará alguns exercícios para praticar. Se desejar, neste momento, você pode tentar resolver 
algum destes exercícios antes de seguir adiante para o último tipo de estrutura condicional, 
que pode ser utilizada na construção dos algoritmos.
ESTRUTURA DE SELEÇÃO MÚLTIPLA ESCOLHA
Antes de entendermos como funciona esse tipo de seleção, vamos deixar claro que ela 
não é uma estrutura essencial. Isso quer dizer, que os problemas que podemos solucionar 
com esse tipo de estrutura, também podem ser solucionados com uma estrutura do tipo 
“se-então-senão” aninhadas.
Iniciaremos por um exemplo de problema e solução, utilizando uma estrutura “se-en-
tão-senão”. Posteriormente, solucionaremos o mesmo problema, porém, utilizando uma 
estrutura de seleção múltipla escolha.
Suponha o seguinte problema:
Escreva um algoritmo que calculará o valor a ser pago como IPTU (Imposto Predial e 
Territorial Urbano). Para isso, o algoritmo deverá ler dois números. O primeiro representa 
o código de um tipo de imóvel e o segundo representa a área do imóvel, cujo IPTU será cal-
culado. O cálculo é realizado, multiplicando-se a área do imóvel pelo fator referente ao tipo 
do imóvel, conforme tabela. Caso o código do tipo do imóvel digitado não esteja presente 
na tabela, apresente uma mensagem de erro informando: “Tipo do imóvel inválido”. Se o 
código digitado for válido, realize o cálculo e escreva a área digitada, a descrição do tipo do 
imóvel e o valor do IPTU calculado.
Lembre-se! Primeiro tente solucionar por conta própria, após verá a solução.
Obs: a área do imóvel não é necessariamente um número inteiro.
Código Tipo Imóvel Fator IPTU
1 Residencial – Casa R$ 200,00
2 Residencial – Prédio R$ 180,00
3 Comercial – Casa R$ 300,00
4 Comercial – Prédio R$ 280,00
5 Industrial R$ 400,00
Executando algoritmo
48ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Espero que você tenha chegado até aqui com um 
algoritmo que solucione o problema proposto. Não 
tenho a pretensão que o algoritmo seja igual ao pro-
posto, mas acredito que o seu também venha estar 
bem estruturado para solução do problema. Agora, 
analisaremos a solução dada.
Primeiramente, quero falar de uma técnica que 
foi usada. Conforme o enunciado do algoritmo, o 
cálculo do IPTU é o mesmo, independente do tipo do 
imóvel, o que muda é somente o fator e a descrição 
do tipo do imóvel. Tendo isso em mente, criamos es-
truturas condicionais que somente preenchem vari-
áveis para cada tipo de imóvel. No final do algoritmo, 
na linha 37, uma outra estrutura condicional testa se 
o fator de multiplicação é igual a zero, informando 
que, caso esse teste retorne verdadeiro, o código do 
imóvel digitado é um código inválido. Esse teste se 
torna verdadeiro no caso de um código inválido, pois 
na linha 12, a variável fator foi inicializada com va-
lor zero. A aplicação dessa técnica permite que não 
repitamos as linhas 40 à 43 em cada um dos testes 
realizados pelas estruturas condicionais.
49ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Agora, analisaremos as estruturas condicionais. Note, entre as linhas 13 e 36, não passam de 
estruturas condicionais “se-então-senão” aninhadas. Cada uma das estruturas verifica se o código 
digitado corresponde ao da estrutura, para, em caso verdadeiro, atribuir os valores corresponden-
tes às variáveis “fator” e “tipo imóvel”. Caso a expressão de seleção seja avaliada como falsa, passa 
para o próximo teste a ser realizado dentro do bloco “senão”, até que atinja o último teste (“código 
= 5”), onde não é necessário ter uma estrutura “senão”, pois a mensagem de código inválido está 
sendo validada com o teste simples, realizado na linha 37. Construir o algoritmo, isolando os testes 
lógicos de seleção do teste lógico de saída, facilitará uma alteração do algoritmo para, por exemplo, 
colocarmos mais códigos de tipos de imóveis. Nesse caso, bastaria complementarmos o último teste 
de validação (linha 29) para incluirmos uma estrutura senão e continuaremos conforme a quanti-
dade de novos testes que forem necessários.
Caso não tenha ficado claro o funcionamento desse algoritmo, sugiro digitá-lo no Visualg, as-
sim como está, e executá-lo passo a passo para entender como o mesmo será executado. Siga adian-
te somente após entendermos a lógica aplicada. Isso é essencial para compreensão da estrutura de 
seleção múltipla escolha.
Agora que já está bem entendido o funcionamento desse algoritmo, vamos iniciar a análise de uma 
situação que acontece nele. Especificamente, entre as linhas 13 e 36, como vimos anteriormente, estamos 
somente verificando o código digitado para atribuirmos o valor às variáveis referentes ao código digitado.
Note que a estrutura aninhada já começa a se tornar visualmente complicada para o entendimen-
to do algoritmo. Imagina se tivéssemos nas regras do enunciado uma tabela com 10 códigos de tipo de 
imóveis. Imagine o quão complicado seria essa estrutura condicional.
É justamente para resolver esse problema que a estrutura de seleção múl-
tipla escolha existe. Com essa nova estrutura não precisamos ficar aninhando 
estruturas do tipo “se-senão-então”. Modificaremos esse algoritmo para en-
tender como funciona essa estrutura.
50ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
A mudança ocorreu entre as linhas 13 a 36 do primeiro algoritmo, 
que foram substituídas pelas linhas 13 a 29 desse novo algoritmo.
Na linha 13, iniciamos pela palavra reservada, “escolha”, segui-
da da variável “código”. Essa instrução indica que está sendo iniciada 
uma estrutura múltipla escolha que avaliará o valor da variável “códi-
go”. Nas linhas 14, 17, 20, 23 e 26, temos a palavra reservada “caso” e 
os possíveis valores à variável. Isso quer dizer que será testado o valor 
da variável e a execução pulará à linha do valor correspondente. Ao en-
contrarmos o valor correspondente, a execução seguirá pelas linhas de 
código posteriores até que seja encontrada uma instrução com a palavra 
reservada “caso”, “fim escolha” e uma outra palavra reservada que ve-
remos na sequência. Encontrar uma dessas palavras reservadas indica o 
final do bloco de instruções do caso.
Não ficou claro? Não se preocupe! Analisaremos a estrutura de for-
ma isolada e fora do contexto do problema.
Agora, com a estrutura isolada, fica mais fácil entendermos como ela funciona. Note na primeira linha a 
palavra reservada “escolha”, seguida da variável que será testada.
Das linhas 2 a 8 temos sempre um caso testado com a palavra reservada homônima, seguido de um bloco 
de instruções referente ao caso.
Agora, na linha 9, surgiu uma nova palavra reservada, chamada “outrocaso”. Conforme havíamos co-
mentado anteriormente, três palavras reservadas encerram um bloco de instruções de um caso. São elas 
“caso”, que indica que um novo teste está inciando; “fimescolha” que indica o final de toda a estrutura de 
seleção de múltipla escolha, e, agora, a palavra reservada “outrocaso”.
Essa palavra “reservada” indica que iniciou um bloco de instruções, que será executado sempre que não 
for encontrado um caso correspondente para o valor da variável que acompanha o início da estrutura. 
Dentro da estrutura de seleção de múltipla escolha, podemos ter quantos casos desejarmos, porém, só po-
deremos ter um bloco final do tipo “outrocaso”, dentro da estrutura representada pela palavra “fimescolha”.
É importante salientarque não é obrigatória a utilização do bloco “outrocaso” dentro da estrutura. Note, 
no exemplo do cálculo do IPTU, que essa estrutura não foi utilizada, já que o teste para o código inválido é feito 
através da estrutura “se-então-senão”, que testa a variável, “fator”, para saber se o código informado é válido.
A ideia de utilizarmos essa estrutura para realização de testes é não aninharmos muitas estruturas do 
tipo “se-então-senão” quando todas elas testam um valor de uma determinada variável.
Vamos praticar um pouco para fixarmos todo o conteúdo visto no capítulo? 
51ALGORITMOS E PROGRAMAÇÃO I
EXERCÍCIOS SUMÁRIO
Alguns enunciados pedirão, explicitamente, para que seja utilizada uma determinada estrutura de seleção. Aqueles 
que não o fizerem, você pode optar por utilizar qualquer estrutura que atenda as necessidades para a solução do algoritmo.
Lembre que você pode utilizar tanto o Visualg, quanto o papel e caneta para escrever os algoritmos. Sugiro que ten-
te as duas abordagens para sempre estar ciente que o funcionamento do algoritmo é o mais importante.
1. Escreva um algoritmo que leia um número, identifique e escreva se ele é divisível por 10, 5, 3 e 2, escrevendo por 
quais outros ele é divisível. Se ele não for divisível por nenhum, escreva “não é divisível”. Obs.: ele pode ser divisí-
vel por mais de um dos números solicitados.
2. Escreva um algoritmo que leia 5 números - o maior e o menor dos 5 números.
3. Escreva um algoritmo que calcule a quantidade de combustível para percorrer 
uma distância que será informada. Para identificar o consumo de combustível 
do veículo, será lido um código que representa o tipo do veículo e o consumo 
que cada tipo está especificado na tabela. Caso o tipo informado não estiver na 
tabela, informe que o tipo de veículo informado é inválido. Obs.: deve ser utili-
zada uma estrutura de múltipla escolha.
4. Uma loja de óculos de grau criou uma promoção que fornece descontos aos clientes conforme a sua idade. O valor 
do desconto é calculado da seguinte forma: a idade da pessoa é igual ao valor do desconto aplicado ao produto, po-
rém, o desconto não pode ser superior à metade do valor original do produto. Considerando essa regra, a loja so-
licitou que você criasse um programa (algoritmo) que lerá o valor do produto e a idade do cliente e, considerando 
tais dados, informará o valor do desconto e o valor a pagar pelo produto, já com o desconto aplicado.
Código Consumo
1 14Km/l
2 12Km/l
3 10Km/l
4 6Km/l
5 5Km/l
52ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
1. Nesse capítulo, aprendemos que é possível controlar o fluxo de execução do algoritmo 
através das estruturas condicionais, que através da avaliação de uma expressão lógica, 
determina aonde seguirá a execução.
2. Foi visto que a estrutura condicional mais simples é a do tipo “se-então” que, com 
base na expressão lógica, determina se o trecho de código do bloco “então” será ou 
não executado.
3. A partir da estrutura “se-então”, evoluímos para a estrutura “se-então-senão”, que 
possibilitará a execução de diferentes blocos, um quando a expressão condicional é 
avaliada como verdadeira (bloco “então”) e outra quando falsa (bloco “senão”).
RESUMINDO O CAPÍTULO
4. Aprendemos a construir algumas expressões lógicas mais complexas através dos ope-
radores lógicos.
5. Novamente, evoluímos as estruturas condicionais, porém, sem um novo conceito. Foi 
visto que podemos aninhar as estruturas condicionais para formar uma “cascata” de 
validações.
6. Por último, mas não menos importante, vimos que as expressões condicionais ani-
nhadas podem ser transformadas em uma estrutura de seleção múltipla, quando todas 
elas validam diferentes possibilidades de valores sobre uma mesma variável.
53
ESTRUTURAS DE 
REPETIÇÃO
O nome “estrutura de repetição” já deve ter despertado um certo 
interesse, porém, não sei se ele é autoexplicativo com relação a sua 
funcionalidade. Compreenderemos sua funcionalidade através da 
necessidade de sua existência.
54ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Vamos supor o seguinte enunciado:
Escreva um algoritmo que imprima os números pares no intervalo entre 1 e 10, inclusive.
Suponho que a criação desse algoritmo não seria nenhum problema para você, afi-
nal, bastariam 5 comandos “escreval” para atender ao requisito do problema.
Agora, vamos modificar o problema para, ao invés do intervalo de 1 a 10, o intervalo 
de -100 a 100. Acredito que você deva estar achando que isso é loucura. Imagina escrever-
mos 200 vezes o comando “escreval”. Para que isso?
Na verdade, esse é um exemplo conceitual, mas alguns problemas práticos do mes-
mo estilo existem e podem ser solucionados sem que seja necessário, por exemplo, de 200 
linhas com o mesmo comando.
Aqui, ocorrem as estruturas de repetição, similares ao controle de fluxo da execução 
exercido pelas estruturas condicionais, controlam o fluxo para executar um número finito, 
ou não, de vezes em um determinado trecho do algoritmo, chamado de bloco de repetição.
Da mesma forma que temos mais de um tipo de estrutura condicional, também temos 
mais de um tipo de estruturas de repetição, cada uma com sua característica e funcionalidade.
Vamos aprender passo a passo, desde suas características, sintaxe e funcionamento.
ESTRUTURA DE REPETIÇÃO DE NÚMEROS DEFINIDOS
Como comentado na introdução do capítulo, a estrutura de repetição permite que um blo-
co de comandos seja executado mais de uma vez. No caso da estrutura de repetição de números 
definidos, o próprio nome já nos indica quantas vezes o bloco de repetição será executado.
Por números definidos, não se engane e ache que se trata de uma quantidade definida e 
conhecida de vezes. O que isso quer dizer? Quer dizer que a quantidades de vezes pode ser de-
finida através do valor digitado pelo usuário e que está armazenado em uma variável.
Bom, vamos deixar de ficar imaginando como funciona e aprenderemos de uma vez como 
realmente acontece. E para isso, nada melhor do que um problema para ser solucionado.
Escreva um algoritmo que, primeiramente, solicite ao usuário que digite a quantidade de 
números que serão, posteriormente, lidos para o cálculo da média aritmética entre eles.
Tendo em vista esse enunciado, acredito que agora ficou claro que não seria possível 
construir esse algoritmo com o conhecimento sobre a construção que tínhamos até agora. 
Certo? Não temos como prever qual número o usuário digitará para realizarmos todas as 
leituras necessárias.
Agora, analisando o problema proposto, aprenderemos o que precisamos fazer.
55ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
1. Vamos solicitar que o usuário digite um número N.
2. Depois, vamos solicitar que ele digite por N vezes números através de um bloco 
de repetição. Cada número digitado deve ser somado em uma variável para cal-
cular a média posteriormente (lembre que, anteriormente, já vimos como se re-
aliza o cálculo da média aritmética – se não lembra, corre à internet pesquisar).
3. Após o término das leituras, vamos calcular a média, utilizando a soma realizada 
no bloco de repetição e a quantidade de números N.
4. Por fim, mostraremos o resultado para o usuário.
Agora, vamos traduzir isso para um algoritmo:
Vamos compreender o que foi criado nesse algoritmo para o funcionamento dessa estrutura!?
Na linha 3 foram declaradas as variáveis do tipo inteiro, que utilizaremos no decorrer do 
algoritmo. A variável “quantidade” armazenará a quantia de números que o usuário quer calcu-
lar em média. A variável “numero” servirá para ler cada um dos números que o usuário digitar 
para calcular a média. O valor dessa variável sempre armazenará o último número lido, por isso 
precisamos da variável “soma”, que servirá para irmos somando cada um desses números. Por 
último, temos a variável “incremento”, que até agora pode não estar fazendo muito sentido. 
Essa variável tem a função de servir de controle para que a estrutura de repetição saiba por ondecomeçar e até aonde deve ir até parar. Essa variável será incrementada cada vez que o bloco de 
repetição for executado por inteiro.
Na linha 4, temos somente a declaração da variável média que, como o nome já sugere, ar-
mazenará a média calculada. O tipo dela é real, pois nem sempre a divisão da soma pela quantidade 
retornará um número inteiro.
Importante: até o momento foi utilizado o termo “estrutura de repetição”, 
porém, é muito comum encontrarmos na literatura, ou até conversando 
com outras pessoas ligadas ao contexto de desenvolvimento de sistemas, a 
expressão “laço de repetição”. No decorrer do material, você poderá encontrar 
as duas expressões, que serão utilizadas conforme se encaixar melhor nas 
frases, mas elas representarão exatamente a mesma coisa.
56ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Agora, vamos pular para a linha 10 (acredito que as anteriores você sabe bem o que 
fazem). Nessa linha, começa a estrutura de repetição. Esse comando, no português estrutu-
rado, que estamos utilizando, é quase uma frase comum. Mas vamos analisar em partes. A 
estrutura inicia com a palavra reservada “para” seguida da variável que controlará a quan-
tidade de repetições, no nosso caso, a variável incremento. Após, temos a palavra reservada 
“de” seguida de um número que indica o valor inicial, que será atribuído à variável de con-
trole. Na sequência, mais uma palavra reservada, agora a palavra é “ate”, que está seguida 
de outro número que indica o valor final, que a variável incremento deve ser maior, para que 
o laço de repetição se encerre. E, por último, nessa linha, a palavra reservada “faca”, que 
indica, que dali em diante, inicia o bloco de repetição.
Por ora, vou desconsiderar a análise do bloco de repetição que está entre as linhas 11 a 13.
Vamos continuar a análise na linha 14. Essa linha está nos indicando que ali é o fim da 
estrutura de repetição, ou seja, demarcando o final do bloco de repetição.
Ainda, antes de analisar o bloco de repetição, vamos entender como funciona a estru-
tura. Concentre-se para ler exatamente as palavras, com calma, e para auxiliar o entendi-
mento, uma tabela verdade somente da variável “incremento” e “quantidade”.
Suponha que o usuário digitou 3 na leitura realizada na linha 7. Vamos agora à linha 
10, onde inicia-se a estrutura de repetição. Ao executar essa linha, por ser a entrada no 
laço de repetição, será atribuído o valor inicial à variável “incremento”, no caso 1, e será 
realizada a validação de uma expressão lógica “incremento > quantidade”. Como a ex-
pressão retorna falso (variável quantidade possui valor 3), dizemos que o fluxo de execu-
ção “entra” na estrutura de repetição.
Serão executados os comandos das linhas 11 a 13 até que a execução chegue à pa-
lavra reservada “fimpara” na linha 14. Conforme visto anteriormente, essa palavra re-
servada indica o final do bloco de repetição e, também, que o fluxo deve retornar para o 
início da estrutura de repetição. 
57ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Como agora não estamos mais na entrada da estrutura de repetição, esse comando 
incrementará em uma unidade a variável “incremento”, para 2, e validará se o valor dela é 
maior que o valor da variável quantidade. A validação é falsa (2 não é maior que 3), então a 
execução seguirá novamente para o bloco de repetição, atingindo o “fimpara” e retornando 
novamente para linha 10. 
Novamente, será incrementada a variável “incremento” e testada para validar se é 
maior que o valor final. E mais uma vez a validação é falsa (3 não é maior que 3), então o flu-
xo seguirá da linha 11 até a linha 14, retornando mais uma vez para linha 10.
A variável “incremento” sofre mais um incremento, passando para o valor 4. Mais 
uma vez é feita a validação, porém, a expressão retorna verdadeiro. Nesse momento, o fluxo 
da execução pulará à linha, imediatamente após a palavra “fimpara”. No nosso caso, essa 
linha é um comentário, então o próximo comando a ser executado é o da linha 16. 
Pronto! A estrutura de repetição finalizou sua execução e agora o fluxo seguirá seu 
curso normal.
Agora que estamos entendidos como funciona a estrutura de repetição, podemos vol-
tar e analisar o bloco de repetição, das linhas 11 a 13.
Na verdade, não precisamos de uma análise mais detalhada, pois trata-se de um bloco 
simples, onde é informado para o usuário que ele deve digitar o enésimo número (lembra o 
que está armazenado na variável “incremento”), através do comando “escreval”, onde será 
feita a leitura desse número, através do comando leia, e o valor é acumulado na variável soma.
Aqui cabe um comentário importante. Lembra que na linha 8 a variável “soma” rece-
beu o valor 0. Isso é feito, porque a forma de acumular um valor com os demais anteriores 
acontece, somando-se o valor da própria variável com o valor que se deseja acumular. Por 
isso, o comando da linha 13 é “soma = soma + número”.
Na linha 16 e 17 também não temos nenhuma novidade. A primeira realiza o cálculo da 
média, dividindo o valor acumulado na variável soma pela quantidade de números lidos. A 
segunda escreverá o valor final da variável média para o usuário.
Ficou confuso? Minha sugestão é a mesma dos capítulos anteriores. Digite o código 
no Visualg, execute-o em modo passo a passo e leia atentamente a análise que acabamos de 
fazer. Isso é muito importante antes de seguirmos adiante no conteúdo.
Isolaremos a estrutura de repetição de número definidos e analisaremos a sua sintaxe.
Analisando somente a sintaxe.
Linha 1, começa pela palavra que indica o início da estrutura, seguida da variável de 
controle. Na sequência, a palavra reservada “de”, seguida do valor inicial, que pode ser um 
número explícito ou implícito através de uma variável. Após, temos a palavra “ate”, que 
vem seguida do valor final, assim como o valor inicial pode ser explicito ou implícito. Por 
último, a palavra reservada “faca” indicando o início do bloco de repetição.
58ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
O bloco de repetição pode conter quantos comandos forem 
necessários para resolução do problema, sendo permitido a utili-
zação de qualquer tipo de comando que foi utilizado até agora no 
corpo dos algoritmos.
Por fim, na linha 3, temos a palavra reservada “fimpara” que 
tem duas funções. Indicar o final da estrutura de repetição, mo-
vendo o fluxo da execução para o início da estrutura sempre que 
a execução chegar nela, e demarcar para aonde o fluxo deve ser 
movido quando a estrutura de repetição finalizar, no caso, para o 
próximo comando válido, posterior a ela.
Chegados aqui, estamos aprendidos sobre o funcionamento 
dessa estrutura de repetição. Agora nos falta algo muito impor-
tante. PRATICAR!!!
Diferente dos outros capítulos, vou propor alguns exercícios 
específicos para cada uma das estruturas de repetição, não dei-
xando para praticar somente no final do capítulo.
Vamos ver o quão interessante pode ser tornar os nossos 
problemas, e, por consequência, nossos algoritmos.
59ALGORITMOS E PROGRAMAÇÃO I
EXERCÍCIOS SUMÁRIO
1. Produza um algoritmo que escreva os primeiros 500 números pares.
2. Escreva um algoritmo que leia um número e verifique se esse número 
é ou não primo, escrevendo o resultado na saída.
3. Escreva um algoritmo que leia o valor inicial, o quociente e os núme-
ros de termos que deverão ser calculados para produzir como saída 
uma progressão geométrica, resultante dos dados lidos.
Obs.: da mesma forma que nos exercícios anteriores, conforme mi-
nha sugestão para problemas matemáticos, quando você não lembra como 
se realiza o cálculo, neste caso a sugestão segue sendo a mesma: pesquisar. 
Isso fará com que você entenda, primeiramente, o problema, para depois 
tentar solucioná-lo através de um algoritmo.
60ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
ESTRUTURAS DE REPETIÇÕES DE NÚMEROS INDEFINIDOS
Você notou que o título está no plural? Pois é, para o caso de estrutura de repetições de 
númerosindefinidos, temos como construí-las de duas formas na linguagem algorítmica.
Antes de vermos como construímos estas estruturas, vamos entender para que elas 
servem. Nas estruturas de números definidos, lembrem que sempre tínhamos um número 
definido de repetições, que é determinado pelos valores iniciais e finais que são definidos 
no comando “PARA”. Acontece que este tipo de estrutura não permite que resolvamos este 
problema, por exemplo:
Escreva um algoritmo que leia as notas de uma turma da escola e calcule a média da 
turma. Interrompa as leituras quando o usuário digitar a nota “-1”.
Com o comando “para”, que vimos anteriormente, não temos um número definido 
de alunos, cujas notas serão lidas para que possamos interromper as leituras. É justamen-
te para permitir a solução desse tipo de problema que servem as estruturas de repetição de 
número indefinido, onde não se sabe previamente quantas repetições devem ser realizadas.
Agora que já entendemos que tipo de problema as estruturas de repetição de número 
não definido resolvem, vamos entender o porquê temos mais de um tipo. Na verdade, os 
dois tipos são bastante idênticos com relação a estrutura, o que difere um do outro, basica-
mente, é o momento em que a condição de interrupção da estrutura de repetição é realizada. 
Para que um laço de repetição de número indefinido suspenda a sua repetição, faz-se 
necessária uma expressão condicional (a mesma que é utilizada nas estruturas condicio-
nais), que será avaliada para determinar qual o fluxo de execução será realizado. É justa-
mente o local onde essa expressão condicional deve se encontrar, determinará qual estru-
tura de repetição será usada. 
Para isso, temos dois momentos, um no início do laço de repetição e outro no final do 
laço. A diferença entre um e outro, com relação ao tipo de problema que resolvem, é que no 
caso da expressão condicional estar no início, caso ela já retorne um valor falso na primeira 
execução, os comandos que compõem o corpo do laço não serão executados nenhuma vez. Já, 
quando optamos pela estrutura, cuja a expressão condicional está no final, os comandos do 
corpo serão executados ao menos uma vez.
Vamos compreender como são essas estruturas na prática?!
ESTRUTURA DE REPETIÇÃO “ENQUANTO-FAÇA”
Essa estrutura de repetição realiza o teste condicional no início da estrutura. Confor-
me comentado, isso pode fazer com que os comandos do corpo da estrutura não sejam exe-
cutados nenhuma vez.
Vamos ver qual é a sintaxe, analisando linha a linha.
61ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Na linha 1, inicia a estrutura com a palavra reservada, “enquanto”, seguida de uma 
expressão condicional e, por fim, a palavra reservada, “faca”. Na linha 2, temos os coman-
dos do bloco de repetição que podem ser um único ou mais de um. Por fim, na linha 3, temos 
a palavra reservada “fimenquanto”, que indica o final da estrutura.
Com relação ao fluxo de execução, o funcionamento é o seguinte: ao chegar no início 
dessa estrutura, será avaliada a expressão condicional. Caso ela retorne um valor verdadeiro, 
o fluxo segue para os comandos do bloco de repetição até que chegue ao final do bloco, no 
comando representado pela palavra reservada “fimenquato”. Ao chegar nesse ponto, o fluxo 
é conduzido novamente para o início do bloco, onde a expressão condicional será validada 
para determinar se continua ou não a execução dos comandos do bloco de repetição. Uma vez 
que a expressão condicional retornar um valor falso, o fluxo da execução será conduzido para 
a linha imediatamente após a palavra reservada “fimenquanto”. Lembrando que, na primei-
ra validação, caso a expressão condicional retorne falso, o fluxo já é movido para a linha pos-
terior ao final da estrutura, sem que nenhum comando do bloco de repetição seja executado.
ESTRUTURA DE REPETIÇÃO “REPITA-ATÉ”
Nesse tipo de estrutura, temos a posição inversa da estrutura condicional. Ela está po-
sicionada no final da estrutura, fazendo com que os comandos do bloco de repetição sejam 
executados ao menos uma vez.
Vamos analisar a sintaxe linha a linha:
Na linha 1, inicia a estrutura com a palavra reservada “repita”. Na linha 2, temos o 
bloco de repetição. Segue a mesma ideia dos anteriores. Por fim, na linha 3, temos a palavra 
reservada “ate”, seguida da expressão condicional.
Nesse tipo de estrutura, podemos notar facilmente que o fluxo de execução seguirá, 
primeiramente, pelo bloco de repetição para encontrar o final da estrutura, representado 
pela palavra reservada “ate”, onde a expressão condicional será avaliada. Entretanto, dife-
rente da estrutura “enquanto-faça”, onde a expressão deve retornar um valor verdadeiro, 
para que o bloco de repetição seja executado, na estrutura “repita-até”, é um valor falso que 
determinará se o fluxo deve ser retornado ao início da estrutura. Então, caso a expressão 
retorne falso, o fluxo é direcionado ao início da estrutura e caso retorne verdadeiro, o fluxo 
segue para a próxima linha, interrompendo o laço de repetição.
62ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
Vamos analisar um exemplo de algoritmo utilizando cada uma das estruturas:
1. Escreva um algoritmo que leia as notas de uma turma da escola e calcule a média da tur-
ma. Interrompa as leituras quando o usuário digitar “-1”. Caso a média final dos alunos 
ainda não tenha sido calculada, também será digitado “-1” para indicar essa situação.
O entendimento desse algoritmo, gostaria muito que você fizesse sozinho, com auxí-
lio do Visualg, na execução passo a passo. Vou explicar somente uma característica: como 
o enunciado do problema indicou que “caso a média final dos alunos ainda não tenha sido 
calculada, também será digitado -1”, estamos realizando uma primeira leitura fora do cor-
po da estrutura de repetição (linha 9). Ao chegar na linha 10, caso o valor digitado na linha 
9 (ou posteriormente na linha 14) seja “-1”, a repetição é interrompida.
2. Escreva um algoritmo que leia um valor no intervalo de [10 a 100]. A leitura encerra 
quando o usuário digitar um valor correto, dentro do intervalo. Se o valor digitado pelo 
usuário estiver fora do intervalo [10 a 100], deverá imprimir a frase “O número lido 
está fora do intervalo. Redigite!”.
Este algoritmo, eu também gostaria que você fizesse sozinho, com auxílio do Vi-
sualg, na execução passo a passo. O laço de repetição “repita” possui uma característi-
ca diferente dos outros laços estudados. O teste do valor lido é realizado no final, após a 
leitura ser realizada. No problema apresentado, o corpo da estrutura de repetição inicia 
na linha 5. Dentro da estrutura (linha 5 a 11), é realizada a leitura do “numero” (linha7) 
e, após, realiza um teste condicional (linha 8 a 10) para verificar se o número digitado é 
menor que 10 ou maior que 100. 
Caso seja verdadeiro o teste condicional, será impresso a frase “O número lido está fora 
do intervalo! Redigite!”. A estrutura de repetição encerra quando o usuário digitar um valor 
(linha 7) para a variável “numero” maior ou igual a 10, ou, menor ou igual a 100. Assim, o laço 
será interrompido quando o usuário digitar um valor correto, dentro do intervalo [10 a 100]. 
63ALGORITMOS E PROGRAMAÇÃO I
EXERCÍCIOS SUMÁRIO
1. Miguel tem hoje 2 anos e 0,88m de altura. Joana tem 4 anos e mede 
1m. Sabe-se que a taxa de crescimento de meninos e meninas é dife-
rente no decorrer do tempo. Tendo em vista essa situação, escreva um 
algoritmo que leia a idade inicial e altura de um menino e uma me-
nina e realize leituras consecutivas do crescimento anual de cada um 
deles, até que o menino esteja maior que a menina ou até que ambos 
deixem de crescer. Escreva a idade de cada um, a altura e qual deles é 
o mais alto (o menino ou a menina).
2. Escreva um algoritmo que leia dois valores, um de hora e um de mi-
nuto, informando quantos minutos se passaram desde o início do dia. 
3. Escreva um algoritmo que leia números inteiros e apresente ofato-
rial de cada número. Encerre o algoritmo quando o usuário digitar 
um número negativo.
64ALGORITMOS E PROGRAMAÇÃO I
 SUMÁRIO
1. Nesse capítulo, aprendemos as estruturas de repetição que nos permitem controlar o 
fluxo de execução, para que um trecho possa ser executado mais de uma vez, conforme 
a nossa necessidade.
2. Comentamos que podemos encontrar o termo “laço de repetição”, que representa 
igualmente as estruturas de repetição.
3. Vimos que as estruturas de repetição podem ter dois tipos: estruturas de repetição de 
número determinado e de número indeterminado, e dizer que um número é determi-
nado não, necessariamente, quer dizer que ele é conhecido.
RESUMINDO O CAPÍTULO
4. Aprendemos que podemos construir algoritmos utilizando estrutura de repetição de 
números definidos através do comando: “para-de-ate-faca”.
5. Já, para uma estrutura de repetição de números indefinidos, temos duas alternativas: 
“enquanto-faca”, onde o teste de controle é executado antes do fluxo de execução 
“entrar” no bloco de repetição, ou seja, dependendo do valor da expressão lógica, o 
fluxo da execução pode ignorar totalmente o código do bloco de repetição; “repita-a-
te”, onde o teste de controle é executado após a primeira execução do bloco de repeti-
ção, ou seja, o código será executado ao menos uma vez.
	ALGORITMO
	FRITANDO UM OVO
	CONSTRUINDO UM ALGORITMO
	RESUMINDO O CAPÍTULO
	VARIÁVEIS: TIPOS DE DADOS E OPERADORES
	TIPOS DE DADOS
	OPERADORES
	TABELA VERDADE
	PRECEDÊNCIA DE OPERADORES
	COLOCANDO EM PRÁTICA
	RESUMINDO O CAPÍTULO
	VISUALG
	DOWNLOAD
	INTERFACE DO VISUALG
	UTILIZANDO O VISUALG PARA CRIAR E EXECUTAR ALGORITMOS
	EXECUTANDO O ALGORITMO
	EXECUTANDO O ALGORITMO PASSO A PASSO
	ESTRUTURAS CONDICIONAIS
	ESTRUTURA SE-ENTÃO
	ESTRUTURA SE-ENTÃO-SENÃO
	EXPRESSÕES CONDICIONAIS COMPOSTAS
	ESTRUTURA DE SELEÇÃO ANINHADA
	ESTRUTURA DE SELEÇÃO MÚLTIPLA ESCOLHA
	RESUMINDO O CAPÍTULO
	ESTRUTURAS de repetição
	ESTRUTURA DE REPETIÇÃO DE NÚMEROS DEFINIDOS
	ESTRUTURAS DE REPETIÇÕES DE NÚMEROS INDEFINIDOS
	RESUMINDO O CAPÍTULO

Mais conteúdos dessa disciplina