Logo Passei Direto
Buscar

Apostila Programação de Computadores

Ferramentas de estudo

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

Prévia do material em texto

PROF. RICARDO LUIZ DE FREITAS 
 
2015 
 
(Adaptado da apostila “Algoritmos com VisuAlg” do Prof. Air Rabelo – 2014) 
PPrrooggrraammaaççããoo 
ddee 
CCoommppuuttaaddoorreess 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 2 
Sumário 
 
 
1 - Introdução ............................................................................................................................. 4 
1.1 - Conceitos de Algoritmo .................................................................................................. 4 
1.2 - Princípios básicos de um algoritmo ................................................................................ 4 
1.3 - Exemplo de Algoritmo “genérico” ................................................................................... 5 
1.4 - No computador, como os algoritmos são escritos? ........................................................ 5 
1.5 - Algoritmo x Programa .................................................................................................... 5 
1.6 - Linguagem de Programação .......................................................................................... 5 
1.7 - Programa Fonte ............................................................................................................. 6 
1.8 - Programa Objeto ............................................................................................................ 6 
1.9 - Compiladores ................................................................................................................. 6 
1.10 - Portugol ........................................................................................................................ 7 
1.11 - A tabela ASCII .............................................................................................................. 7 
1.12 - Síntese ......................................................................................................................... 9 
2 - O VisuAlg ............................................................................................................................ 10 
2.1 - O que é o VisuAlg? ...................................................................................................... 10 
2.2 - Instalação e Requerimentos de Hardware ................................................................... 10 
2.3 - Instalação do VisuAlg ................................................................................................... 10 
2.4 - Tela do VisuAlg: ........................................................................................................... 14 
2.5 - Barra de tarefas para edição do algoritmo: .................................................................. 15 
2.6 - Barra de tarefas para execução e controle de algoritmo: ............................................. 16 
2.7 - Visualizador de Variáveis ............................................................................................. 17 
2.8 - Janela de Saída ........................................................................................................... 17 
2.9 - Compilando e Executando um algoritmo no VisuAlg ................................................... 18 
2.10 - Síntese ....................................................................................................................... 21 
3 - O Portugol do VisuAlg: conceitos iniciais ............................................................................ 22 
3.1 - Estrutura básica de um algoritmo escrito no Portugol do VisuAlg ................................ 22 
3.2 - Linha de Comando ....................................................................................................... 22 
3.3 - Comentários no programa ........................................................................................... 22 
3.4 - Identação ..................................................................................................................... 23 
3.5 - Dados ........................................................................................................................... 23 
3.6 - Tipos de Dados ............................................................................................................ 24 
3.7- Variáveis ....................................................................................................................... 24 
3.8 - Nomes (ou identificadores) de Variáveis ...................................................................... 26 
3.9 - Declaração de Variáveis .............................................................................................. 28 
3.10 - Linha de Comando no VisuAlg ................................................................................... 29 
3.11 - Comando de Atribuição: atribuindo valores às Variáveis ........................................... 29 
3.12 - Operadores e Expressões Aritméticas ....................................................................... 30 
3.12.1 - Operadores Aritméticos ....................................................................................... 30 
3.12.2 - Expressões Aritméticas ....................................................................................... 31 
3.13 - Operadores e Expressões Lógicas (Booleanas) ........................................................ 33 
3.13.1 - Operadores Relacionais ...................................................................................... 33 
3.13.2 - Operadores Lógicos ............................................................................................ 34 
3.13.3 - Tabela Verdade para operações lógicas: ............................................................ 35 
3.13.4 - Expressões booleanas ........................................................................................ 35 
3.14 - Síntese ....................................................................................................................... 35 
4 - Comando de saída de dados: escrevendo informações na tela ......................................... 37 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 3 
4.1 - Comando ESCREVA ................................................................................................... 37 
4.2 – Exercícios Resolvidos ................................................................................................. 41 
4.3 - Síntese ......................................................................................................................... 43 
5 - Comando de entrada de dados: recebendo dados ao usuário ........................................... 44 
5.1 - Comando LEIA ............................................................................................................. 44 
5.2 - Exercícios Resolvidos .................................................................................................. 46 
5.3 - Síntese ......................................................................................................................... 48 
6 - Estrutura Condicional: o computador tomando decisões .................................................... 49 
6.1 - Comando SE ................................................................................................................ 49 
6.1.1 - Forma Simples ...................................................................................................... 49 
6.1.2 - Forma Composta ................................................................................................... 51 
6.2 - Estrutura Condicional Composta Aninhada ................................................................. 53 
6.3 - Exercícios Resolvidos .................................................................................................. 56 
6.4 - Síntese ......................................................................................................................... 59 
7 - Estruturas de repetição (laço ou loop) ................................................................................60 
7.1 - Comando PARA ........................................................................................................... 62 
7.2 - Variação da quantidade de repetições do comando PARA ......................................... 66 
7.3 - Utilização dos valores da variável auxiliar do comando PARA .................................... 67 
7.4 - Uso de CONTADORES dentro das estruturas de repetição ........................................ 70 
7.5 - Uso de SOMATÓRIOS dentro das estruturas de repetição ......................................... 73 
7.6 - Séries Matemáticas ...................................................................................................... 76 
7.7 - Exercícios Resolvidos .................................................................................................. 80 
7.8 - Síntese ......................................................................................................................... 83 
8 - Estruturas de repetição (quantidade indefinida de repetições) ........................................... 84 
8.1 - Comando ENQUANTO ................................................................................................ 84 
8.2 - Comando REPITA ........................................................................................................ 88 
8.3 - Comparação entre o PARA, ENQUANTO e REPITA ................................................... 92 
8.4 - Uso de estrutura de repetição para fazer consistência na entrada de dados .............. 93 
8.5 - Uso do comando INTERROMPA para finalizar abruptamente um loop ....................... 95 
8.6 - Exercícios Resolvidos .................................................................................................. 98 
8.7 - Síntese ....................................................................................................................... 101 
ANEXO 1 ............................................................................................................................... 102 
 
 
 
 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 4 
1 - Introdução 
 
1.1 - Conceitos de Algoritmo 
 
Conceito genérico: 
 
Algoritmo é a descrição de uma sequência de passos que deve ser seguida para a realização 
de uma tarefa. 
 
 
Conceito voltado para os computadores: 
 
Algoritmo é uma sequência finita de instruções ou operações cuja execução, em tempo finito, 
resolve um problema computacional. 
 
É a forma pela qual descrevemos soluções para problemas que serão implementadas 
posteriormente em uma linguagem de programação e executadas pelo computador. 
 
Pode ser escrito através de pseudo linguagens, como o Portugol, ou símbolos como em 
fluxogramas. 
 
 
1.2 - Princípios básicos de um algoritmo 
 
O algoritmo segue os mesmos princípios básicos de operações em um computador: 
 
Entrada de Dados: é processo pelo qual os dados são inseridos no computador. 
 
Processamento dos Dados: é o conjunto de operações / cálculos que são executados com os 
dados inseridos na Entrada de Dados. 
 
Saída de Dados: é o resultado do processamento dos dados. 
 
 
 
 
 
Entrada 
de dados 
Saída de 
dados 
Processamento 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 5 
Exemplo: 
 
 
 
 
1.3 - Exemplo de Algoritmo “genérico” 
 
 
 
Preparar um sanduíche: 
 
 
Passo 1 – Pegar o pão 
Passo 2 – Pegar a alface e o tomate 
Passo 3 – Pegar a maionese 
Passo 4 – Pegar o hambúrguer 
 
Entrada de dados 
Passo 5 – Cortar o pão ao meio 
Passo 6 – Passar a maionese no pão 
Passo 7 – Cortar o tomate 
Passo 8 – Colocar a alface e o tomate no pão 
Passo 9 – Fritar o hamburguer 
Passo 10 – Colocar o hambúrguer no pão 
 
Processamento 
Etapa 11 – Entregar o sanduíche pronto para o cliente Saída de dados 
 
 
1.4 - No computador, como os algoritmos são escritos? 
 
Os algoritmos são escritos utilizando uma linguagem de programação como o Pascal, 
linguagem C, Java, e outras, e são chamados de programas. 
 
 
1.5 - Algoritmo x Programa 
 
Um programa é a conversão, ou tradução, de um algoritmo para uma determinada linguagem 
de programação, seguindo suas regras de sintaxe de forma a permitir que o computador 
possa interpretar e executar a sequência de comandos pretendidos. 
 
 
1.6 - Linguagem de Programação 
 
Uma linguagem de programação é um conjunto de símbolos (comandos, identificadores, 
caracteres, etc.) e regras de sintaxe que permitem a construção de sentenças que descrevem 
de forma precisa ações compreensíveis e executáveis para o computador. 
 
Exemplos de linguagens de programação: Basic, Pascal, Algol, Fortran, Cobol, C++, .Net, 
Java, etc. 
 
5 , 2 , 7 6 7 + 5 ÷ 2 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 6 
 
1.7 - Programa Fonte 
 
Programa fonte é composto por uma sequência de comandos escritos em uma linguagem de 
programação. As linguagens de programação permitem que os programas sejam escritos e 
interpretados pelo homem, mas não podem ser interpretados pelo computador. 
 
Exemplo (programa fonte escrito em Pascal): 
 
program CalculaFatorial; 
{ Função: calcular o fatorial de um número informado pelo usuário } 
var Numero, Fatorial, Contador : integer; 
begin 
 write('Informe um número: '); 
 readln(Numero); 
 Fatorial := 1; 
 for Contador := 2 to Numero do 
 begin 
 Fatorial := Fatorial * Contador; 
 end; 
 write('Fatorial = ',Fatorial); 
end. 
 
Exemplo (programa fonte escrito em Java): 
 
public class CalculaFatorial { 
public static void main(String[] args) throws IOException { 
System.out.print("Informe um número: "); 
Scanner scanner = new Scanner(System.in); 
long numero = scanner.nextLong(); 
long fatorial = 1L; 
for(long contador = 2; contador <= numero; contador++){ 
fatorial = fatorial * contador; 
} 
System.out.println("Fatorial = " + fatorial); 
} 
} 
 
 
1.8 - Programa Objeto 
 
Programa objeto é aquele composto por uma sequência de comandos escritos em linguagem 
de máquina. A linguagem de máquina é composta de símbolos binários que é interpretada 
pelo computador, mas não pode ser interpretada pelo homem. 
 
 
1.9 - Compiladores 
 
Compiladores são programas utilizados para se criar outros programas baseado em uma 
linguagem de programação. 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 7 
Ele permite ao programador a digitação e edição do programa fonte, e o converte para o 
programa objeto a ser interpretado pelo computador. Ou seja, é um editor e tradutor de 
programa fonte em programa objeto. 
 
Uma mesma linguagem de programação pode ser utilizada no programa fonte de diversos 
compiladores, mas um mesmo compilador só aceita uma única linguagem de programação no 
seu programa fonte. 
 
Etapas na criação de um programa: 
 
Edição: digitação e alteração do programa; 
Compilação: verificação de erros de sintaxe do programa (depuração); 
Execução (teste): executar (rodar) o programa, entrando com os dados e obtendo os 
resultados. 
 
Erros que podem aparecer durante a criação: 
 
Sintaxe: identificado pelo compilador na etapa de compilação; 
Lógica: identificado pelo usuário na etapa de execução. 
 
Exemplos de compiladores x linguagem de programação que ele utiliza: 
 
VisuAlg/ G-Portugol = Portugol 
PascalZIM / Delphi = Pascal 
JBuilder / Eclipse / JDK = Java 
 
 
1.10 - Portugol 
 
Portugol é uma pseudo linguagem de programação criada a partir da antiga linguagem de 
programação Algol traduzida para a língua portuguesa. Seu objetivo é facilitar a escrita de 
algoritmos por iniciantes em programação cuja língua nativa seja a língua portuguesa, já que 
as linguagens de programação utilizam apenas palavras-chave escritas na língua inglesa. 
 
O Portugol, além de utilizar apenas palavras-chave da língua portuguesa, também possui um 
conjunto de regras bem mais simples do que as linguagens de programação, isto facilita muito 
a escrita de algoritmos por programadores aprendizes. 
 
Existe um compilador para o Portugol? 
 
Oficialmente não, masse procurarmos na internet acharemos algumas opções de 
compiladores freeware (gratuitos) extra oficiais como o VisuAlg, o G-Portugol, e outros. 
 
Neste material utilizaremos o VisuAlg para compilarmos e executarmos nossos algoritmos 
escritos em Portugol. 
 
 
1.11 - A tabela ASCII 
 
Para escrever um programa fonte devemos utilizar um editor de programa que utilizará 
somente os caracteres da tabela ASCII, ou seja, não se utiliza em programas fonte 
formatações do tipo negrito, itálico, tamanho de fonte, e outra. 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 8 
ASCII (American Standard Code for Information Interchange), em português: "Código Padrão 
Americano para o Intercâmbio de Informação". É uma codificação de caracteres de sete bits 
(27 = 128 códigos) ou 8 bits - ASCII estendida (28 = 256 códigos) baseada no alfabeto inglês. 
Cada sequência de códigos na tabela ASCII corresponde a um caractere, comumente 
representados pelos 8 bits (equivalente a um byte). Os códigos ASCII representam texto em 
computadores. Desenvolvida a partir de 1960, grande parte das codificações de caracteres 
modernas a herdaram como base. 
 
O quadro a seguir mostra uma parte da tabela ASCII com os caracteres mais utilizados: 
 
http://pt.wikipedia.org/wiki/Codifica%C3%A7%C3%A3o_de_caracteres
http://pt.wikipedia.org/wiki/Bit
http://pt.wikipedia.org/wiki/Alfabeto_ingl%C3%AAs
http://pt.wikipedia.org/wiki/Byte
http://pt.wikipedia.org/wiki/1960
Programação de Computadores–Prof. Ricardo Luiz de Freitas 9 
 
 
 
1.12 - Síntese 
 
Neste capítulo você aprendeu conceitos básicos de algoritmos e de programação de 
computadores. 
 
No próximo capítulo vamos conhecer o VisuAlg e aprender a trabalhar com ele. 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 10 
2 - O VisuAlg 
 
2.1 - O que é o VisuAlg? 
 
O VisuAlg é um aplicativo freeware que permite escrever, compilar, executar, depurar erros, 
executar passo a passo, entre outras funcionalidades, em algoritmos escritos em Portugol. 
Sem o uso de uma ferramenta como o VisuAlg, você ficaria impossibilitado de executar seus 
algoritmos, podendo apenas escrevê-los em papel e imaginando os resultados que seriam 
alcançados quando o mesmo for reescrito utilizando uma linguagem de programação. 
 
 
2.2 - Instalação e Requerimentos de Hardware 
 
O VisuAlg é um programa simples, que não depende de DLLs, OCXs ou outros componentes. 
Sua instalação não copia arquivos para nenhuma outra pasta a não ser aquela em que for 
instalado, e exige cerca de 1 MB de espaço em disco. Pode ser executado sob Windows 95 
ou posterior, e tem melhor aparência com resolução de vídeo de 800x600 ou maior. 
 
 
2.3 - Instalação do VisuAlg 
Primeiramente devemos baixar o programa utilizando o link a seguir, ou em outro disponível 
na Internet. Escolha sempre a versão mais nova. 
http://www.apoioinformatica.inf.br/produtos/VisuAlg 
Após baixar o arquivo execute-o e siga os passos demonstrados a seguir: 
 
 
Figura 1: Tela de apresentação - clique em “Avançar” 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 11 
 
 
 
Figura 2: Caminho da instalação - clique em “Avançar” 
 
 
 
 
 
Figura 3: Instalação de Componentes - clique em “Avançar” 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 12 
 
 
 
Figura 4: Nome do grupo: pode editar ou deixar padrão - clique em “Avançar” 
 
 
 
 
 
 
Figura 5: Tarefas Adicionais - clique em “Avançar” 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 13 
 
 
 
Figura 6: Confirmação das configurações - clique em “Instalar” 
 
 
 
 
 
Figura 7: Conclusão da Instalação - clique em “Concluir” 
 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 14 
2.4 - Tela do VisuAlg: 
 
 
 
Menu→ 
→ 
Barras de 
tarefas 
 
 
→ 
Janela de 
digitação 
e edição 
do 
algoritmo 
 
 
 
 
→ 
Janela de 
visualiza-
ção das 
variáveis 
e seus 
valores 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
← 
Janela de 
visualiza-
ção da 
telade 
execução 
do 
algoritmo 
 
 
 
Ao criar um novo programa o VisuAlg já mostra no editor texto um "esqueleto" de algoritmo, 
cuja intenção é, além de poupar trabalho ao usuário, mostrar a estrutura básica de um 
algoritmo com suas 4 palavras chave obrigatórias (algoritmo...var...inicio...fimalgoritmo), bem 
como os seus comentários iniciais antecedidos pelos caracteres //. 
 
Cabeçalho do algoritmo (deve ser alterado antes de se iniciar a criação do algoritmo): 
 
 “semnome” → o texto deve ser substituído pelo nome interno do algoritmo (uma única 
palavra, e deve ser igual ao nome do arquivo, ao se salvar no disco o 
algoritmo; 
 Função → breve descrição do que faz o algoritmo em uma frase curta, de uma 
linha que não pode ultrapassar a demarcação da tela; 
 Autor → digitar seu nome (obrigatório); 
 Data → colocada automaticamente pelo VisuAlg no momento da criação do 
algoritmo. 
 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 15 
2.5 - Barra de tarefas para edição do algoritmo: 
 
Contém os comandos mais utilizados. É possível acessá-los também pelo menu ou pelos 
atalhos do teclado. 
 
 
Novo (Ctrl+N) - Cria um novo "esqueleto" de algoritmo, substituindo o texto existente no editor. 
Se este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja 
sobreposto. 
 
Abrir (Ctrl+A) - Abre um algoritmo anteriormente gravado, substituindo o texto existente no 
editor. Se este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que 
seja sobreposto. 
 
Salvar (Ctrl+S) - Salva imediatamente o texto do editor. Caso seja a primeira vez que um novo 
texto é gravado, o VisuAlg pedirá o seu nome e localização. 
 
Imprimir (Ctrl+P) - Imprime imediatamente o texto existente no editor. Para configurar a 
impressão, use o comando Imprimir... do menu Arquivo. 
 
Recortar (Ctrl+X) - Move um texto selecionado para a memória. 
 
 
Copiar (Ctrl+C) - Copia um texto selecionado para a memória. 
 
 
Colar (Ctrl+V) - Retira conteúdo da memória e coloca no local do cursor. 
 
 
Gravar Bloco - Abre uma janela para salvar o bloco selecionado. Objetivo é criar uma espécie de 
biblioteca de funções. 
 
 
Inserir um bloco - Insere um bloco arquivado no local do cursor. 
 
 
Desfazer e refazer - Desfaz e refaz ação criada no editor de texto. 
 
 
Localizar - Abre uma janela para você digitar a palavra que deseja localizar no Editor de textos. 
 
Substituir - Abre uma janela para você poder digitar a palavra que deseja localizar e substituir no 
Editor de textos. 
 
 
Corrigir Identação (Ctrl+G) - Corrige automaticamente a identação do "código-fonte", colocando 
os comandos dentro de uma estrutura de 3 colunas à direita da coluna inicial da estrutura 
conforme a configuração padrão. 
 
Numerar Linhas - Liga/desliga a exibição dos números das linhas na área à esquerda do editor. 
A linha e coluna do editor em que o cursor está em um determinado momento também são 
mostradas na primeira parte da barra de status, situada na parte inferior da tela. Os números de 
linhas, caso ligados, são desligados durante a execução do algoritmo por motivos técnicos, mas 
são ligados de volta ao fim do "programa". 
 
Mostra Variáveis Modificadas - Liga/desliga a exibição da variável que está sendo modificada. 
Como o número de variáveis pode ser grande, muitas podem estar fora da janela de visualização; 
quando esta característica está ligada, o programa rola a grade de variáveis de modo que aquela 
que está sendo modificada no momento fique visível. Útil quando se está executando o algoritmo 
passo a passo. Por questões de performance, o valor padrão desta característica é desligada 
quando o algoritmo está sendo executado automaticamente, mas se você clicar este botão pode 
executar o algoritmo automaticamente com a exibição ligada. O valor volta automaticamente para 
desligada ao fim da execução. 
 
Restaura a tela inicial do VisuAlg - Retorna a tela originaldo programa. 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 16 
2.6 - Barra de tarefas para execução e controle de algoritmo: 
 
 
 
 
Executar (F9) - Inicia (ou continua) a execução automática do 
algoritmo. 
 
Executar com Timer (Shift+F9) - Executa o algoritmo linha por linha 
automaticamente determinado por um tempo escolhido pelo o 
usuário. 
 
Passo (F8) - Inicia (ou continua) a execução do algoritmo linha por 
linha, dando ao usuário oportunidade de acompanhar o fluxo do 
programa, examinar variáveis, etc. 
 
Parar (Ctrl+F2) - Termina imediatamente a execução do algoritmo. 
Este botão fica desabilitado quando o algoritmo não está sendo 
executado. 
 
Liga / Desliga Breakpoints (F5) - Cria pontos de parada. Selecione 
a linha que deseja criar um ponto de parada na hora de execução do 
algoritmo e pressione o BreakPoints surgirá uma linha marrom e um 
marcador do lado esquerdo para indicar o ponto de parada. Para 
desmarcar o ponto de parada basta selecionar a linha que possui o 
breakpoint e clicar no mesmo. O breakpoints não funciona no modo 
passo a passo e para continuar o algoritmo depois de uma parada 
pressione novamente o F9 ou o botão Executar. 
 
Desmarca todos os BreakPoints (Ctrl+F5) 
 
Executa algoritmo em Modo DOS - Quando ativado durante a 
execução do algoritmo ele executa o algoritmo em uma janela em 
modo DOS. 
 
Gerador valores - Substitui digitação do usuário por um sistema de 
geração aleatória de valores numéricos e caractere (este comando 
não afeta a leitura de variáveis do tipo lógico - com certeza uma 
coisa pouco usual). Gera números e caracteres aleatoriamente, 
muito útil para não perder tempo pensando o que digitar, você 
escolhe o início e o fim dos valores e se for valores com casas 
decimais é só escolher quantas casas decimal você quer. 
 
Perfil (F7) - Mostra, após a execução de um algoritmo, quantas 
vezes cada linha foi executada. Útil para a análise de eficiência de 
um algoritmo, como por exemplo, nos métodos de classificação. 
 
Mostra a pilha de Ativação dos procedimentos e Funções 
(Ctrl+F3) - Mostra a pilha de ativação do programa com o nome dos 
procedimentos e funções chamados, nome, tipo e valor dos 
parâmetros. 
 
Ajuda on-line (F1) - Help do VisuAlg. 
 
 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 17 
2.7 - Visualizador de Variáveis 
 
Contém uma grade onde são exibidos: 
 
 Escopo: indica se é uma variável: 
o GLOBAL (válida em todo o algoritmo) ou 
o LOCAL de um procedimento ou função; 
 Nome: exibe o nome da variável, com índice ou índices, caso seja um elemento de um 
vetor; 
 Tipo: exibe tipo da variável: "R" para Real, “I” para Inteiro, "C" para literal e "L" para 
lógico; 
 Valor: exibe o valor atual armazenado na variável. 
 
 
 
 
2.8 - Janela de Saída 
 
Exibe as Entradas e Saídas de dados do algoritmo. Se o algoritmo estiver sendo executado 
em modo DOS, as Entradas e Saídas de dados serão exibidas na janela DOS e nesta janela 
também. 
 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 18 
 
 
2.9 - Compilando e Executando um algoritmo no VisuAlg 
 
Ao abrir o VisuAlg, a partir do “esqueleto”, digite o algoritmo na janela principal (veja exemplo 
na Figura 8). Não se preocupe com a formatação do texto, o próprio editor se incumbirá disto. 
Após a digitação (ou mesmo durante) pressione as teclas Ctrl e G juntas para que o editor 
faça a identação automática do algoritmo de acordo com a precedência dos comandos (a 
Figura 9 mostra o algoritmo já identado). 
 
 
Figura 8: Tela do VisuAlg após a digitação do algoritmo 
 
 
 
Figura 9: Tela do VisuAlg após a identação (Ctrl+G) do algoritmo 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 19 
Após a digitação e identação do algoritmo, passa-se para a fase de compilação e execução 
do mesmo. Você deve pressionar a tecla de função F9 ou clicar no ícone . O VisuAlg 
começa a compilar e executar o algoritmo, linha a linha. A medida que ele vai compilando as 
linhas, ele as executa. Quando o VisuAlg “passa” pela Seção de Declarações das variáveis, 
as mesmas vão sendo alocadas na memória do computador e passam a figurar na janela de 
visualização de variáveis (janela inferior esquerda), com valores zerados (variáveis 
numéricas) ou em branco (variáveis alfanuméricas). Quando ele “passa” para a Seção de 
Comandos, abra-se uma janela de fundo preto na tela, e as linhas de comando vão sendo 
compiladas (a sintaxe do comando é verificada) e elas vão sendo executadas. Se o VisuAlg 
não encontrar nenhum erro de compilação o algoritmo é executado até o fim de seus 
comandos e encerrado, conforme Figura 10. 
 
 
 
Figura 9: Tela do VisuAlg após a compilação e execução do algoritmo 
 
 
Para fechar a tela preta pressiona-se a tecla ESC do teclado, com o VisuAlg retornando para a 
tela de edição. 
 
Dicas Importantes: 
 
1) Se durante ou depois da execução do seu algoritmo o VisuAlg travar, ou seja, não aceitar a 
digitação de nenhuma tecla, clique na opção “Parar” no menu “Algoritmo”, que ele 
destravará. 
 
2) Se aparecerem linhas vermelhas durante a edição de seu algoritmo no VisuAlg, fazendo-o 
ser interrompido durante a execução, clique na opção “Desmarcar todos os 
breakpoints” no menu “Algoritmo”, que as linhas desaparecerão e seu algoritmo rodará 
livremente. 
 
3) Se durante a execução de seu algoritmo no VisuAlg aparecer a mensagem de erro “Access 
Violation”, salve o seu programa, feche o VisuAlg, abra-o novamente, abra o seu programa e 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 20 
continue a trabalhar nele normalmente descobrindo o erro de sintaxe que gerou a mensagem 
de erro anterior. 
 
E se foram encontrados erros de compilação? 
 
Se, quando da compilação de uma linha do algoritmo, o VisuAlg encontrar algum erro de 
sintaxe, seja na Seção de Declarações ou na Seção de Comandos, após a abertura da janela 
de fundo preto, uma outra janela é aberta mostrando a linha onde foi encontrado o erro e 
sugerindo qual erro pode ser (nem sempre as sugestões do VisuAlg devem ser seguidas). 
Você pode consertar o erro nesta própria janela e clicar em “Continuar”, ou clicar em 
“Terminar” e voltar para a tela de edição, para aí sim consertar o erro na própria tela de 
edição do algoritmo. 
 
 
 
Figura 10: Tela do VisuAlg após a compilação e execução do algoritmo 
 
 
Depois de acertados todos os erros de compilação, ou fazemos novas alterações no 
programa original e o compilamos/executamos de novo, ou partimos para a criação de um 
outro algoritmo clicando-se na tecla , ou encerramos o VisuAlg, fechando a sua janela. 
Porém, antes de uma destas duas últimas ações, que causará o abandono do algoritmo atual, 
o VisuAlg abre uma outra janela e pergunta se você quer o salvar o algoritmo no computador 
(Figura 11). 
 
 
Figura 11: Janela do VisuAlg perguntando se quer salvar o algoritmo 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 21 
Se for quiser salvar o algoritmo, clique em “Sim” e uma outra janela será aberta (Figura 12). 
Selecione o local e a pasta onde o arquivo será gravado, digite o nome do arquivo 
(substituindo Semnome.alg), e clique em “Salvar”. 
 
 
Figura 12: Janela do VisuAlg solicitando informações para gravação do algoritmo 
 
 
Pronto! Seu algoritmo está criado, testado e salvo no computador! 
 
 
2.10 - Síntese 
 
Neste capítulo você conheceu o VisuAlg, como baixá-lo da internet e instalá-lo em seu 
computador. Além disso aprendeu a utilizá-lo: criar, compilar, editar, e executar programas no 
mesmo. 
 
Nos próximos capítulos vamos aprender as técnicas básicas de criação de algoritmos no 
VisuAlg utilizando a linguagem Portugol. 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 22 
3 - O Portugol do VisuAlg: conceitos iniciais 
 
 
3.1 - Estrutura básica de um algoritmo escrito no Portugol do VisuAlg 
 
Algoritmo "semnome" 
// Função : 
// Autor : 
// Data : 
// Seção de Declarações 
varinicio 
// Seção de Comandos 
 
fimalgoritmo 
 
 
Obs.: O Portugol do VisuAlg não faz distinção entre letras minúsculas e letras maiúsculas, 
sendo assim, comandos, tipos, nomes de variáveis e outros, escritos em letras minúsculas 
são exatamente iguais aos escritos em letras maiúsculas. 
 
Entretanto, nesta disciplina vamos adotar como regra as boas práticas de programação 
genéricas (descritas ao longo desta apostila) que indicam onde devem ser utilizadas letras 
maiúsculas ou minúsculas. A adoção destas boas práticas desde o princípio do aprendizado 
em programação de computadores ajudará o aluno a criar códigos bem escritos e de 
qualidade, facilitará também o uso delas futuramente quando os alunos estiverem criando 
programas utilizando linguagens de programação. 
 
 
3.2 - Linha de Comando 
 
O Portugol utilizado no VisuAlg permite apenas um comando por linha, desse modo, não há 
necessidade de utilização de símbolos indicando o final de uma linha de comando, como o 
ponto e vírgula utilizado em Pascal e Java. 
 
Importante: Para facilitar a digitação e aproximar das linguagens de programação, todas as 
palavras-chave, nomes de variáveis, vetores e outros, não utilizam acentuação, nem cedilha, 
etc. Por exemplo o tipo de dados lógico será escrito logico, o comando se...então...senão 
será escrito se...entao...senao, e assim por diante. 
 
 
3.3 - Comentários no programa 
 
Comentários são textos inseridos no programa fonte com o objetivo de explicar ou 
documentar uma lógica, uma variável ou outro objeto qualquer. Os comentários são ignorados 
pelo compilador, portanto não são levados para o programa objeto. 
 
Os comentários podem ocupar uma ou mais linhas no programa, e para inseri-los se utiliza os 
símbolos//no princípio de cada linha ou logo a frente de uma linha de comando. 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 23 
No editor de programas do VisuAlg, sempre que um comentário for inserido, o mesmo será 
exibido na cor verde para destacar das demais linhas de comandos. 
 
Exemplo: 
 
Algoritmo "CalcularIdade" 
// Função : Calcular a idade de uma pessoa 
// Autor : Air Rabelo 
// Data : 16/05/2014 
// Seção de Declarações 
var 
 diaNasc, // dia da data de nascimento 
 mesNasc: inteiro // mês da data de nascimento 
inicio 
// Seção de Comandos 
 escreva("Digite o dia de nascimento: ") 
 leia(diaNasc) 
 escreva("Digite o mês de nascimento: ") 
 leia(mesNasc) 
 ... 
fimalgoritmo 
 
 
3.4 - Identação 
 
Identação é o recuo de um texto em relação a sua margem. Em programação de 
computadores, ou na construção de algoritmos em Portugol, utilizamos a identação para 
ressaltar a estrutura do algoritmo, organizar o código e indicar grupos e subgrupos de 
comandos, o que facilita a interpretação do código escrito pelo programador. A identação irá 
indicar com clareza que um conjunto de comandos pertence a uma certa estrutura de código. 
Isto engrandece a qualidade do algoritmo e apesar da identação não ser obrigatória, um 
código escrito sem identação ficará confuso e de difícil interpretação. 
 
Neste material utilizaremos as técnicas de identação indicadas pelas boas práticas de 
programação especificamente para a construção de algoritmos em Portugol. 
 
Um código de qualidade escrito por um programador experiente deixará de ser bom se não 
tiver seguido as boas práticas de programação e/ou não tiver utilizado corretamente as regras 
de identação. 
 
Nas sintaxes das estruturas condicionais e de repetição serão indicadas as identações 
utilizadas para ilustrar e exemplificar este conceito. 
 
 
3.5 - Dados 
 
O dado é a própria essência de um algoritmo ou programa de computador. 
 
Existem dados de diversas formas: caracteres, imagem, som, temperatura, luz, movimento, 
etc. 
 
Ele pode ser informado pelo usuário, gerado pelo programa, processado pelo computador, e 
impresso para o usuário como uma informação. 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 24 
 
 
3.6 - Tipos de Dados 
 
Tipos de dados são maneiras pelas quais os dados são tratados: 
 
 Constantes: são aqueles dados cujos valores não se alteram durante a execução do 
algoritmo; 
 Variáveis: são aqueles dados cujos valores podem ser alterados durante a execução 
do algoritmo. 
 
Eles se classificam em: 
 
 Simples: 
 
o Numéricos: utilizam somente dígitos e possuem valor de grandeza numérica: 
 INTEIRO: 
 São os valores numéricos inteiros (sem casas decimais); 
 Podem ser valores positivos ou negativos; 
 Variando entre -999999999 e 999999999; 
 Ex.: 0, -2, 47, 58, 123220, -34235 
 REAL: 
 São os valores numéricos que possuem casas decimais; 
 Podem ser valores positivos ou negativos; 
 Ex.: 0.12, -45.17, 3.14159, 0.000001 
 
o Não Numéricos: 
 CARACTERE: 
 Utilizam qualquer caractere da tabela ASCII e são interpretados como um 
texto; 
 Geralmente são delimitadas por aspas (“ ”); 
 Ex.: “Rua”, “Computação”, “20/10/1998” 
 LOGICO: 
 Assumem apenas dois valores: verdadeiro ou falso; 
 
 Estruturados: 
 
o Arquivos; 
o Vetores; 
o Matrizes. 
 
Obs.: No sistema de numeração da nossa língua portuguesa utilizamos no conjunto de 
números reais a vírgula (,) como o símbolo que separa os valores inteiros dos decimais. 
Entretanto, assim como nas linguagens de programação, o símbolo utilizado para separar os 
valores inteiros dos decimais no VisuAlg é o ponto (.). 
 
 
3.7- Variáveis 
 
Passaremos a chamar somente de variável os tipos de dados variáveis. Mas o que é uma 
variável? 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 25 
Em termos lógicos é o registro formal, dentro do algoritmo, dos dados a serem utilizados pelo 
próprio algoritmo. 
 
Em termos físicos é uma posição na memória do computador reservada pelo algoritmo, 
durante a sua execução, para armazenar dados a serem utilizados pelo próprio algoritmo. 
 
Estes dados podem ter sido gerados pelo próprio algoritmo (comandos de repetição, comando 
de atribuição, etc.) ou inseridos pelo usuário quando da execução de um comando de 
entrada/leitura de dados. 
 
Quando precisarmos armazenar um dado na memória, atribuímos este dado ao nome de uma 
variável. Exemplo: 
 
→ comando para guardar a camisa na 
Gaveta1: 
gaveta1 <- "camisa" 
 
→ comando para guardar a meia na 
Gaveta2: 
gaveta2 <- "meia" 
 
→ comando para guardar a bermuda na 
Gaveta3: 
gaveta3<- "bermuda" 
 
 
 
 
Toda vez que precisarmos buscar um dado armazenado na memória utilizamos o nome da 
variável para identificar o dado. Exemplo: 
 
→ comando para mostrar o que tem na Gaveta1: 
 escreva(gaveta1) 
 
→ comando para mostrar o que tem na Gaveta2: 
 escreva(gaveta2) 
 
→ comando para mostrar o que tem na Gaveta3: 
 escreva(gaveta3) 
 
Importante: 
 
1) Toda variável de memória deve ter um nome e deve estar associada a um tipo de dado 
(inteiro, real, caractere ou lógico). 
 
2) Toda variável armazena apenas um valor por vez. 
 
3) Toda vez que um valor é atribuído a uma variável, o seu valor anterior será sobreposto. 
Portanto as variáveis armazenam apenas o último valor atribuído a elas. 
 
Exemplo: 
 
idade <- 30 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 26 
idade <- 50 
escreva(idade) 
 
Na primeira linha do exemplo anterior a variável idade recebe o valor 30. Neste momento o 
único valor armazenado na variável é 30. 
 
Na segunda linha a mesma variável idade recebe o valor 50. Desta forma, o antigo valor 30 
foi sobreposto pelo novo valor 50. Após a execução desta segunda linha, o único valor que a 
variável idade estará armazenando será o último que ela recebeu, ou seja, 50. 
 
Na terceira linha, o comando escreva irá exibir na tela o conteúdo da variável idade. O 
valor que será exibido na tela será 50, que é o último valor recebido pela variável idade, e 
por isto é o único valor que estará armazenado nela. 
 
 
3.8 - Nomes (ou identificadores) de Variáveis 
 
Os nomes de variáveis devem seguir as seguintesregras: 
 
→ o primeiro caractere do nome de uma variável deve ser sempre uma letra ou o caractere 
sublinhado ( _ ); 
 
→ o segundo e demais caracteres do nome de uma variável podem ser somente letras, 
números ou sublinhado ( _ ), ou seja, não podem conter ESPAÇOS ou caracteres especiais 
(@, ?, !, -, etc.); 
 
→ não podem ser utilizados c cedilha (ç) e nem letras acentuadas; 
 
→ podem ter no máximo 127 caracteres de tamanho; 
 
→ não podem ser utilizadas as palavras reservas do VisuAlg (ver anexo 1). 
 
 
Obs.: O VisuAlg não diferencia letras maiúsculas de minúsculas, mas a maioria das 
linguagens de programação faz esta diferenciação. Neste material utilizaremos nomes de 
variáveis escritos somente com letras minúsculas, e quando forem nomes compostos, a 
primeira letra a partir da segunda palavra será maiúscula. Isto, apesar de não ser uma 
exigência do VisuAlg, é uma boa prática de programação que é adotada pela maioria das 
linguagens de programação modernas. 
 
Exemplos de nomes válidos para variáveis: 
 
nomeAluno cidadeNatal 
dataNascimento somaSalarios 
endereco_1 percentualAprovados 
endereco_2 mediaNotas 
 
Exemplos de nomes inválidos para variáveis: 
 
médiaIdades 5Jose 
data-nascimento façanhas 
A$1 Percentual de Aprovados 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 27 
 
Os nomes das variáveis devem passar ao programador (ou quem está lendo o 
programa/algoritmo) a origem do dado que a variável vai armazenar, ou seja, não devemos 
criar nomes que não tenham nada a ver com o conteúdo da variável ou constante: 
 
Exemplos de nomes apropriados para variáveis: 
 
idade salario 
nomefruta soma_Custos 
contador enderecoCorrespondencia 
 
Exemplos de nomes inapropriados para variáveis: 
 
I i23er21 
xyz xibobo 
abcd ricardo 
 
Exemplo de algoritmo utilizando nomes de variáveis inapropriadas e sem qualquer tipo de 
documentação: 
 
Algoritmo "X" 
var 
 a, b, c : inteiro 
inicio 
 leia(a) 
 b <- 1 
 para c de 2 ate a faca 
 b <- b * c 
 fimpara 
 escreval(b) 
fimalgoritmo 
 
O mesmo algoritmo utilizando nomes de variáveis apropriadas, comentários e mensagens 
elucidativas: 
 
Algoritmo "CalculaFatorial" 
// Função : Calcular o fatorial de um número 
// Autor : Ricardo Freitas 
// Data : 17/11/2014 
// Seção de Declarações 
var 
 Numero, Fatorial, Contador : inteiro 
inicio 
// Seção de Comandos 
 escreva("Informe um número: ") 
 leia(Numero) 
 Fatorial <- 1 
 para Contador de 2 ate Numero faca 
 Fatorial <- Fatorial * Contador 
 fimpara 
 escreval("Fatorial = ",Fatorial) 
fimalgoritmo 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 28 
 
3.9 - Declaração de Variáveis 
 
Como vimos no início deste capítulo, a estrutura de um algoritmo em VisuAlg segue o 
seguinte formato: 
 
 
algoritmo "semnome" 
var 
 
 
inicio 
 
 
fimalgoritmo 
 
 
 
Toda variável precisa ser declarada antes de ser utilizada. A declaração de uma variável 
consiste em criar o seu nome e atribuir a ela um tipo de dado, que pode ser inteiro, real, 
caractere ou lógico. 
 
No Portugol do VisuAlg as variáveis devem sempre ser declaradas no início do algoritmo, logo 
após a palavra-chave var. 
 
Exemplo 1: 
 
Variáveis declaradas uma em cada linha seguidas do seu tipo de dado: 
 
Algoritmo "PrimeiroAlgoritmo" 
// Seção de Declarações 
var 
 idade : inteiro 
 numero : inteiro 
 altura : real 
 peso : real 
 salario : real 
 nomePai : caractere 
 rua : caractere 
 bairro : caractere 
 dtNasc : caractere 
inicio 
// Seção de Comandos 
 ... 
fimalgoritmo 
 
Exemplo 2: 
 
Variáveis declaradas, se forem do mesmo tipo, uma em cada linha, separadas por vírgula, e 
na última linha o tipo delas: 
 
Algoritmo "PrimeiroAlgoritmo" 
// Seção de Declarações 
Nome interno do algoritmo e deve estar entre aspas. 
Neste espaço deve vir a relação de variáveis que o 
algoritmo irá utilizar, associadas ao seu respectivo 
tipo de dados (inteiro, real, caractere ou lógico). 
Neste espaço deve vir a relação dos comandos que 
o algoritmo irá executar. 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 29 
var 
 idade, 
 numero : inteiro 
 altura, 
 peso, 
 salario : real 
 nomePai, 
 rua, 
 bairro, 
 dtNasc : caractere 
inicio 
// Seção de Comandos 
 ... 
fimalgoritmo 
 
Exemplo 3: 
 
Variáveis declaradas, se forem do mesmo tipo, na mesma linha, separadas por vírgula, 
seguida do tipo delas: 
 
Algoritmo "PrimeiroAlgoritmo" 
// Seção de Declarações 
var 
 idade, numero : inteiro 
 altura, peso, salario : real 
 nomePai, rua, bairro, dtNasc : caractere 
inicio 
// Seção de Comandos 
 ... 
fimalgoritmo 
 
 
3.10 - Linha de Comando no VisuAlg 
 
No VisuAlg cada linha de comando deve ocupar apenas uma linha no programa fonte. Desta 
forma, o que indica o final de uma linha de comando é a mudança de linha no editor de texto. 
 
Exemplos: 
 
Salário <- 2786.5 
leia(sexo) 
nomeAluno <- "Marcelo dos Santos" 
categoria <- "A" 
escreva("O nome do aluno é: ",nomeAluno) 
aprovado <- falso 
salario <- salario + tempoCasa – descontoValeTransp + 2786.5 
texto <- "O VisuAlg permite escrever algoritmos em Portugol" 
 
 
3.11 - Comando de Atribuição: atribuindo valores às Variáveis 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 30 
Para se atribuir (ou armazenar) um valor qualquer a uma variável utiliza-se o comando de 
atribuição do VisuAlg (<-), que é representado pelo sinal de menor seguido pelo sinal de 
subtração. 
 
Para atribuir um valor a uma variável do tipo caracter utiliza-se as aspas (" ") para delimitar 
o valor. 
 
Quando um valor é atribuído a uma variável o valor armazenado anteriormente na mesma é 
perdido, pois, como já foi dito, uma variável só armazena um valor ao mesmo tempo. 
 
Na linha de comando para atribuição de valores a uma variável, a variável sempre deverá ser 
escrita à esquerda do comando de atribuição (<-) e o valor a ser atribuído escrito à direita. 
 
O uso destes dois sinais como comando de atribuição (<-) se justifica por visualmente 
representarem uma seta em sentido para esquerda, o que indica que o valor escrito à direta 
do comando será inserido na variável escrita à esquerda do comando. 
 
Obs.: Para digitar o comando de atribuição não pode haver espaço entre o sinal menor e o 
sinal de subtração, ou seja, os dois sinais devem ser digitados em sequência sem espaço 
entre eles. Entretanto, por questões de clareza do código, é recomendado utilizar espaço 
antes e depois do comando de atribuição, como nos exemplos seguintes. 
 
Exemplos: 
 
Idade <- 25 // tipo inteiro 
nota1 <- 3 // tipo inteiro 
nota2 <- 4 // tipo inteiro 
salário <- 2786.5 // tipo real 
nomeAluno <- "Marcelo dos Santos" // tipo caracter 
sexo <- "F" // tipo caracter 
alunoFoiAprovado <- verdadeiro // tipo logico 
notaFinal <- nota1 + nota2 // tipo inteiro 
inss <- salario * 8 / 100 // tipo real 
 
 
Obs.: Na quarta linha dos exemplos anteriores, a variável notaFinal recebe nota1+nota2. 
Quando o comando de atribuição é utilizado em conjunto com uma expressão aritmética ou 
operação (neste caso o operador aritmético soma) o valor que será atribuído a variável será o 
resultado da operação. Desta forma, como nota1 recebeu o valor 3 e nota2 recebeu o valor 
4, notaFinal receberá o resultado da soma de 3 + 4, ou seja, o valor 7 será atribuído a 
variável notaFinal. 
 
 
3.12 - Operadores e Expressões Aritméticas 
 
3.12.1 - Operadores Aritméticos 
 
Os operadores aritméticos são utilizados para efetuar operações aritméticas com números 
inteiros e reais. São eles: 
 
Operador Operação Exemplos de uso 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 31 
+ Soma soma <- numero + 4 
- Subtração resultado <- 100 - soma 
* Multiplicação inss <- salario * 0.08 
/ Divisão media <- soma / 7 
^ Potência quadrado <- valor ^ 2 
\ 
Resultadode uma 
divisão inteira 
metade <- numero \ 2 
% 
Resto de uma divisão 
inteira 
sobra <- numero % 3 
 
 
Exemplos de resultados de expressões utilizando os operadores mostrados: 
 
 
 
 
 
 
 
 
 
 
 
 
 
3.12.2 - Expressões Aritméticas 
 
É a tradução de uma equação matemática (fórmula) para a linguagem algorítmica, utilizando 
os operadores aritméticos, variáveis e constantes numéricas para compor as expressões. 
 
Em uma operação matemática ou expressão aritmética, composta de vários operadores, a 
ordem de execução dos operadores é: 
 
1° → o que está entre parênteses 
2° → operações de potência (^) 
3° → operações de multiplicação (*), divisão comum (/) e divisão inteira (\ e %) 
4° → operações de soma (+) e subtração (-) 
 
Obs.: Para mudarmos a ordem de execução dos operadores utilizamos os parênteses, em 
quantos níveis precisarmos. 
 
Exemplo: 
 
9 + 4 = 13 
9 - 4 = 5 
9 * 4 = 36 
9 / 4 = 2.25 
9 ^ 4 = 6561 
9 \ 4 = 2 
9 % 4 = 1 
 
9 4 
8 2 → Resto da divisão inteira ( \ ) 
1 → Resto da divisão inteira ( % ) 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 32 
 
 
 
Exemplos de fórmulas matemáticas traduzidas para a linguagem algorítmica: 
 
Exemplos 1: 
 
 
 
→ y <-x^ 2 
 
→ y <-x^ (1 /2) ou y <-x^ 0.5 
 
→ y <-x^ (1 /3) 
 
→ y <-x^ (4 /5) 
 
 
Exemplos2: 
 
 
→ area <- 3.1416 *r^2 
 
→ fx <- 4 *x^2 + 7 *x– 2 
 
→ valor <- (n1 + n2 + n3) / 3 - 5 
 
Exemplo 3: 
Percentual = 10% de Valor 
→ percentual <- 10 % valor (INCORRETO!!!) 
→ percentual <- valor * 10 / 100 
→ percentual <- valor * 0.1 
 
 
Exemplos de decomposição numérica de variáveis inteiras utilizando os operadores \ 
(resultado da divisão inteira) e % (resto da divisão inteira): 
 
 
 
 
5 4
3
2
xy
xy
xy
xy




2RArea 
274)( 2  xxxf
5
3
321



nnn
Valor
Programação de Computadores–Prof. Ricardo Luiz de Freitas 33 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A variável inteira N, que no exemplo anterior contém o valor 98765, poderá ser decomposta 
conforme os casos mostrados, e um ou mais dígitos dela (a esquerda, a direita ou no meio) 
poderão ser extraídos. Para isto deverão ser utilizados os operadores de divisão inteira (\ e %) 
conforme demonstrados, em conjunto com valores múltiplos de 10. Para extrair dígitos a 
esquerda utiliza-se o operador de resultado da divisão inteira (\) e para extrair dígitos a direita 
utiliza-se o operador de resto da divisão inteira (\). Para extrair dígitos do meio da variável, 
deve-se utilizar os dois operadores em uma operação composta. 
 
Obs.: Quanto se utiliza os operadores de divisão inteira numa expressão ou em um comando, 
todas as variáveis do comando têm que ser declaradas como inteiro, sob pena de resultar 
em erro de sintaxe naquela linha durante a compilação, ou cálculos incorretos quando da 
execução da linha. 
 
 
3.13 - Operadores e Expressões Lógicas (Booleanas) 
 
3.13.1 - Operadores Relacionais 
 
Os operadores relacionais são utilizados para efetuar a comparação entre dados (variáveis ou 
constantes) de mesmo tipo. São eles: 
 
Operador Operação Exemplos de uso 
= Igual a notaA = notaB 
<> Diferente de notaA <> notaB 
> Maior que notaA > notaB 
< Menor que notaA < notaB 
>= Maior ou igual a notaA >= notaB 
<= Menor ou igual a notaA <= notaB 
 
 
O resultado de uma operação relacional é sempre um valor lógico, ou seja, verdadeiro ou 
falso. 
 
N \ 10000 = 9 
N \ 1000 = 98 
N \ 100 = 987 
N \ 10 = 9876 
N % 10 = 5 
N % 100 = 65 
N % 1000 = 765 
N % 10000 = 8765 
10000 1000 100 10 
N \ 1000 % 10 = N % 10000 \ 1000 = 8 
N \ 100 % 10 = N % 1000 \ 100 = 7 
N \ 10 % 10 = N % 100 \ 10 = 6 
\ % 
N = 98765 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 34 
Exemplos: 
 
Considere a = 1, b = 3, c = 5 
 
a = c // falso 
a > b // falso 
b <= c // verdadeiro 
a <> b // verdadeiro 
 
 
3.13.2 - Operadores Lógicos 
 
Os operadores lógicos são utilizados para se conectar duas ou mais operações relacionais ou 
inverter o seu valor. São eles: 
 
Operador O que representa 
e união 
ou escolha 
nao negação ou inversão 
 
 
Para os exemplos a seguir considere notaA = 50, notaB = 70, notaC = 85 
 
 
Exemplo 1: 
 
 
 
Neste exemplo, o resultado final será verdadeiro porque os dois valores comparados com o 
operador e são verdadeiros, ou seja, V e V = V. 
 
 
Exemplo 2: 
 
 
 
Neste segundo exemplo, o resultado é verdadeiro porque com o operador ou basta um dos 
valores serem verdadeiros que o resultado é verdadeiro, ou seja, V ou F = V. 
 
 
Exemplo 3: 
 
 
 
Neste terceiro exemplo, o resultado é falso porque o operador nao inverte um valor lógico, ou 
seja, nao V = F. 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 35 
 
 
Obs.: No VisuAlg, em todas os testes condicionais que utilizam operadores lógicos é 
obrigatório o uso de parênteses. Os parênteses são obrigatórios somente nos valores que 
estão a esquerda e a direita dos operadores e/ ou, e no valor que está à direita do operador 
nao (como no exemplo 3). Qualquer outro uso de parênteses em operações compostas é 
opcional e a critério do usuário. As boas práticas de programação recomendam o uso de 
parênteses em operações muito complexas para enfatizar as prioridades para resolução da 
operação. 
 
 
3.13.3 - Tabela Verdade para operações lógicas: 
 
A seguir, são mostradas duas tabelas, chamadas tabela verdade, contendo o resultado do 
uso dos operadores lógicos sobre dois operandos. 
 
 
 
 
 
 
 
 
 
Apesar destas tabelas mostrarem apenas duas condições (V ou F), com um dos operadores 
e/ou entre elas, as conectando, o conceito se estende para expressões com duas ou mais 
condições, ou seja, quando utilizamos o operador lógico e, para se obter o resultado 
verdadeiro, todas as condições precisam ser verdadeiras. Em relação ao operador ou, para 
se obter o resultado verdadeiro, apenas uma das condições precisa ser verdadeira. 
 
 
3.13.4 - Expressões booleanas 
 
É a expressão formada pelos operadores relacionais, conectados ou não pelos operadores 
lógicos, variáveis e constantes numéricas. Elas são muito utilizadas nas estruturas 
condicionais e de repetição, que veremos nos capítulos seguintes. 
 
Em uma expressão booleana, composta de vários operadores lógicos, a ordem de execução 
dos operadores é: 
 
1° → escolha (e) 
2° → união (ou) 
 
 
3.14 - Síntese 
 
Neste capítulo você aprendeu os conceitos básicos de um algoritmo baseado na linguagem 
Portugol do VisuAlg, e o primeiro comando: atribuição de variáveis, aliado às expressões 
aritméticas. Também viu o que são expressões booleanas e seus operadores relacionais e 
lógicos. 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 36 
Nos próximos capítulos você aprenderá os comandos básicos de um algoritmo, começando 
no próximo capítulo com o comando de saída de dados, que permitirá ao algoritmo expor 
informações ao usuário. Com este e outros comandos você conseguirá construir algoritmos 
aplicáveis no seu dia a dia. 
 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 37 
4 - Comando de saída de dados: escrevendo informações na tela 
 
O comando de saída de dados é utilizado pelo algoritmo para se escrever (imprimir) 
informações na tela do computador ou em qualquer dispositivo de saída de dados 
(impressora, fax, modem, etc.). 
 
No VisuAlg só é utilizada a tela do computador como dispositivo de saída de dados. 
 
 
4.1 - Comando ESCREVA 
 
O comando de saída de dados implementado no VisuAlg é o escreva e sua variação 
escreval. 
 
Sintaxe: 
 
escreva(mensagem1, variável1, variável2, expressão1, expressão2, …) 
escreval(mensagem1, variável1, variável2, expressão1, expressão2, …) 
 
Dentro do escreva ou do escreval, as mensagens são colocadas entre aspas e o VisuAlg 
as imprime na tela exatamente como estão dentro das aspas. No caso das variáveis, ainformação que vai para a tela é o conteúdo que a variável contém naquele momento do 
programa. Já no caso das expressões, o VisuAlg calcula a mesma, e informa na tela o seu 
resultado. 
 
A diferença entre escreva e escreval é que no primeiro, o cursor se posiciona na tela logo 
a frente do último valor exibido (exemplo 1). Já no caso do escreval, o cursor se posiciona 
na primeira coluna da próxima linha (exemplo 2). 
 
Para os exemplos que se seguem a janela com borda grossa representa a tela do 
computador. 
 
 
Exemplo1: 
 
escreva("TESTE DE TELA") 
 
TESTE DE TELA_ 
 
 
Neste exemplo que utiliza o escreva, o cursor (traço sublinhado), após o VisuAlg imprimir a 
mensagem que está entre aspas, fica posicionado na mesma linha após a mensagem. 
 
 
Exemplo2: 
 
escreval("TESTE DE TELA") 
 
TESTE DE TELA 
_ 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 38 
Neste outro exemplo que utiliza o escreval, o cursor, após o VisuAlg imprimir a mensagem 
que está entre aspas, fica posicionado na linha abaixo da mensagem, na primeira coluna. 
 
 
Exemplo 3: 
 
No próximo exemplo, vamos executar o algoritmo passo a passo para entender o que cada 
comando resulta na tela. Para isto devemos executar o algoritmo pressionando-se a tecla de 
função F8 a cada linha ou comando a ser executado no algoritmo. A linha que estará sendo 
executada está sombreada e o resultado de sua execução está na janela seguinte. 
 
Vamos começar a mostrar o algoritmo a partir da execução da linha sombreada. Neste 
momento, o algoritmo imprimiu o conteúdo da variável nomeAluno e o cursor ficou 
posicionado logo após o texto impresso, devido ao uso do comando escreva, que mantém 
o cursor na mesma linha. 
 
Algoritmo "ExemploDeSaidaDeDados" 
var 
 nomeAluno : caractere 
 endereco : caractere 
 idade : inteiro 
 valorMensalidade : real 
inicio 
 nomeAluno <- "Marcelo da Silva Dias" 
 endereco <- "Rua Cobre, 200" 
 idade <- 30 
 valorMensalidade <- 500.45 
 escreva(nomeAluno) 
 escreval 
 escreval("O endereço do aluno é ",endereco) 
 escreval(valorMensalidade," é o que o aluno ",nomeAluno," paga") 
 escreval("O aluno tem ",valorMensalidade * 0.1," de desconto") 
fimalgoritmo 
 
Marcelo da Silva Dias_ 
 
 
 
Na sequência, o algoritmo simplesmente fez o curso pular para a primeira coluna da linha 
seguinte, devido ao uso do comando escreval, que faz um saldo de linha na tela. 
 
Algoritmo "ExemploDeSaidaDeDados" 
var 
 nomeAluno : caractere 
 endereco : caractere 
 idade : inteiro 
 valorMensalidade : real 
inicio 
 nomeAluno <- "Marcelo da Silva Dias" 
 endereco <- "Rua Cobre, 200" 
 idade <- 30 
 valorMensalidade <- 500.45 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 39 
 escreva(nomeAluno) 
 escreval 
 escreval("O endereço do aluno é ",endereco) 
 escreval(valorMensalidade," é o que o aluno ",nomeAluno," paga") 
 escreval("O aluno tem ",valorMensalidade * 0.1," de desconto") 
fimalgoritmo 
 
Marcelo da Silva Dias 
_ 
 
 
Na sequência, o algoritmo imprimiu o texto entre aspas (O endereço do aluno é ) e o 
conteúdo da variável endereço (Rua Cobre, 200). Depois o cursor pulou para a primeira 
coluna da linha seguinte, devido ao uso do comando escreval. 
 
Algoritmo "ExemploDeSaidaDeDados" 
var 
 nomeAluno : caractere 
 endereco : caractere 
 idade : inteiro 
 valorMensalidade : real 
inicio 
 nomeAluno <- "Marcelo da Silva Dias" 
 endereco <- "Rua Cobre, 200" 
 idade <- 30 
 valorMensalidade <- 500.45 
 escreva(nomeAluno) 
 escreval 
 escreval("O endereço do aluno é ",endereco) 
 escreval(valorMensalidade," é o que o aluno ",nomeAluno," paga") 
 escreval("O aluno tem ",valorMensalidade * 0.1," de desconto") 
fimalgoritmo 
 
Marcelo da Silva Dias 
O endereço do aluno é Rua Cobre, 200 
_ 
 
 
Na sequência, o algoritmo imprimiu o conteúdo da variável valorMensalidade (500.45), o 
texto entre aspas ( é o que o aluno ), o conteúdo da variável nomeAluno (Marcelo da 
Silva Dias) e o texto entre aspas ( paga). Depois o cursor pulou para a primeira coluna da 
linha seguinte, devido ao uso do comando escreval. 
 
Algoritmo "ExemploDeSaidaDeDados" 
var 
 nomeAluno : caractere 
 endereco : caractere 
 idade : inteiro 
 valorMensalidade : real 
inicio 
 nomeAluno <- "Marcelo da Silva Dias" 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 40 
 endereco <- "Rua Cobre, 200" 
 idade <- 30 
 valorMensalidade <- 500.45 
 escreva(nomeAluno) 
 escreval 
 escreval("O endereço do aluno é ",endereco) 
 escreval(valorMensalidade," é o que o aluno ",nomeAluno," paga") 
 escreval("O aluno tem ",valorMensalidade * 0.1," de desconto") 
fimalgoritmo 
 
Marcelo da Silva Dias 
O endereço do aluno é Rua Cobre, 200 
500.45 é o que o aluno Marcelo da Silva Dias paga 
_ 
 
Obs.: Na saída de dados anterior, na terceira linha de impressão, um espaço em braço 
apareceu antes do 500.45 pois o VisuAlg, ao imprimir uma variável numérica (inteiro ou 
real), reserva um espaço para o sinal negativo. 
 
Na sequência, o algoritmo imprimiu o texto entre aspas (O aluno tem ), o resultado da 
operação (expressão aritmética) valorMensalidade * 0.1 (500.45 x 0.1 = 50.045) 
e o texto entre aspas (de desconto). Depois o cursor pulou para a primeira coluna da linha 
seguinte, devido ao uso do comando escreval. 
 
Algoritmo "ExemploDeSaidaDeDados" 
var 
 nomeAluno : caractere 
 endereco : caractere 
 idade : inteiro 
 valorMensalidade : real 
inicio 
 nomeAluno <- "Marcelo da Silva Dias" 
 endereco <- "Rua Cobre, 200" 
 idade <- 30 
 valorMensalidade <- 500.45 
 escreva(nomeAluno) 
 escreval 
 escreval("O endereço do aluno é ",endereco) 
 escreval(valorMensalidade," é o que o aluno ",nomeAluno," paga") 
 escreval("O aluno tem ",valorMensalidade * 0.1," de desconto") 
fimalgoritmo 
 
 
Marcelo da Silva Dias 
O endereço do aluno é Rua Cobre, 200 
500.45 é o que o aluno Marcelo da Silva Dias paga 
O aluno tem 50.045 de desconto 
_ 
 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 41 
Obs.: Quando se utiliza os comandos de saída de dados com variáreis do tipo real, para 
evitar a exibição de um número excessivo de casas decimais, pode-se fazer a formatação dos 
dados de saída em relação ao número de casas decimais. Para formatar decimais no VisuAlg 
deve-se utilizar o argumento :num1:num2 logo à frente da variável, do valor, ou da expressão 
a serem formatados. Este argumento indica o tamanho total do conteúdo da variável a ser 
exibida (num1), se igual a 1(um) ocupará o que for necessário na tela, e o número de casas 
decimais a ser exibida (num2). Se o número de casas decimais originais do conteúdo da 
variável for maior do quenum2, o VisuAlg arredondará o valor original até o número de casas 
determinada por num2. 
 
 
Exemplo 4: 
 
No próximo exemplo, o algoritmo imprimiu o texto entre aspas (O Dólar vale hoje US$) e 
o conteúdo da variável valorDolar (2.3561), arredondado para 2 casas decimais 
conforme o segundo parâmetro (2) do argumento para definição de tamanho do campo e 
casas decimais (:1:2). Depois o cursor pulou para a primeira coluna da linha seguinte, 
devido ao uso do comando escreval. 
 
Algoritmo "ExemploDeParametrizaçãoDeCasasDecimais" 
var 
 valorDolar : real 
inicio 
 valorDolar <- 2.3561 
 escreval("Dólar vale hoje US$",valorDolar:1:2) 
fimalgoritmo 
 
 
Dólar valor hoje US$2.36 
_ 
 
 
4.2 – Exercícios Resolvidos 
 
Exercício 1: 
 
Faça um algoritmo que imprima o nome completo e o número de filhos de um usuário na tela 
do computador. 
 
Solução no VisuAlg: 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 42 
 
 
 
Exercício 2: 
 
Faça um algoritmo que imprima uma etiqueta de endereçamento da Fumec na tela do 
computador. 
 
Solução no VisuAlg: 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 43 
 
 
 
4.3 - Síntese 
 
Neste capítulovocê aprendeu a utilizar os comandos de saída ESCREVA/ESCREVAL, que 
têm como objetivo permitir ao programa enviar para a tela do computador mensagens e 
resultados obtidos em suas expressões. 
 
No próximo capítulo você aprenderá o comando de entrada de dados que permitirá ao usuário 
repassar dados ao programa, a fim de que eles sejam processados. 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 44 
5 - Comando de entrada de dados: recebendo dados ao usuário 
 
O comando de entrada de dados é utilizado pelo algoritmo para receber dados via teclado do 
computador ou de qualquer dispositivo de entrada de dados (scanner, câmera de vídeo, fax, 
modem, etc.). 
 
No VisuAlg só é utilizado o teclado do computador como dispositivo de entrada de dados. 
 
 
5.1 - Comando LEIA 
 
O comando de entrada de dados implementado no VisuAlg é o leia. 
 
Sintaxe: 
 
leia(variável) 
 
Os dados recebidos via teclado por meio do comando leia são armazenados em uma 
variável, que é especificada dentro do parêntesis do leia. 
 
O cursor fica “piscando” na tela de execução do VisuAlg (tela preta) aguardando que o 
usuário digite o dado via teclado e aperte a tecla ENTER. O dado é armazenado na variável 
(aparecendo na tela de Visualização de Variáveis do VisuAlg) e o cursor se posiciona na 
primeira coluna da próxima linha. 
 
O tipo de dado a ser digitado pelo usuário depende do tipo da variável utilizada no comando, 
se a variável tiver sido declarada como inteiro não podemos digitar um texto (caractere) 
ou um valor numérico com casas decimais (real), pois abortará a execução do algoritmo. 
 
Como o comando leia não permite a inserção de mensagens elucidativas sobre o dado a 
ser digitado pelo usuário, é recomendado que sempre antes de um comando leia, venha um 
comando escreva que conterá dentro dele uma mensagem orientando qual o dado a ser 
digitado pelo usuário. 
 
 
Exemplo 1: 
 
leia(nomeAluno) 
 
_ 
 
 
Neste exemplo que utiliza somente o leia, o cursor (traço sublinhado) fica “piscando” e o 
VisuAlg fica aguardando o usuário digitar algum dado e teclar ENTER. 
 
 
Exemplo 2: 
 
escreva("Digite o nome do aluno: ") 
leia(nomeAluno) 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 45 
Digite o nome do aluno: _ 
 
 
Neste outro exemplo que utiliza o escreva e o leia, o cursor (traço sublinhado) fica 
“piscando” logo depois da mensagem (uso do escreva em vez do escreval) e o VisuAlg 
fica aguardando o usuário digitar algum dado e teclar ENTER. 
 
Obs.: O uso de espaços dentro das aspas das mensagens do comando escreva ou 
escreval são importantes pois fazem com que as mensagens, conteúdos de variáveis e 
dados informados pelo usuário fiquem zerados. 
 
Exemplo de um algoritmo utilizando declaração de variáveis, entrada de dados e saída de 
dados: 
 
 
Exemplo 3: 
 
Algoritmo "ExemploDeEntradaDeDados" 
var 
 nomeAluno : caractere 
 endereco : caractere Declaração de 
 valorMensalidade : real variáveis 
inicio 
 escreva("Informe o nome do aluno: ") 
 leia(nomeAluno) 
 escreva("Informe o seu endereço: ") Entrada de 
 leia(endereco) dados 
 escreva("Informe valor de sua mensalidade: ") 
 leia(valorMensalidade) 
 escreval("Aluno: ",nomeAluno) 
 escreval("O endereço do aluno é ",endereco) Saída de 
 escreval("R$",valorMensalidade," é sua mensalidade") dados 
fimalgoritmo 
 
Outro exemplo de um algoritmo agora utilizando as 4 partes básicas que um algoritmo deve 
ter: declaração de variáveis, entrada de dados, cálculos (processamento) e saída de dados: 
 
Algoritmo "ExemploDeEntradaSaídaDeDados" 
var 
 nomeAluno : caractere 
 percentual, Declaração de 
 valorMensalidade, variáveis 
 valorComDesconto : real 
inicio 
 escreva("Informe o nome do aluno: ") 
 leia(nomeAluno) 
 escreva("Informe valor de sua mensalidade: ") Entrada de 
 leia(valorMensalidade) dados 
 escreva("Informe o seu percentual de desconto: ") 
 leia(percentual) 
 desconto <- valorMensalidade * percentual / 100 Cálculos 
 valorComDesconto <- valorMensalidade - desconto 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 46 
 escreval("Aluno: ",nomeAluno) Saída de 
 escreval("R$",valorComDesconto," é sua mensalidade") dados 
fimalgoritmo 
 
 
5.2 - Exercícios Resolvidos 
 
Siga as etapas descritas a seguir para criar algoritmos no VisuAlg: 
 
 1º – Declarar as variáveis necessárias ao algoritmo, informando que tipo de dado (inteiro, 
real ou caractere) que ela trabalhará; 
 2º – Criar comandos de entrada de dados para receber os dados a serem informados 
(digitados) pelo usuário via teclado do computador; 
 3º – Criar comandos necessários para fazer os cálculos solicitados (processamento dos 
dados de entrada e geração dos resultados); 
 4º – Criar comandos para exibir os resultados (dados de saída) na tela do computador. 
 
 
Exercício 1: 
 
Fazer um algoritmo que calcule e imprima o valor da função f(x), sendo o valor de x 
informado pelo usuário. 
 
104)( 3  xxxf
 
 
Solução no VisuAlg: 
 
 
 
 
Exercício 2: 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 47 
A área da superfície esférica e o volume de uma esfera são calculados a partir das fórmulas 
dadas. Faça um algoritmo que leia o raio R de uma esfera e calcule e imprima a sua área e 
volume. Utilizar o valor de = 3.1416. 
 
3
2
3
4
4
RVolume
RÁrea




 
 
Solução no VisuAlg: 
 
 
 
 
Exercício 3: 
 
A distância entre um ponto P e uma reta R é dada pela função Distância. Faça um 
algoritmo que solicite ao usuário os valores de A, B e C da reta R e as coordenadas Xo e Yo do 
ponto P e calcule e imprima o valor da distância deste ponto a reta. 
 
22
00
),(
BA
CByAx
Distância
yxP
CByAxR
oo




 
 
Solução no VisuAlg: 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 48 
 
 
 
5.3 - Síntese 
 
Neste capítulo você aprendeu a utilizar o comando de entrada de dados LEIA, que têm como 
objetivo permitir ao usuário enviar dados para o programa para que eles sejam processados e 
gerem resultados, os quais são mostrados ao usuário na tela do computador. 
 
Os comandos de entrada junto com os comandos de saída compõem os comandos de I/O 
(input/output) ou E/S (entrada/saída) de dados de um algoritmo. 
 
No próximo capítulo você conhecerá um dos comandos que implementam as estruturas 
condicionais em um algoritmo, e que, de certa forma, dão “inteligência” ao algoritmo e ao 
computador. 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 49 
6 - Estrutura Condicional: o computador tomando decisões 
 
Situações condicionais fazem parte do cotidiano de todas as pessoas. Frequentemente nos 
vemos em situações onde devemos tomar uma decisão ou executar uma ação se uma 
condição ocorrer, por exemplo: 
 
se vai chover então vou pegar um guarda-chuva 
 
Neste exemplo a condição é vai chover, e caso esta condição seja VERDADEIRA, ou seja, 
a chuva venha a acontecer, a ação a ser tomada é vou pegar um guarda-chuva. Caso 
esta condição seja FALSA, ou seja, a chuva não venha a acontecer, nenhuma ação é tomada. 
 
se vai chover então vou ficar em casa senão vou fazer uma corrida 
 
Neste outro exemplo, utilizando a mesma condição vai chover, caso ela seja 
VERDADEIRA, ou seja, a chuva venha a acontecer, a ação a ser tomada é vou ficar em 
casa. Caso esta condição seja FALSA, ou seja, a chuva não venha a acontecer, a ação a 
ser tomada é vou fazer uma corrida. 
 
Em um algoritmo, uma estrutura condicional deve ser utilizada quando a execução de uma 
(ou mais) linha de código (ou comando) depende do estado de uma condição. 
 
 
6.1 - Comando SE 
 
Nos algoritmos, uma das estruturas condicionais que podemos utilizar é representada pelo 
comando se...fimse.O comando se pode ser utilizado de duas formas, dependendo de sua estrutura condicional. 
São elas: 
 
→ Forma Simples 
→ Forma Composta 
 
 
6.1.1 - Forma Simples 
 
Sintaxe: 
 
se condição entao 
 comando1 
 comando2 
 ... 
 comandon 
fimse 
 
Na forma simples, se condição for VERDADEIRA, os comandos que estão dentro do entao 
serão executados, mas se condição for FALSA, os comandos não serão executados. 
 
Fluxo: 
comando 
comando 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 50 
se condição entao 
 comando1 
 comando2 
 ... 
 comandon 
fimse 
comando 
comando 
 
 
comando 
comando 
se condição entao 
 comando1 
 comando2 
 .... 
 comandon 
fimse 
comando 
comando 
 
 
Identação: Nesta sintaxe a identação está presente no recuo utilizado em cada linha de 
comando existente entre o se e o fimse. No editor de textos do VisuAlg, utilizaremos dois 
espaços como recuo de identação. Estes dois espaços são suficientes para indicar 
visualmente o recuo e indicar que os comandos escritos com estes espaços a esquerda estão 
embutidos dentro da estrutura condicional. Outra opção para o recuo é utilizar a tecla TAB, a 
diferença é que cada vez que você pressionar a tecla TAB no editor de texto do VisuAlg, o 
número de espaços que serão inseridos na horizontal vai variar entre 3 e 5 espaços, 
dependendo do tipo de estrutura de comandos. 
 
A outra regra de identação presente nesta estrutura é a colocação do fimse na mesma 
coluna em que foi digitado o se, ou seja, estas duas palavras estão alinhadas verticalmente 
no código do programa. O mesmo acontece com os comandos dispostos entre o se e o 
fimse, todos estão alinhados e com a digitação iniciando na mesma coluna do editor de 
texto. 
 
 
Exemplo1: 
 
leia(numero) 
se numero > 10 entao 
 escreval("Número é MAIOR que 10") 
fimse 
 
Neste exemplo o texto Número é MAIOR que 10 só será exibido na tela caso a condição 
numero > 10 seja VERDADEIRA. Suponha que o usuário digite 25, através do comando 
leia. Este valor será armazenado na variável numero. Neste caso a condição será 
VERDADEIRA e a mensagem será exibida na tela. Caso ele digite 8, a condição será FALSA 
e a mensagem não será exibida. 
 
Condição VERDADEIRA: 
os comandos dentro do SE 
serão executados 
Condição FALSA: 
os comandos dentro do SE 
não serão executados 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 51 
 
Exemplo 2: 
 
notaFinal <- nota1 + nota2 + nota3 
se notaFinal >= 60 entao 
 escreval(″O aluno está aprovado!″) 
 mediaFinal <- notaFinal / 3 
fimse 
 
Neste exemplo os dois comandos escritos entre o se e o fimse só serão executados se a 
notaFinal calculada antes do se for maior ou igual a 60. Caso contrário, nenhum dos dois 
comandos serão executados. 
 
 
6.1.2 - Forma Composta 
 
Sintaxe: 
 
se condição entao 
 comando11 
 comando12 
 ... 
 comando1n 
senao 
 comando21 
 comando22 
 ... 
 comando2n 
fimse 
 
Na condição composta, se condição for VERDADEIRA, serão executados somente os 
comandos que estão dentro do entao, mas se condição for FALSA, serão executados 
somente os comandos que estão dentro do senao. 
 
Fluxo: 
comando 
comando 
se condição entao 
 comando11 
 comando12 
 ... 
 comando1n 
senao 
 comando21 
 comando22 
 ... 
 comando2n 
fimse 
comando 
comando 
 
 
Condição VERDADEIRA: 
somente os comandos 
dentro do ENTAO serão 
executados 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 52 
comando 
comando 
se condição entao 
 comando11 
 comando12 
 ... 
 comando1n 
senao 
 comando21 
 comando22 
 ... 
 comando2n 
fimse 
comando 
comando 
 
 
 
Identação: Nesta sintaxe a identação está presente no recuo utilizado em cada linha de 
comando existente entre o se e o entao e entre o senao e o fimse. Quando a cláusula 
senao é utilizada na estrutura condicional o alinhamento a esquerda deverá ocorrer entre o 
se, o senao e o fimse, ou seja, a digitação deles deve iniciar na mesma coluna do editor de 
texto. 
 
 
Exemplo 1: 
 
leia(numero) 
se numero > 10 entao 
 escreval("Número é MAIOR que 10") 
senao 
 escreval("Número é MENOR ou IGUAL a 10") 
fimse 
 
Neste exemplo, se o valor digitado, que ficará armazenado na variável numero, for maior que 
10, será executado somente o comando escrito entre o se e o entao, ou seja, a mensagem 
Número é MAIOR que 10 será exibida na tela. Mas se a nota digitada for menor ou igual a 
10, será executado somente o comando escrito entre o senao e o fimse, ou seja, a 
mensagem Número é MENOR ou IGUAL A 10 será exibida na tela. 
 
 
Exemplo 2: 
 
Algoritmo "CalculaINSS" 
var 
 salario : real 
 inss : real 
inicio 
 escreva("Digite o valor do seu salário: ") 
 leia(salario) 
 se salario <= 300 entao 
 inss <- salario * 0.08 
Condição FALSA: 
somente os comandos 
dentro do SENAO serão 
executados 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 53 
 escreval("Funcionário caiu na alíquota de 8%") 
 senao 
 inss <- salario * 0.10 
 escreval("Funcionário caiu na alíquota de 10%") 
 fimse 
 escreval("Valor do INSS = ",inss) 
fimalgoritmo 
 
Neste exemplo, se o valor digitado, que ficará armazenado na variável salario, for menor 
ou igual a 300, serão executados somente os comandos escritos entre o se e o entao, ou 
seja, a mensagem Funcionário caiu na alíquota de 8% será exibida na tela e o 
cálculo do inss com 8% será feito. Mas se o salário digitado for maior que 300, serão 
executados somente os comandos escritos entre o senao e o fimse, ou seja, a mensagem 
Funcionáriocaiu na alíquota de 10% será exibida na telae o cálculo do inss com 
10% será feito. Após ambas as condições, a mensagem Valor do INSS = , seguido do 
conteúdo da variável inss, serão exibidos na tela 
 
 
6.2 - Estrutura Condicional Composta Aninhada 
 
A estrutura condicional composta aninhada é útil para situações onde o número de 
alternativas é maior que duas. 
 
Sintaxe: 
 
se condição1 entao 
 comando1 
 comando2 
 ... 
 comandon 
senao 
 se condição2 entao 
 comando1 
 comando2 
 ... 
 comandon 
 senao 
 se condição2 entao 
 comando1 
 comando2 
 ... 
 comandon 
 senao 
 comando1 
 comando2 
 ... 
 comandon 
 fimse 
 fimse 
fimse 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 54 
 
Nesta forma, após o senao, ao invés de vir uma lista de comandos, vem um novo teste 
condicional (se...entao...fimse), ou seja, um comando se dentro do senao do comando 
se anterior. 
 
Importante: Para cada comando se inserido no programa deve existir um entao e um 
fimse correspondentes. O senao é opcional. 
 
Identação: Nesta sintaxe a identação está presente no recuo utilizado em cada linha de 
comando existente entre o primeiro se e o senao e entre o senao e o fimse, e também 
entre o segundo se...senao...fimse. Perceba que para cada se iniciado dentro de um 
senao ou de um entao, deverá ser inserido um novo recuo de mais 2 espaços. 
 
 
Exemplo 1: 
 
Criar uma lógica condicional para a tabela a seguir: 
 
Faixa Salarial Alíquota 
Até R$300,00 8% 
Acima de R$300,00 até R$1.000,00 9% 
Acima de R$1.000,00 10% 
 
Algoritmo "CalculaINSS" 
var 
 salario : real 
 inss : real 
inicio 
 escreva("Digite o valor do seu salário: ") 
 leia(salario) 
 se salario <= 300 entao 
 inss <- salario * 0.08 
 fimse 
 se (salario > 300) e (salario <= 1000) entao 
 inss <- salario * 0.09 
 fimse 
 se salario > 1000 entao 
 inss <- salario * 0.10 
 fimse 
 escreval("Valor do INSS = ",inss) 
fimalgoritmo 
 
Neste exemplo utilizamos três comandos se seguidos, um depois do outro, um para cada 
alíquota (8%, 9% e 10%), ou seja, o primeiro se, para cálculo do INSS com alíquota de 8%, é 
aberto, tem-se o entao dele, e dentro o comando para o cálculo (inss<- salario * 
0.08) e logo depois este comando se é fechado com um fimse. Logo após abre-se um outro 
comando se para a próxima alíquota da tabela (9%), e assim por diante. Depois dos 
comandos se, vêm o escreval para imprimir na tela o valor do INSS calculado em um dos 
se. 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 55 
A forma utilizada no exemplo anterior (comandos se seguidos) pode ser utilizada 
normalmente quando se tem mais de duas alternativas, mas o ideal é utilizar os comandos se 
de forma aninhada, como no exemplo a seguir: 
 
Algoritmo "CalculaINSS" 
var 
 salario : real 
 inss : real 
inicio 
 escreva("Digite o valor do seu salário: ") 
 leia(salario) 
 se salario <= 300 entao 
 inss <- salario * 0.08 
 senao 
 se salario <= 1000 entao 
 inss <- salario * 0.09 
 senao 
 inss <- salario * 0.10 
 fimse 
 fimse 
 escreval("Valor do INSS = ",inss) 
fimalgoritmo 
 
Na forma mostrada no exemplo (comandos se aninhados, ou, um se dentro de outro se), se 
o salário digitado for menor ou igual a 300, será executado somente o comando escrito entre 
o primeiro se e o entao, com o algoritmo “pulando” para a impressão do INSS calculado. 
 
inss <- salario * 0.08 
 
Mas se o salário for maior que 300, aí é iniciada uma nova estrutura condicional, pois 
precisaremos verificar, antes dos cálculos, se o salário é maior ou menor do que 1000. Nesta 
nova estrutura condicional, se o salário for menor ou igual a 1000 (lembre-se que o algoritmo 
chegou até aqui porque o salário é maior que 300, então não há necessidade de testar 
novamente se o salário é maior que 300, ou seja, neste caso, testar se salario <= 1000 é 
o mesmo que testar se (salario > 300) e (salario <= 1000), será executado 
somente o comando escrito entre o segundo se e o segundo senao, com o algoritmo 
“pulando” para a impressão do INSS calculado. 
 
inss <- salario * 0.09 
 
Mas se o salário digitado for maior que 1000, será executado somente o comando escrito 
entre o segundo senao e o fimse escrito logo em seguida, com o algoritmo “pulando” para a 
impressão do INSS calculado. 
 
inss <- salario * 0.10 
 
 
Exemplo 2: 
 
Faça um algoritmo que receba o valor de x, e calcule e imprima o valor de f(x) conforme a 
seguinte função. 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 56 
















4,
16
35
4,0
4,
16
35
)(
2
2
xse
x
x
xse
xse
x
x
xf 
 
Solução utilizando um comando se depois do outro: 
 
Algoritmo "FunçãoMúltipla" 
var 
 x : real 
 fx : real 
inicio 
 escreva("Escreva o valor de X: ") 
 leia(x) 
 se x < 4 entao 
 fx <- (5*x + 3)/(16 - x^2)^(1/2) 
 fimse 
 se x = 4 entao 
 fx <- 0 
 fimse 
 se x > 4 entao 
 fx <- (5*x + 3)/(x^2 - 16)^(1/2) 
 fimse 
 escreval("Valor da função = ",fx) 
fimalgoritmo 
 
Solução utilizando um comando se dentro do outro (aninhados): 
 
Algoritmo "FunçãoMúltipla" 
var 
 x : real 
 fx : real 
inicio 
 escreva("Escreva o valor de X: ") 
 leia(x) 
 se x < 4 entao 
 fx <- (5*x + 3)/(16 - x^2)^(1/2) 
 senao 
 se x = 4 entao 
 fx <- 0 
 senao 
 fx <- (5*x + 3)/(x^2 - 16)^(1/2) 
 fimse 
 fimse 
 escreval("Valor da função = ",fx) 
fimalgoritmo 
 
 
6.3 - Exercícios Resolvidos 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 57 
Exercício 1: 
 
A Secretaria do Meio Ambiente mediu a quantidade de poluentes atmosféricos emitidos por 
uma empresa. Dependendo do valor obtido, a empresa foi multada conforme a tabela dada. 
Faça um algoritmo que leia a quantidade de poluentes emitidos por uma empresa e calcule e 
imprima a multa aplicada, se for o caso. 
 
Quantidade de Poluente 
emitido [mg/(t*m2)] 
Valor da Multa [R$] 
Até 1500 Isento 
Acima de 1500 até 3000 R$3.000,00 
Acima de 3000 R$5.000,00 x Quantidade de Poluentes 
 
 
Solução no VisuAlg (utilizando um comando se depois do outro): 
 
 
 
Exercício 2: 
 
Uma loteria esportiva paga prêmios proporcionais a quantidade de acertos de cada apostador. 
Ela tem 13 jogos. Se o apostador acertar até 5 jogos ele não ganha nada, se acertar de 6 a 10 
jogos ele ganha um outro cartão para apostar, se acertar 11 jogos ganha R$100, 12 jogos 
R$1000 e 13 jogos R$50000. Faça um algoritmo que leia o nome do apostador e a 
quantidade de jogos que ele acertou, e calcule e imprima o prêmio que ele ganhou. 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 58 
Acertos Prêmio 
Até 5 Nenhum 
De 6 até 10 Outro cartão 
11 R$100,00 
12 R$1.000,00 
13 R$50.000,00 
 
Solução no VisuAlg (utilizando um comando se dentro do outro): 
 
 
 
 
Exercício 3: 
 
Faça um algoritmo que leia as 3 notas parciais de um aluno (valores inteiros), calcule a nota 
final (soma das notas parciais) e imprima o conceito do aluno conforme a seguinte tabela: 
 
Nota Final Conceito 
Abaixo de 60 D 
De60 até69 C 
De 70 até 89 B 
De 90 até 100 A 
 
Solução no VisuAlg (utilizando um comando se dentro do outro): 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 59 
 
 
 
6.4 - Síntese 
 
Neste capítulo você aprendeu o comando SE e suas duas formas de utilização. A partir de 
agora seus algoritmos serão capazes de tomar decisões, e executar ou não um grupo de 
comandos. 
 
No próximo capítulo você terá contato e aprenderá a utilizar comandos que representam as 
estruturas de repetição de um algoritmo, permitindo que seu algoritmo ganhe em 
escalabilidade e processe uma grande quantidade de dados. 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 60 
7 - Estruturas de repetição (laço ou loop) 
 
 
As estruturas de repetição são utilizadas quando um conjunto de comandos dentro de um 
algoritmo precisa ser executado repetidas vezes. Sendo assim, ao invés de se escrever várias 
vezes o mesmo conjunto de comandos, este deverá ser escrito somente uma vez dentro de 
uma estrutura de repetição. A estrutura de repetição é que ficará encarregada de executar o 
conjunto de comandos várias vezes. 
 
Exemplo: 
 
Imagine que você vai solicitar a um usuário que digite o nome de 3 alunos. A forma não 
recomendada para este algoritmo seria escrever 3 vezes o comando de entrada de dados: 
 
escreva("Digite o nome do aluno 1: ") 
leia(nomeAluno) 
escreva("Digite o nome do aluno 2: ") 
leia(nomeAluno) 
escreva("Digite o nome do aluno 3: ") 
leia(nomeAluno) 
 
Por outro lado, a forma recomendada seria escrever uma única vez o comando de entrada de 
dados dentro de uma estrutura de repetição que fará com que ele seja executado 3 vezes: 
 
Exemplo 1 (utilizando o comando PARA): 
 
para numAluno de 1 ate 3 faca 
 escreva("Digite o nome do aluno ",numAluno,":") 
 leia(nomeAluno) 
fimpara 
 
Exemplo 2 (utilizando o comando REPITA): 
 
numAluno <- 0 
repita 
 numAluno <- numAluno + 1 
 escreva("Digite o nome do aluno ",numAluno,":") 
 leia(nomeAluno) 
ate numAluno = 3 
 
Exemplo 3 (utilizando o comando ENQUANTO): 
 
numAluno <- 0 
enquanto numAluno < 3 faca 
 numAluno <- numAluno + 1 
 escreva("Digite o nome do aluno ",numAluno,":") 
 leia(nomeAluno) 
fimenquanto 
 
Nos dois exemplos anteriores, os comandos leia e escreva serão executados 3 vezes na 
sequência mas foram escritos somente 1 vez. Para controlar o número de repetições, a 
variável numAluno, dos comandos para e enquanto, será incrementada a partir de 1 até 
3 para cada execução dos comandos escreva e leia. 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 61 
 
As estruturas de repetição também são conhecidas nas linguagens de programação como 
laço ou loop. 
 
Existem comandos apropriados para efetuar a repetição de outros comandos tantas vezes 
forem necessárias. A principal vantagem em se utilizar os comandos de repetição é que o 
algoritmo passa a ter um tamanho (número de comandos) muito menor. 
 
Existem 2 tipos de repetições: 
 
 Definidas e Garantidas, ou seja, um conjunto decomandos será executado um 
número pré-determinado de vezes; 
 Indefinidas e sem Garantia, ou seja, um conjunto de comandos será executado 
indefinidamente, não havendo garantia do término da execução do algoritmo. 
 
Os comandos que iremos estudar neste material, que implementam as estruturas de 
repetição, são os comandos PARA, REPITA e ENQUANTO, que são mostrados a seguir: 
 
 
Comando PARA (repetição baseada em contagem automática): 
 
para variável de valorInicial ate valorFinal faca 
 comando1 
 comando2 Conjunto de comandos que serão 
 ... executados várias vezes 
 comandon 
fimpara 
 
algoritmo "RaizQuadrada" 
var 
 numero, 
 contador : inteiro 
 raiz : real 
inicio 
 para contador de 1 ate 5 faca 
 escreva("Informe um número inteiro: ") 
 leia(numero) 
 raiz <- numero ^ (1/2) 
 escreval("A raiz quadrada de ",numero," = ",raiz) 
 escreval 
 fimpara 
fimalgoritmo 
 
 
Comando REPITA (repetição baseada em condição): 
 
repita 
 comando1 
 comando2 Conjunto de comandos que serão 
 ... executados várias vezes 
 comandon 
ate condição 
 
algoritmo "RaizQuadrada" 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 62 
var 
 numero : inteiro 
 raiz : real 
inicio 
 repita 
 escreva("Informe um número inteiro: ") 
 leia(numero) 
 raiz <- numero ^ (1/2) 
 escreval("A raiz quadrada de ",numero," = ",raiz) 
 escreval 
 ate numero = 0 
fimalgoritmo 
 
 
Comando ENQUANTO (repetição baseada em condição): 
 
enquanto condição faca 
 comando1 
 comando2 Conjunto de comandos que serão 
 ... executados várias vezes 
 comandon 
fimenquanto 
 
algoritmo "RaizQuadrada" 
var 
 numero : inteiro 
 raiz : real 
inicio 
 escreva("Informe um número inteiro: ") 
 leia(numero) 
 enquanto numero <> 0 faca 
 raiz <- numero ^ (1/2) 
 escreval("A raiz quadrada de ",numero," = ",raiz) 
 escreval 
 escreva("Informe um número inteiro: ") 
 leia(numero) 
 fimenquanto 
fimalgoritmo 
 
Daqui para frente iremos estudar cada um destes comandos em detalhes, começando pelo 
comando PARA. 
 
 
7.1 - Comando PARA 
 
Caracteriza-se por repetir um conjunto de comandos uma quantidade de vezes pré-definida. 
O loop é encerrado quando o número de repetições se igualar a quantidade pré-determinada, 
em termos de algoritmo, quando a sua variável auxiliar atingir o valor final. 
 
Sintaxe: 
 
para variável de valorInicial ate valorFinal [passo valor] faca 
 comando1 
 comando2 
 comandon 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 63 
fimpara 
 
Legenda: 
 A variável deverá ser uma variável do tipo inteiro que será utilizada para 
controlar o número de repetições; 
 O valorInicial é o valor inicial que a variável assumirá antes da primeira 
execução dos comandos. Deve ser sempre inteiro; 
 O valorFinal é o valor limite que a variável assumirá, e quando ele ocorrer será o 
fim das repetições. Deve ser sempre inteiro. 
 O [passo valor] é opcional e indica o valor o qual a variável será 
incrementada ou decrementada após cada execução dos comandos (comando1, 
comando2, ...). Deve ser sempre inteiro. 
 
Se desde o início da primeira repetição o valorInicial for maior que o valorFinal (ou 
menor quando o passo for negativo) os comandos não serão executados nenhuma vez. Se 
passo valor for positivo a variável será incrementada, se for negativo a variável será 
decrementada. Se passo valor não for utilizado, a variável será incrementada em 1 
após cada execução dos comandos (comando1, comando2,...). 
 
O número de repetições do comando PARA obedece a seguinte fórmula: 
 
Repetições = valorFinal – valorInicial + 1 
 
Exemplos: 
 
para aux de 1 ate 50 faca >>> Repetições = 50 – 1 + 1 = 50 
 ... 
fimpara 
 
para aux de 20 ate 69 faca >>> Repetições = 69 – 20 + 1 = 50 
 ... 
fimpara 
 
Portanto, se fixarmos o valorInicial em 1, o valorFinal indicará quantas repetições 
serão executadas no comando PARA. 
 
Exemplo 1: 
 
Faça um algoritmo que calcule as massas corporais de 5 pessoas, com os pesos individuais 
de cada uma sendo informados pelo usuário. A cada peso informado deverá ser calculada e 
impressa a massa. 
 
Massa Corporal = Peso / 9.8 
 
Para uma única pessoa o algoritmo ficaria da seguinte forma: 
 
Algoritmo "CalculaMassaCorporal" 
var 
 peso, 
 massa : real 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 64 
inicio 
 escreva("Entre com o peso: ") 
 leia(peso) 
 massa <- peso / 9.8 
 escreval("Massa corporal = ",massa) 
fimalgoritmo 
 
De forma não recomendada, poderíamos criar o algoritmo repetindo o conjunto de comandos 
5 vezes (Crtl+C/Crtl+V), conforme mostrado a seguir: 
 
Algoritmo "CalculaMassaCorporal" 
var 
 peso, 
 massa : real 
inicio 
 escreva("Entre com o peso: ") 
 leia(peso) 
 massa <- peso / 9.8 
 escreval("Massa corporal = ",massa) 
 
 escreva("Entre com o peso: ") 
 leia(peso) 
 massa <- peso / 9.8 
 escreval("Massa corporal = ",massa) 
 
 escreva("Entre com o peso: ") 
 leia(peso) 
 massa <- peso / 9.8 
 escreval("Massa corporal = ",massa) 
 
 escreva("Entre com o peso: ") 
 leia(peso) 
 massa <- peso / 9.8 
 escreval("Massa corporal = ",massa) 
 
 escreva("Entre com o peso: ") 
 leia(peso) 
 massa <- peso / 9.8 
 escreval("Massa corporal = ",massa) 
fimalgoritmo 
 
Imagine como ficaria o algoritmo anterior se fossemos calcular a massa corporal de 1000 
pessoas? Inviável de se criar! 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 65 
A forma recomendada e correta de fazer este algoritmo é utilizar o comando PARA conforme 
mostrado a seguir: 
 
Algoritmo "CalculaMassaCorporal" 
var 
 aux : inteiro 
 peso, 
 massa : real 
inicio 
 para aux de 1 ate 5 faca 
 escreva("Entre com o peso: ") 
 leia(peso) 
 massa <- peso / 9.8 
 escreval("Massa corporal = ",massa) 
 fimpara 
fimalgoritmo 
 
Neste exemplor, a variável aux começa pelo valor inicial 1, e vai até o valor final 5, totalizando 
5 repetições. Os comandos dentro do PARA serão executados repetidas vezes e de forma 
sequencial. 
 
Exemplo 2: 
 
Faça um algoritmo que calcule e imprima os valores da função f(x) = x2 - 1, para 10 
valores de x informados pelo usuário. A cada valor informado o algoritmo deverá imprimir este 
valor e o da função, da seguinte forma: 
x=1 f(x)=0 
x=2 f(x)=3 
x=3 f(x)=8 
... 
 x=10 f(x)=99 
 
Para um único valor de x o algoritmo ficaria da seguinte forma: 
 
Algoritmo "FunçãoManual" 
var 
 x : inteiro 
 fx : real 
inicio 
 escreva("Informe o valor de X: ") 
 leia(x) 
 fx <- x^2 - 1 
 escreval("x=",x," f(x)=",fx) 
fimalgoritmo 
 
Como são 10 valores de x o algoritmo completo seria: 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 66 
Algoritmo "FunçãoManual" 
var 
 x, 
 aux : inteiro 
 fx : real 
inicio 
 para aux de 1 ate 10 faca 
 escreva("Informe o valor de X: ") 
 leia(x) 
 fx <- x^2 - 1 
 escreval("x=",x," f(x)=",fx) 
 fimpara 
fimalgoritmo 
 
 
Lembre-se: O nome (identificador) de uma variável tem regras rígidas, por isso o nome 
utilizado para a variável que armazenará o valor da função não pode ser f(x), pois os 
parêntesis não podem estar no nome de uma variável. Também não podemos utilizar o nome 
da variável como função pois o c cedilha (ç) também não pode ser utilizado. Por fim, a palavra 
funcao também não pode ser utilizada pois é uma palavra reserva do VisuAlg (ver anexo 1). 
 
 
7.2 - Variação da quantidade de repetições do comando PARA 
 
A quantidade de repetições do comando PARA pode variar de acordo com a necessidade do 
usuário. 
 
Fixando-se o valorInicial em 1, pode-se utilizar uma variável inteira no lugar do 
valorFinal do comando PARA, com isso o valor que valorFinal contiver no momento da 
execução do comando PARA será o número de repetições que serão executadas. 
 
O conteúdo da variável que substituir o valorFinal, naprática, a quantidade de repetições, 
deve ser lida (solicitada ao usuário) antes do comando PARA a fim de que, quando o 
comando PARA for executado, ela tenha um valor diferente de zero. 
 
A sintaxe deve ser: 
 
var 
 aux, rep : inteiro 
... 
leia(rep) 
para aux de 1 ate rep faca 
 ... 
fimpara 
 
Utilizando o mesmo problema mostrado no Exemplo 1 do item anterior, podemos solicitar ao 
usuário, no início do programa, quantas pessoas deverão ter sua massa corporal calculada: 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 67 
Algoritmo "CalculaMassaCorporal" 
var 
 aux, 
 npessoas : inteiro 
 peso, 
 massa : real 
inicio 
 escreva("Quantas pessoas terão suas massas calculada? ") 
 leia(npessoas) 
 para aux de 1 ate npessoas faca 
 escreva("Entre com o peso: ") 
 leia(peso) 
 massa <- peso / 9.8 
 escreval("Massa corporal = ",massa) 
 fimpara 
fimalgoritmo 
 
No exemplo, a variável npessoas substituiu a constante 5, e o conteúdo dela, ou seja, o 
número de repetições do comando PARA, será informado pelo usuário antes do ciclo de 
repetições. 
 
 
7.3 - Utilização dos valores da variável auxiliar do comando PARA 
 
Como já foi dito anteriormente, a variável auxiliar do comando PARA varia de valorInicial 
a valorFinal, sendo incrementada, ou decrementada, de acordo com o valor do 
parâmetro passo. Se este parâmetro não for especificado (ele é opcional), a variável auxiliar 
é incrementada de 1 em 1. 
 
No exemplo seguinte, a variável aux, na primeira repetição vale 1, depois assume os valores 
2, 3, 4, 5, 6, 7, 8, 9 e 10, ou seja, 10 valores diferentes = 10 repetições. 
 
para aux de 1 ate 10 faca 
 ... 
fimpara 
 
No próximo exemplo, a variável aux, na primeira repetição vale 10, depois assume os valores 
11, 12, 13, 14, 15 e 16, ou seja, 7 valores diferentes = 7 repetições. 
 
paraaux de 10 ate 16 faca 
 ... 
fimpara 
 
Os valores que a variável auxiliar vai assumindo ao longo das repetições podem ser utilizados 
dentro do comando PARA em função de alguma necessidade do algoritmo. 
 
Exemplo 1: 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 68 
Faça um algoritmo que calcule e imprima os valores da função f(x) = x2 - 1, com o x 
variando no intervalo entre 1 e 10. A cada valor informado o algoritmo deverá imprimir este 
valor e o da função, da seguinte forma: 
x=1 f(x)=0 
x=2 f(x)=3 
x=3 f(x)=8 
... 
x=10 f(x)=99 
 
No exemplo 2 do item 7.1, os valores de x eram informados pelo usuário. Desta vez eles não 
precisam ser informados, pois podem ser utilizados os valores que variável auxiliar do PARA 
vai assumindo ao longo das repetições. Veja como fica o algoritmo: 
 
Algoritmo "FunçãoAutomático" 
var 
 x : inteiro 
 fx : real 
inicio 
 para x de 1 ate 10 faca 
 fx <- x^2 - 1 
 escreval("x=",x," f(x)= ",fx) 
 fimpara 
fimalgoritmo 
 
A variável auxiliar do comando PARA anterior é o próprio x, ou seja, o usuário não informará 
nada ao algoritmo, pois os valores da variável auxiliar do PARA serão utilizados para calcular 
os valores da função f(x). 
 
Exemplo 2: 
 
Faça um algoritmo que calcule e imprima todos os números divisíveis por 13 no intervalo 
entre 100 e 500. 
 
Dica: Para verificarmos se um número é divisível por outro é só testarmos se o resto da 
divisão inteira entre um número e outro é igual a 0(zero), ou seja A % B = 0, onde A e B 
devem ser do tipo inteiro. 
 
Veja como fica o algoritmo: 
 
Algoritmo "DivisívelPor13Entre100e500" 
var 
 numero : inteiro 
inicio 
 para numero de 100 ate 500 faca 
 se numero % 13 = 0 entao 
 escreval("O número ",numero," é divisível por 13") 
 fimse 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 69 
 fimpara 
fimalgoritmo 
 
No exemplo, a variável auxiliar numero assumirá, ao longo das 401 repetições (500 – 100 + 
1), os valores de 100 a 500, e a cada repetição o comando SE testará se o conteúdo da 
variável auxiliar numero, quando dividido (de forma inteira) por 13, tem resto igual a 0(zero). 
Se tiver, ou seja, a condição do SE for verdadeira, o comando ESCREVAL é executado e o 
conteúdo da variável numero é impresso na tela do computador, entre as mensagens 
associadas. 
 
Exemplo 3: 
 
O algoritmo a seguir implementa a função matemática fatorial. O fatorial de um número é o 
resultado da multiplicação do próprio número pelos seus antecessores inteiros até 1, ou seja, 
fatorial de 5 (escrito da forma 5!) = 5 x 4 x 3 x 2 x 1 ou 1 x 2 x 3 x 4 x 5 = 120. 
 
Algoritmo "CalculaFatorial" 
var 
 aux, 
 numero, 
 fatorial : inteiro 
inicio 
 fatorial <- 1 (1) 
 escreva("Informe um número inteiro: ") 
 leia(numero) (2) 
 para aux de 1 ate numero faca (3) 
 fatorial <- fatorial * aux (4) 
 fimpara 
 escreval("Fatorial de ",numero," = ",fatorial) (5) 
fimalgoritmo 
 
Vamos analisar este algoritmo, passo a passo, seguindo as linhas da tabela de valores a 
seguir: 
 
LINHA COMANDOS REPETIÇÃO aux numero fatorial 
1 1 e 2 - - 5 1 
2 3 e 4 1 1 5 1 
3 3 e 4 2 2 5 2 
4 3 e 4 3 3 5 6 
5 3 e 4 4 4 5 24 
6 3 e 4 5 5 5 120 
7 5 - - 5 120 
 
Linha 1: execução dos comandos iniciais do algoritmo, antes do comando PARA: 
- atribuição do valor 1 a variável fatorial; 
- leitura do valor 5, informado pelo usuário, que será armazenado na variável numero. 
 
Linha 2: primeira repetição do comando PARA: 
-a variável auxiliar aux recebe o valor 1; 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 70 
-a expressão aritmética fatorial * aux é executada (1 x 1), e seu resultado (1) é 
atribuído a variável fatorial (que perde seu valor anterior). 
 
Linha 3: segunda repetição do comando PARA: 
-a variável auxiliar aux é incrementada em 1 e passa a valer 2; 
-a expressão aritmética fatorial * aux é executada (1 x 2), e seu resultado (2) é 
atribuído a variável fatorial (que perde seu valor anterior). 
 
Linha 4: terceira repetição do comando PARA: 
-a variável auxiliar aux é incrementada em 1 e passa a valer 3; 
-a expressão aritmética fatorial * aux é executada (2 x 3), e seu resultado (6) é 
atribuído a variável fatorial (que perde seu valor anterior). 
 
Linha 5: quarta repetição do comando PARA: 
-a variável auxiliar aux é incrementada em 1 e passa a valer 4; 
-a expressão aritmética fatorial * aux é executada (6 x 4), e seu resultado (24) é 
atribuído a variável fatorial (que perde seu valor anterior). 
 
Linha 6: quinta (e última) repetição do comando PARA: 
-a variável auxiliar aux é incrementada em 1 e passa a valer 5; 
-a expressão aritmética fatorial * aux é executada (24 x 5), e seu resultado (120) é 
atribuído a variável fatorial (que perde seu valor anterior). 
 
Linha 7: execução dos comandos finais do algoritmo, depois do PARA: 
-impressão da mensagem Fatorial de 5 = 120 pelo comando ESCREVAL. 
 
 
7.4 - Uso de CONTADORES dentro das estruturas de repetição 
 
Uma das aplicações mais implementadas na informática são as que envolvem dados e 
resultados estatísticos, quando uma grande massa de dados, pesquisadas em cima de uma 
população qualquer, deve ser processada e várias informações precisam ser obtidas. 
 
Em muitas situações precisamos saber a quantidade de ocorrências de determinadas 
características específicas em uma série de dados pesquisados. Para isto o uso de 
programas de computador se torna uma forma rápida e eficiente forma de se obter estas 
informações. 
 
Os contadores são variáveis, do tipo INTEIRO, criadas dentro do algoritmo com o objetivo de 
contar a ocorrência de alguma situação especial durante a repetição de um processo de 
leitura de dados. 
 
Em uma estrutura de repetição, sempre que a situação especial pesquisada aparecer, a 
variável criada para contar é incrementada em 1. Para incrementar o valor de uma variável de 
utiliza-se o seguinte comando: 
 
contador <- contador + 1 
 
Quando este comando é executado, o computador resolve a expressão aritmética contador+ 1 (soma do conteúdo da variável contador e 1) e o resultado é atribuído a própria 
variável contador, ou seja, a variável contador é incrementada de 1. 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 71 
 
Nos exemplos a seguir, as linhas de comando sombreadas de cinza são os momentos dentro 
do algoritmo onde o contador é referenciado, de acordo com a seguinte legenda: 
 
1) Toda variável que faz contagem (contador) é do tipo inteiro; 
2) Todo contador deve ser inicializado (normalmente zerado) antes da estrutura de 
repetição; 
3) Todo contador é incrementado em 1 dentro da estrutura de repetição (contador <- 
contador + 1), e normalmente dentro de uma estrutura condicional; 
4) Se o algoritmo for imprimir na tela o valor do contador, o comando de impressão deve vir 
depois da estrutura de repetição. 
 
Exemplo 1: 
 
Faça um algoritmo que calcule e imprima a quantidade de números pares informados pelo 
usuário, em cima de uma sequência de 5 números informados por ele. 
 
Algoritmo "NúmerosPares" 
var 
 aux, 
 CONT, (1) 
 numero : inteiro 
inicio 
 CONT <- 0 (2) 
 para aux de 1 ate 5 faca 
 escreva("Digite um número inteiro: ") 
 leia(numero) 
 se numero % 2 = 0 entao 
 CONT <- CONT + 1 (3) 
 fimse 
 fimpara 
 escreval("A quantidade de números pares é ",CONT) (4) 
fimalgoritmo 
 
No exemplo, teremos 5 repetições e em cada repetição o usuário digitará um número inteiro. 
Logo após a digitação do número, ainda dentro da mesma repetição, o programa irá verificar, 
no comando SE, se o valor digitado, quando dividido de forma inteira por 2, dá resto zero 
(numero % 2 = 0). Se a condição do SE for VERDADEIRA, ou seja, número é divisível por 
2 (um número é par quando ele é divisível por 2) o conteúdo da variável cont é 
incrementado em 1. Ao término das repetições, depois do fimpara, a variável cont é 
impressa, sendo impresso na tela do computador quantos números, dos 5 informados pelo 
usuário, são pares (divisíveis por 2). 
 
Importante: Todas as variáveis que sofrem incrementos de valores, nelas mesmas, dentro de 
estruturas de repetição, tem que ser inicializadas (por exemplo: zeradas) antes da estrutura 
de repetição, para que no primeiro incremento, primeira repetição, ela tenha um valor inicial. 
 
Exemplo 2: 
 
Faça um algoritmo que leia o nome e sexo (M para masculino e F para feminino) de um grupo 
de 100 pessoas e ao final imprima a quantidade de mulheres deste grupo. 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 72 
 
Algoritmo "CalcQtdeMulheres" 
var 
 aux, 
 CONTADOR : inteiro (1) 
 nome, 
 sexo : caracter 
inicio 
 CONTADOR <- 0 (2) 
 para aux de 1 ate 100 faca 
 escreva("Nome : ") 
 leia(nome) 
 escreva("Sexo (M ou F) : ") 
 leia(sexo) 
 se sexo = "F" entao 
 CONTADOR <- CONTADOR + 1 (3) 
 fimse 
 fimpara 
 escreval("Quantidade de mulheres = ",CONTADOR) (4) 
fimalgoritmo 
 
No exemplo, a variável contador será incrementada em 1 em todas as repetições que o 
usuário digitar a letra F quando for solicitado a informar o sexo da pessoa. 
 
Importante: Reforçando o que já foi informado anteriormente, em um algoritmo, quando de 
uma expressão booleana, quando um valor fixo é comparado a uma variável do tipo caracter, 
ele tem que estar entre parêntesis (exemplo: sexo = “F”). 
 
Exemplo 3: 
 
Faça um algoritmo que calcule, entre 5 números informados pelo usuário, a quantidade de 
números que estejam compreendidos entre 10 e 100 e a quantidade de números 
negativos. 
 
Algoritmo "ContagemNúmeros" 
var 
 aux, 
 numero, 
 CONT1, (1) 
 CONT2 : inteiro (1) 
inicio 
 CONT1 <- 0 (2) 
 CONT2 <- 0 (2) 
 para aux de 1 ate 5 faca 
 escreva("Informe um número: ") 
 leia(numero) 
 se (numero >= 10) e (numero <= 100) entao 
 CONT1 <- CONT1 + 1 (3) 
 fimse 
 se numero < 0 entao 
 CONT2 <- CONT2 + 1 (3) 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 73 
 fimse 
 fimpara 
 escreval("A quantidade de números entre 10 e 100 = ",CONT1) (4) 
 escreval("A quantidade de números NEGATIVOS = ",CONT2) (4) 
fimalgoritmo 
 
No exemplo, são utilizados dois contadores, um, a variável cont1, para contar quantos 
números, dos informados pelo usuário, estão dentro do intervalo de 10 a 100, e outro, a 
variável cont2, para contar quantos números informados pelo usuário são negativos. 
 
 
7.5 - Uso de SOMATÓRIOS dentro das estruturas de repetição 
 
Em muitas situações do cotidiano enfrentamos situações onde há necessidade de se fazer 
soma (ou somatórios) de determinado conjunto de valores numéricos. Por exemplo, quando 
vamos ao supermercado, ao passarmos as mercadorias de nosso carrinho de compras no 
caixa, o preço de cada mercadoria é somado ao valor final que pagaremos pelas compras 
(somatório dos preços unitários de cada mercadoria). Outro exemplo: você quer saber a 
média das idades dos funcionários de uma determinada empresa, para isso, é necessário 
você fazer a soma (ou somatório) das idades de todas as pessoas, para depois calcular a 
média. 
 
Na programação utilizamos uma variável (INTEIRO ou REAL) criada com este objetivo: 
calcular o somatório de alguma variável numérica. Estas são chamadas de somatórios. Elas 
são incrementadas por uma outra variável (INTEIRO ou REAL), que representa o valor 
numérico que precisamos somar. Geralmente é utilizada uma variável lida dentro do processo 
de repetição. 
 
Importante: O tipo a ser declarado da variável de somatório é baseado no tipo da variável a 
ser somada. Se esta for inteiro, a variável de somatório será inteiro, se esta for real, a variável 
somatório será real. 
 
Para fazer o somatório do valor de uma variável utiliza-se o seguinte comando: 
 
soma <- soma + variável 
 
Quando este comando é executado, o computador resolve a expressão aritmética soma + 
variável (soma do conteúdo da variável soma e conteúdo de variável) e o resultado é 
atribuído a própria variável soma. 
 
Nos exemplos a seguir, as linhas de comando sombreadas de cinza são os momentos dentro 
do algoritmo onde o somatório é referenciado, de acordo com a seguinte legenda: 
 
1) Uma variável que faz soma (somatório) pode ser do tipo inteiro ou real, depende do tipo 
da variável que irá somar; 
2) Todo somatório deve ser inicializado (normalmente zerado) antes da estrutura de 
repetição; 
3) O somatório sempre acontece dentro da estrutura de repetição (somatório <- somatório + 
variável); 
4) Se o algoritmo for imprimir na tela o valor do somatório, o comando de impressão deve vir 
depois da estrutura de repetição. 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 74 
Exemplo 1: 
 
Fazer um algoritmo que calcule e imprima o somatório de 5 números inteiros informados pelo 
usuário. 
 
Algoritmo "SomaNúmeros" 
var 
 aux : inteiro 
 numero, 
 soma : real (1) 
inicio 
 soma <- 0 (2) 
 para aux de 1 ate 5 faca 
 escreva("Digite um número: ") 
 leia(numero) 
 soma <- soma + numero (3) 
 fimpara 
 escreval("A soma foi de ",soma) (4) 
fimalgoritmo 
 
No exemplo, teremos 5 repetições e em cada repetição o usuário digitará um número. Logo 
após, ainda dentro da mesma repetição, a expressão aritmética soma + numero é 
executada, e seu resultado é atribuído a variável soma (que perde seu valor anterior). Ao 
término das repetições, depois do fimpara, a variável soma é impressa na tela do 
computador, ou seja, a soma de todos os 5 números digitados pelo usuário é informada ao 
usuário. 
 
Exemplo 2: 
 
Fazer um algoritmo para ler as idades de 55 alunos de uma turma, e calcular e imprimir a 
média das idades do grupo. 
 
Algoritmo "MédiaIdades" 
var 
 aux, 
 idade, 
 soma : inteiro (1) 
 media : real 
inicio 
 soma <- 0 (2) 
 para aux de 1 ate 55faca 
 escreva("Informe a idade do aluno: ") 
 leia(idade) 
 soma <- soma +idade (3) 
 fimpara 
 media <- soma / 55 (4) 
 escreval("A média das idades é ",media) 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 75 
fimalgoritmo 
 
No exemplo, depois do somatório feito dentro do comando PARA, após o fimpara, é 
calculada a média das idades, que se obtém dividindo-se a soma das idades pela quantidade 
de alunos (55). 
 
Importante: Cálculo de média sempre deve acontecer após a estrutura de repetição, e não 
dentro dela, pois o somatório precisa ser finalizado para o cálculo da média ser feito 
corretamente. 
 
Exemplo 3: 
 
Fazer um algoritmo para ler o sexo (M para masculino e F para feminino) e o salário de todos 
os 1500 funcionários de uma empresa, e calcular e imprimir a média salarial dos homens e 
das mulheres. 
 
Algoritmo "MédiaSalarial" 
var 
 aux, 
 contM, 
 contF : inteiro 
 sexo : caracter 
 salario, 
 somaM, 
 somaF, 
 mediaM, 
 mediaF : real 
inicio 
 somaM <- 0 
 contM <- 0 
 somaF <- 0 
 contF <- 0 
 para aux de 1 ate 1500 faca 
 escreva("Informe o sexo (M ou F) do funcionário: ") 
 leia(sexo) 
 escreva("Informe o salário do funcionário: ") 
 leia(salario) 
 se sexo = "M" entao 
 somam <- somaM + salario 
 contM <- contM + 1 
 fimse 
 se sexo = "F" entao 
 somaF <- somaF + salario 
 contF <- contF + 1 
 fimse 
 fimpara 
 mediam <- somam / contM 
 escreval("A média salarial dos homens é ",mediaM) 
 mediaF <- soma / contF 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 76 
 escreval("A média salarial das mulheres é ",mediaF) 
fimalgoritmo 
 
Neste último exemplo, foi necessário criar duas variáveis contadoras (cont1 e cont2) pois, 
apesar da empresa ter 1500 funcionários, foi necessário contar quantos homens e quantas 
mulheres haviam, para se calcular a média salarial de cada sexo separadamente. Também foi 
necessário criar duas variáveis de somatório (soma1 e soma2) para fazer o somatório dos 
salários de cada sexo em variáveis diferentes. As duas variáveis de média (media1 e 
media2) também foram necessárias em virtude das médias separadas que necessitavam ser 
calculadas. Por fim, tanto os somatórios, quanto os contadores, foram colocados dentro do 
comando SE, pois precisavam ser executados condicionalmente, dependendo do sexo do 
funcionário. 
 
 
7.6 - Séries Matemáticas 
 
Uma outra aplicação muito utilizada na informática, ligada a área das ciências exatas, é o 
cálculo computadorizado de séries matemáticas, que resultam em constantes matemáticas 
utilizadas em fórmulas, como o valor de  . 
 
Uma série matemática é uma fórmula utilizada para se obter o valor de alguma constante na 
matemática através da operação (soma, multiplicação, etc.) de vários termos finitos ou não. 
 
Serie = Termo 1 + Termo 2 + Termo 3 + Termo 4 + ... 
Serie = Termo 1 x Termo 2 x Termo 3 x Termo 4 x ... 
 
Uma fórmula só pode ser considerada série quando os termos evoluem de uma forma lógica, 
ou seja, o termo 3 será obtido analisando-se a lógica de variação do termo 1 para o termo 2. 
Descoberta esta lógica, ela deverá ser aplicada aos demais termos da série. 
 
Exemplos de série: 
 
Serie1 = 1/2 + 3/4 + 5/6 + 7/8 + ... 
Serie2 = 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + ... 
 
A Série1 tem o primeiro termo igual a 1/2, o segundo termo igual a 3/4, o terceiro termo igual 
a 5/6, e o quarto termo igual a 7/8. Já o quinto termo, que não está explícito na fórmula (uso 
de reticências no fim da fórmula), será igual a 9/10, ou seja, os numeradores dos termos são 
os números ímpares na sequência iniciando em 1, e os denominadores são os números pares 
na sequência iniciando em 2. Variação totalmente lógica. 
 
A Serie2 é bastante famosa, utilizada inclusive na agricultura, de nome Fibonacci. A lógica de 
variação dos termos é: o valor do termo é a soma dos valores dos dois termos anteriores, ou 
seja, o termo 3 = 1 + 1 = 2, o termo 4 = 1 + 2 = 3, o termo 5 = 2 + 3 = 5, o termo 6 = 3 + 5 = 8, 
o termo 7 = 5 + 8 = 13, o termo 8 = 8 + 13 = 21, e o próximo termo, termo 9, que está implícito 
na fórmula (uso de reticências no fim), é 34 (13 + 21). Variação totalmente lógica. 
 
Podemos fazer algoritmos para determinar o valor exato (série finita) ou aproximado (série 
infinita) de uma série, através da geração automática dos seus vários termos. Quando de uma 
série infinita, quanto mais termos gerados, mais preciso é o valor da série calculado pelo 
algoritmo. 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 77 
Nos algoritmos utiliza-se uma estrutura de repetição para ir gerando os termos da série. A 
variável auxiliar da estrutura de repetição normalmente é utilizada para compor os termos da 
série. A série vai recebendo os seus valores como num somatório: 
 
Serie = Serie + Termo N 
 
 
Exemplos (séries finitas): 
 
 
 
 
 
 
 
 
 
 
A SerieA tem 50 termos. O uso de reticências no meio da fórmula informa que vários termos 
estão implícitos na série, e, apesar de não serem mostrados todos os termos, o numerador 
dos termos da série começa com o valor 1, varia de 1 em 1, até o valor 50, ou seja, 50 valores 
diferentes = 50 termos. O quinto termo, implícito na fórmula, vale 5/46, o próximo 6/45, e 
assim por diante. 
 
O mesmo raciocínio lógico deve ser utilizado na SerieB, em relação ao denominador, para 
determinarmos que ela tem 37 termos. O quarto termo, implícito na fórmula, vale 34x35/4, o 
próximo 33x34/5, e assim por diante. 
 
As fórmulas utilizadas nas SerieA e SerieB utilizam o somatório dos termos para calcular o 
valor final das séries. 
 
Já a série que calcula o fatorial de 5 é muito simples, pois começa com o valor 1, e vai, de 1 
em 1, até o valor 5, e utiliza a multiplicação entre os termos para calcular o valor final da série. 
 
 
Exemplos (séries finitas): 
 
 
 
 
 
 
 
 
 
 
 
Como as reticências das séries listadas estão no final da fórmula, as mesmas são 
consideradas infinitas. 
 
O próximo termo da SerieC é 58/16. A lógica de variação do numerador do termo é o 
quadrado dos números inteiros, começando-se de 1: 12=1, 22=4, 32=9, 42=16, 52=25, 62=36, 
72=49, 82=56 e assim por diante. O denominador são os números pares começando-se de 2, 
1
50
2
49
3
48
...
47
4
48
3
49
2
50
1
SerieA
37
21
36
32
...
3
3635
2
3736
1
3837 xxxxx
SerieB 
54321)5( xxxxFatorial 
...
14
49
12
36
10
25
8
16
6
9
4
4
2
1
SerieC
...
425
5
316
4
29
3
14
2
01
1










SerieD
...)
13
1
11
1
9
1
7
1
5
1
3
1
1(4 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 78 
ou a multiplicação dos números inteiros, começando-se de 1, por 2: 1x2=2, 2x2=4, 3x2=6, 
4x2=8, 5x2=10, 6x2=12, 7x2=14, 8x2=16 e assim por diante. 
 
O próximo termo da SerieD é 6/36+5 com variação lógica muito parecida com a SerieC. 
 
As fórmulas utilizadas nas SerieC e SerieD utilizam o somatório dos termos para calcular o 
valor final das séries. 
 
A fórmula utilizada na série para se calcular o valor de  difere um pouco das fórmulas das 
séries comentadas até o momento, pois utiliza os operadores de soma e subtração, de forma 
alternada, para calcular o valor da série, e também multiplica por 4 o valor final calculado dos 
termos da série. O próximo termo da serie, que está implícito, é 1/15. 
 
 
Calculando uma série 
 
Para se calcular uma série, utilizando um algoritmo, devem ser criados comandos que 
implementem a seguinte lógica (utilizando como exemplo a SerieA): 
 
 
 
 
 
SerieA = 0 (Inicialização) 
SerieA = SerieA + 1/50 (1a. repetição) 
SerieA = SerieA + 2/49 (2a. repetição) 
SerieA = SerieA + 3/48 (3a. repetição) 
SerieA = SerieA + 4/47 (4a. repetição) 
... 
SerieA = SerieA + 48/3 (48a. repetição) 
SerieA = SerieA + 49/2 (49a. repetição) 
SerieA = SerieA + 50/1 (50a. repetição) 
 
O modelo de algoritmo a seguir implementa esta sequêncialógica: 
 
Algoritmo "ModeloSerie" 
var 
 aux : inteiro 
 num, 
 den, 
 serie : real 
inicio 
 serie <- 0 
 para aux de 1 ate ? faca 
 num <-? 
 den <-? 
 serie <- serie + num / den 
 fimpara 
 [serie <- ?] //Opcional 
 escreval("Valor da série = ",serie) 
fimalgoritmo 
 
1
50
2
49
3
48
...
47
4
48
3
49
2
50
1
SerieA
Programação de Computadores–Prof. Ricardo Luiz de Freitas 79 
No modelo, as interrogações deverão ser substituídas por valores numéricos ou expressões 
aritméticas de acordo com o contexto da fórmula que implementa a série. A primeira 
interrogação, no cabeçalho do comando PARA, deverá ser substituída pelo número de termos 
da série. As duas interrogações dentro do comando PARA serão substituídas por valores 
numéricos ou expressões aritméticas que implementem a lógica de variação dos termos, 
podendo utilizar a variável auxiliar aux do comando PARA em sua composição. A 
interrogação depois do comando PARA será substituída, opcionalmente, por uma expressão 
aritmética, para aplicar um cálculo sobre a própria variável serie, como a multiplicação por 4 
no final da serie  . 
 
No algoritmo seguinte é utilizado o modelo para se implementar a SerieA: 
 
Algoritmo "SerieA" 
var 
 aux : inteiro 
 num, 
 den, 
 serie : real 
inicio 
 serie <- 0 
 para aux de 1 ate 50 faca 
 num <- aux 
 den <- 51 - aux 
 serie <- serie + num / den 
 fimpara 
 escreval("Valor da série = ",serie) 
fimalgoritmo 
 
A serie a seguir tem seu algoritmo mostrado na sequência: 
 
 
 
 
 
Para testar (1000 termos): Valor da Série = 100.001049593097 
 
Algoritmo "SerieExemplo" 
var 
 aux, 
 termos : inteiro 
 num, 
 den, 
 serie : real 
inicio 
 serie <- 0 
 escreva("Informe quantidade de termos da série: ") 
 leia(termos) 
 para aux de 1 ate termos faca 
 num <-1 
 den <-aux ^ 2 + 10 ^ aux 
 serie <- serie + num / den 
 fimpara 
 serie <- 100 + serie ^ 3 
3...)
1000016
1
10009
1
1004
1
101
1
(100 







loSerieExemp
Programação de Computadores–Prof. Ricardo Luiz de Freitas 80 
 escreval("Valor da série = ",serie) 
fimalgoritmo 
 
Observe neste exemplo que o numerador da série é fixo em 1, e o denominador são os 
valores da variável auxiliar aux do comando PARA elevador ao quadrado somado ao valor 10 
elevado aos valores da variável auxiliar. Como é uma série infinita (reticências ao fim da 
sequência de termos) devemos solicitar ao usuário, antes do comando PARA, a quantidade 
de termos que deverão ser calculados. Depois do comando PARA, ainda temos que elevar a 
3 o somatório da série obtido aos longo das repetições e o resultado somar a 100. 
 
Como todas as séries, quando resolvidas, chegam a um resultado numérico, dependendo da 
quantidade de termos gerados, podemos testar facilmente nosso algoritmo, comparando o 
seu resultado final com o valor real da série. Para a SerieExemplo o algoritmo tem que dar 
como resultado 100.001049593097, para 100 termos. 
 
 
7.7 - Exercícios Resolvidos 
 
Exercício 1: 
 
Faça um algoritmo que solicite ao usuário um número inteiro de 1 a 9, e calcule e imprima a 
tabuada deste número, conforme mostrado a seguir: 
 
Exemplo (número informado = 3): 
 1 x 3 = 3 
 2 x 3 = 6 
 3 x 3 = 9 
 4 x 3 = 12 
 5 x 3 = 15 
 6 x 3 = 18 
 7 x 3 = 21 
 8 x 3 = 24 
 9 x 3 = 27 
 
Solução no VisuAlg: 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 81 
 
 
 
Exercício 2: 
 
Fazer um algoritmo para ler o nome e a idade de todos os 50 alunos de uma turma e calcular 
e imprimir: 
 
a) Quantos alunos têm até 12 anos; 
b) Quantos alunos têm acima de 30 anos; 
c) A média das idades informadas; 
d) O nome do aluno de maior idade. 
 
Para testar (5 alunos): 
 Pedro/24 Ana/9 Rui/12 Maria/51 João/28 
 Alunos até 12 anos = 2 Média das idades = 24.8 
 Alunos acima de 30 anos = 1 Aluno de maior idade = Maria 
 
Solução no VisuAlg: 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 82 
 
 
 
Exercício 3: 
 
Faça um algoritmo para calcular e imprimir o valor da série a seguir. A quantidade de termos a 
ser gerada será informada pelo usuário no início do algoritmo. 
 
 
 
 
Para testar (10 termos): 
Valor da Série = 35.2925715158306 
 
Solução no VisuAlg: 
 
...)
25
126
19
94
13
62
7
30
(5 







Serie
Programação de Computadores–Prof. Ricardo Luiz de Freitas 83 
 
 
 
7.8 - Síntese 
 
Neste capítulo você aprendeu o que são as estruturas de repetição, conheceu três comandos 
que implementam estas estruturas (PARA, REPITA e ENQUANTO), aprendeu em detalhes o 
comando PARA, a utilizar contadores e somatórios dentro de uma estrutura de repetição, e 
uma aplicação importante ao implementarmos cálculos de séries matemáticas utilizando 
algoritmos. Seus algoritmos agora poderão ler e processar grandes massas de dados, 
gerando resultados importantíssimos do dia a dia. 
 
No próximo capítulo você terá contato e aprenderá a utilizar os outros comandos de repetição 
(REPITA e ENQUANTO), permitindo que seus algoritmos passem a trabalhar com repetições 
indefinidas, onde não se conhece previamente a quantidade de repetições. 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 84 
8 - Estruturas de repetição (quantidade indefinida de repetições) 
 
No capítulo anterior, foi ensinado detalhadamente o uso do comando PARA, que tem como 
objetivo principal executar repetidas vezes um conjunto de comandos dentro de um algoritmo, 
porém este comando só deve ser utilizado quando se sabe previamente a quantidade de 
repetições, conforme as situações a seguir: 
 
Situação 1 (50 repetições): 
Fornecido a idade de cada um dos 50 alunos de uma sala de aula, calcular a média das 
idades dos alunos da sala. 
 
Situação 2 (858 repetições): 
Fornecidas as populações feminina e masculina, de cada um dos 858 municípios mineiros, 
pesquisar quais aqueles em que a população feminina ultrapassa a população masculina. 
 
Situação 3 (12 repetições): 
Fornecidas as maiores temperaturas de cada mês do ano de 2014, verificar o mês que teve a 
maior temperatura. 
 
Em muitas situações, esta quantidade de repetições é indefinida, conforme as situações a 
seguir: 
 
Situação 1: 
Apurar, na porta de entrada de uma escola, durante toda a manhã, quantos alunos residem 
fora da cidade. 
 
Situação 2: 
Colher e apurar os votos para prefeito e vereador de todos os eleitores de uma determinada 
seção eleitoral. 
 
Situação 3: 
Pesquisar os nomes e as idades de todos os juízes que atuam em um fórum, e determinar a 
média das idades dos mesmos, e os nomes do mais velho e do mais novo. 
 
Nestes casos, deve-se utilizar dentro do algoritmo os comandos ENQUANTO ou REPITA, que 
têm os mesmos objetivos de utilização do PARA, repetir diversas vezes um conjunto de 
comandos, porém devem ser utilizados quando NÃO se sabe quantas repetições deverão ser 
feitas. 
 
 
8.1 - Comando ENQUANTO 
 
O comando enquanto...faca caracteriza-se por utilizar uma condição (expressão 
booleana) contida no início (cabeçalho) do comando, que deve ser verificada antes de se 
iniciar, ou continuar, a repetição. 
 
Se a condição for VERDADEIRA, os comandos contidos dentro da estrutura do loop serão 
executados repetidamente enquanto a condição permanecer VERDADEIRA. Quando a 
condição se tornar FALSA os comandos que estão dentro do loop não serão mais 
executados, a repetição é encerrada, e o programa segue executando os comandos listados 
após a repetição, ou seja, fora do loop. 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 85 
Importante: Se a condição for FALSA desde a primeira verificação, os comandos não serão 
executados nenhuma vez. Fique atento a isto! 
 
Sintaxe: 
 
enquanto condição faca 
 comando1 
 comando2 
 comandon 
fimenquanto 
 
Fluxo: 
comando 
comando 
enquanto condição faca 
 comando1 
 comando2 
 ... 
 comandon 
fimenquanto 
comando 
comando 
 
 
 
comandocomando 
enquanto condição faca 
 comando1 
 comando2 
 ... 
 comandon 
fimenquanto 
comando 
comando 
 
 
Exemplo 1: 
 
O algoritmo a seguir imprime na tela do computador os números inteiros de 1 a 5. 
 
Algoritmo "ExemploRepeticaoEnquanto1" 
var 
 contador: inteiro 
inicio 
 contador <- 0 (1) 
 enquanto contador < 5 faca (2) 
 contador <- contador + 1 (3) 
 escreval(contador) (4) 
 fimenquanto 
fimalgoritmo 
Condição VERDADEIRA: 
os comandos dentro do 
ENQUANTO serão 
executados 
Condição FALSA: 
os comandos dentro do 
ENQUANTO NÃO serão 
executados 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 86 
 
Vamos analisar este algoritmo, passo a passo, seguindo as linhas da tabela de valores a 
seguir: 
 
LINHA COMANDOS REPETIÇÃO contador Impressão 
1 1 - 0 - 
2 2, 3 e 4 1 1 1 
3 2, 3 e 4 2 2 2 
4 2, 3 e 4 3 3 3 
5 2, 3 e 4 4 4 4 
6 2, 3 e 4 5 5 5 
 
Linha 1: execução dos comandos iniciais do algoritmo, antes do comando ENQUANTO: 
- atribuição do valor 0 a variável contador; 
 
Linha 2: primeira repetição do comando ENQUANTO: 
- a condição contador < 5 é VERDADEIRA pois a variável contador tem o valor 0, com 
isso a primeira repetição acontece; 
- a variável contador é incrementada em 1 e passa a valer 1; 
- impressão do conteúdo da variável contador pelo comando ESCREVAL. 
 
Linha 3: segunda repetição do comando ENQUANTO: 
- a condição contador < 5 é VERDADEIRA pois a variável contador tem o valor 1, com 
isso uma nova repetição acontece; 
- a variável contador é incrementada em 1 e passa a valer 2; 
- impressão do conteúdo da variável contador pelo comando ESCREVAL. 
 
Linha 4: terceira repetição do comando ENQUANTO: 
- a condição contador < 5 é VERDADEIRA pois a variável contador tem o valor 2, com 
isso uma nova repetição acontece; 
- a variável contador é incrementada em 1 e passa a valer 3; 
- impressão do conteúdo da variável contador pelo comando ESCREVAL. 
 
Linha 5: quarta repetição do comando ENQUANTO: 
- a condição contador < 5 é VERDADEIRA pois a variável contador tem o valor 3, com 
isso uma nova repetição acontece; 
- a variável contador é incrementada em 1 e passa a valer 4; 
- impressão do conteúdo da variável contador pelo comando ESCREVAL. 
 
Linha 6: quinta (e última) repetição do comando ENQUANTO: 
- a condição contador < 5 é VERDADEIRA pois a variável contador tem o valor 4, com 
isso uma nova repetição acontece; 
- a variável contador é incrementada em 1 e passa a valer 5; 
- impressão do conteúdo da variável contador pelo comando ESCREVAL. 
 
Linha 6: fim da repetição do comando ENQUANTO: 
- a condição contador < 5 é FALSA pois a variável contador tem o valor 5, com isso as 
repetições são interrompidas e o algoritmo continua sendo executado com os comandos 
listados após o fimenquanto; 
 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 87 
Exemplo 2: 
 
Faça um algoritmo que solicite a altura e a largura de um retângulo, depois calcule e imprima 
a sua área. Em seguida, por 5 vezes, incrementar o valor 2 na altura e decrementar o valor 1 
na largura, e em cada uma das vezes calcular e imprimir novamente a área do retângulo. 
 
Algoritmo "ExemploRepeticaoEnquanto2" 
var 
 cont, 
 area, 
 altura, 
 largura: inteiro 
inicio 
 escreval("Informe altura: ") 
 leia(altura) 
 escreval("Informe largura: ") 
 leia(largura) 
 cont <- 0 
 enquanto cont <= 5 faca 
 area <- altura * largura 
 escreval("A área é: ",area) 
 cont <- cont + 1 
 altura <- altura + 2 
 largura <- largura - 1 
 fimenquanto 
fimalgoritmo 
 
Veja que no exemplo os valores iniciais da altura e da largura são solicitados uma única 
vez, pois estão antes (fora) do comando ENQUANTO. As repetições do ENQUANTO estão 
sendo utilizadas para calcular e imprimir a área do retângulo original, e, depois, dos 5 
retângulos seguintes cujas altura e largura estão sendo geradas novamente. Quando 
cont atingir o valor 6, apesar de novas altura e largura terem sido geradas, a repetição 
(ou loop) é interrompida e não é mais calculada e impressa nova area. 
 
 
Exemplo 3: 
 
Faça um algoritmo que solicite ao usuário uma série de números inteiros, e imprima as 
mensagens “NUMERO PAR” ou “NÚMERO ÍMPAR” dependendo da condição do número lido. 
A repetição deverá ser encerrada quando o usuário digitar o valor 0(zero). Ao fim do algoritmo 
deverá ser impressa na tela a quantidade de números informados, e a quantidade de números 
pares. 
 
Algoritmo "ExemploRepeticaoEnquanto3" 
var 
 cont, 
 contPar, 
 numero : inteiro 
inicio 
 cont <- 0 
 contPar <- 0 
 escreval("Informe um número inteiro: ") 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 88 
 leia(numero) 
 enquanto numero <> 0 faca 
 cont <- cont + 1 
 se numero div 2 = 0 entao 
 escreval("NÚMERO PAR") 
 contPar <- contPar + 1 
 senao 
 escreval("NÚMERO ÍMPAR") 
 fimse 
 escreval 
 escreval("Informe um número inteiro: ") 
 leia(numero) 
 fimenquanto 
 escreval("A quantidade de números informados foi ",cont) 
 escreval("A quantidade de números PARES informados foi ",contPar) 
fimalgoritmo 
 
Este exemplo é importante pois ele utiliza como condição de parada do ENQUANTO o valor 
(ou variável) da entrada de dados, ou seja, dependendo do valor informado pelo usuário na 
variável numero, a repetição não se inicia ou mesmo é interrompida. Veja que foi necessário 
utilizar a dupla escreva/leia, para a leitura do número, fora (antes) e dentro (no fim) do 
ENQUANTO. A primeira utilização, fora (antes) do ENQUANTO, é necessária para solicitar ao 
usuário o primeiro número e iniciar as repetições, porém, se o usuário digitar 0(zero) de cara 
nenhuma repetição acontecerá e os contadores ficarão zerados e serão impressos desta 
forma. Ao passo que, se um número diferente de zero for informado pelo usuário, os 
comandos dentro do ENQUANTO serão executados repetidas vezes. A segunda utilização da 
dupla escreva/leia, está dentro do ENQUANTO, imediatamente antes do fimenquanto, 
para solicitar ao usuário um novo número e dar sequência às repetições, ou não. 
 
Importante: No algoritmo anterior, o valor 0(zero), informado pelo usuário, armazenado na 
variável numero, e que foi utilizado para interromper a repetição, é chamado de flag. O flag é 
uma informação chave a ser informada pelo usuário para indicar que não há mais dados a 
serem digitados na entrada de dados. Esta chave indica então que a repetição do comando 
de entrada de dados deve ser encerrada. O flag é útil em situações onde o número de 
informações a ser digitada pelo usuário é variável, ou não previsível, e por isto surge a 
necessidade de se criar uma condição pré-definida e conhecida pelo usuário para encerrar a 
entrada de dados. 
 
 
8.2 - Comando REPITA 
 
O comando repita...ate caracteriza-se por primeiro executar a lista de comandos 
contidos no loop antes de verificar a condição, que é inserida somente no final (rodapé) do 
comando. Após executar os comandos do loop será verificada a condição. Se a condição for 
FALSA, os comandos que estão dentro da estrutura de repetição continuam sendo 
executados. Se a condição for VERDADEIRA, a repetição é encerrada e o programa segue 
executando os demais comandos após o final da repetição, ou seja, fora do loop. 
 
Importante: No comando REPITA pelo menos uma repetição acontece (a primeira), pois a 
condição é verificada somente no fim do comando. Fique atento a isto! 
 
Sintaxe: 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 89 
 
repita 
 comando1 
 comando2 
 comandon 
ate condição 
 
Fluxo: 
comando 
comando 
repita 
 comando1 
 comando2 
 ... 
 comandon 
ate condição 
comando 
comando 
 
 
comando 
comando 
repita 
 comando1 
 comando2 
 ... 
 comandon 
ate condição 
comando 
comando 
 
 
Exemplo 1: 
 
Faça um algoritmo para ler uma série denúmeros inteiros informados pelo usuário e calcular 
e imprimir a soma dos mesmos. O último número a ser informado será igual a 0(zero). 
 
Algoritmo "CalculaSoma" 
var 
 numero, 
 soma : inteiro 
inicio 
 soma <- 0 
 repita 
 escreva("Informe um número: ") 
 leia(numero) 
 soma <- soma + numero 
 ate numero = 0 
 escreval("Soma dos números informados = ",soma) 
fimalgoritmo 
 
Condição FALSA: os 
comandos dentro do 
REPITA serão novamente 
executados 
Condição VERDADEIRA: 
os comandos dentro do 
REPITA deixarão de ser 
executados 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 90 
Inicialmente a variável soma é zerada. Logo após, uma primeira repetição acontece e um 
primeiro valor é solicitado ao usuário, que é armazenado na variável numero. Logo após, este 
valor é acumulado na variável soma. Na sequência acontece o teste da condição do REPITA. 
Se a variável numero for diferente de 0(zero) uma nova repetição acontece e um novo valor é 
informado e acumulado, ao passo que, se a variável numero for igual a 0(zero) a repetição é 
interrompida, e o algoritmo segue depois do ate, imprimindo o valor da variável soma. 
 
 
Exemplo 2: 
 
Faça um algoritmo para ler uma série de números inteiros informados pelo usuário e calcular 
e imprimir a média dos mesmos. O último número a ser informado, e que não deverá entrar 
nos cálculos, será igual a -1. 
 
Importante: Variáveis de somatório e contadores deverão ser inicializadas (normalmente são 
zeradas) antes das estruturas de repetição! 
 
Importante: Cálculo de médias só podem acontecer depois que o somatório tiver sido 
finalizado, por isso este cálculo só pode acontecer após a estrutura de repetição! 
 
Versão 1 (incorreta): 
 
Algoritmo "CalculaMédia" 
var 
 numero, 
 soma, 
 cont : inteiro 
 media : real 
inicio 
 soma <- 0 
 cont <- 0 
 repita 
 escreva("Informe um número: ") 
 leia(numero) 
 soma <- soma + numero 
 cont <- cont + 1 
 ate numero = -1 
 media <- soma / cont 
escreval("Média dos números informados = ",media) 
fimalgoritmo 
 
Neste algoritmo, para o cálculo da média dos números, como não se sabe a quantidade de 
números que serão somados, utilizou-se um contador para contar quantos números serão 
somados. Porém, pelo enunciado do problema, o valor -1, a ser digitado pelo usuário, 
interromperá a repetição e não deverá entrar nos cálculos (ser somado e contado), mas nesta 
versão do algoritmo ele está entrando nos cálculos, como os outros números, e interferindo no 
valor final da média. A versão seguinte do algoritmo resolve este problema pois o comando 
SE, depois da leitura do número, exclui o valor -1 dos cálculos internos do REPITA (somatório 
e contagem). 
 
Versão 2 (correta): 
Incorreto! 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 91 
 
Algoritmo "CalculaMédia" 
var 
 numero, 
 soma, 
 cont : inteiro 
 media : real 
inicio 
 soma <- 0 
 cont <- 0 
 repita 
 escreva("Informe um número: ") 
 leia(numero) 
 se numero <> -1 entao 
 soma <- soma + numero 
 cont <- cont + 1 
 fimse 
 ate numero = -1 
 media <- soma / cont 
 escreval("Média dos números informados = ",media) 
fimalgoritmo 
 
Como já dito anteriormente, quando se adota um valor de entrada, que também é informado 
pelo usuário apenas para interromper a repetição, e que normalmente não entra nos cálculos, 
chame-se este valor de flag tornando o uso do comando SE dentro do REPITA obrigatório a 
fim de que o flag não interfira nos cálculos. 
 
 
Exemplo 3: 
 
Faça um algoritmo para calcular e imprimir a soma dos rendimentos familiares de todos os 
alunos de uma sala de aula. Para isto serão digitados os nomes e os rendimentos de todos os 
alunos. O último nome informado, que não deverá ser processado, será igual a ZZZ. 
 
Algoritmo "RendimentoFamiliar" 
var 
 rend, 
 total : real 
 nome : caractere 
inicio 
 total <- 0 
 escreval("Para finalizar digite ZZZ no nome") 
 repita 
 escreva("Informe o nome do aluno: ") 
 leia(nome) 
 se nome <> "ZZZ" entao 
 escreva("Informe o rendimento familiar: ") 
 leia(rend) 
 total <- total + rend 
 fimse 
 ate nome = "ZZZ" 
 escreval("Soma dos rendimentos = ",total) 
fimalgoritmo 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 92 
 
No algoritmo é mostrada uma mensagem, antes das solicitações dos nomes e rendimentos de 
cada aluno, informando que a digitação do texto ZZZ (flag) interromperá a repetição. Observe 
que dentro da estrutura de repetição é utilizado o comando SE depois da leitura do nome do 
aluno para verificar se o flag foi digitado (ZZZ), “pulando” os demais comandos do REPITA, 
indo direto para o teste da condição de parada. 
 
 
8.3 - Comparação entre o PARA, ENQUANTO e REPITA 
 
O PARA deve ser utilizado em situações onde o número de repetições é previamente 
conhecido e não há condições especiais para que estas repetições parem de acontecer, elas 
simplesmente devem ocorrer em uma quantidade de vezes pré-determinada. 
 
O ENQUANTO deve ser utilizado em situações onde os comandos da repetição só devem ser 
executados se a condição da repetição for verdadeira antes de iniciar o loop. As repetições 
(ou loop) continuarão enquanto a condição for verdadeira. 
 
O REPITA deve ser utilizado em situações onde os comandos da repetição devem ser 
executados pelo menos uma vez independente se a condição da repetição é verdadeira ou 
falsa. As repetições (ou loop) continuarão até que a condição seja verdadeira. 
 
Os três quadros a seguir contêm uma mesma lógica escrita com cada um dos três comandos 
de repetição estudados (PARA, ENQUANTO e REPITA) para repetições pré-definidas. Desta 
forma podemos comparar as diferenças de sintaxe entre eles: 
 
Algoritmo "para...faca" 
var 
 area: inteiro 
 altura: inteiro 
 largura: inteiro 
 aux : inteiro 
inicio 
 altura <- 2 
 largura <- 6 
 para aux de 1 ate 5 faca 
 area <- altura * largura 
 escreval("Área = ",area) 
 altura <- altura + 2 
 largura <- largura - 1 
 fimpara 
fimalgoritmo 
Algoritmo "enquanto...faca" 
var 
 area: inteiro 
 altura: inteiro 
 largura: inteiro 
 aux : inteiro 
inicio 
 altura <- 2 
 largura <- 6 
 aux <- 0 
 enquanto aux < 5 faca 
 aux <- aux + 1 
 area <- altura * largura 
 escreval("Área = ",area) 
 altura <- altura + 2 
 largura <- largura - 1 
 fimenquanto 
fimalgoritmo 
Algoritmo "repita...ate" 
var 
 area: inteiro 
 altura: inteiro 
 largura: inteiro 
 aux : inteiro 
inicio 
 altura <- 2 
 largura <- 6 
 aux <- 0 
 repita 
 aux <- aux + 1 
 area <- altura * largura 
 escreval("Área = ",area) 
 altura <- altura + 2 
 largura <- largura - 1 
 ate aux = 5 
fimalgoritmo 
 
Os dois quadros a seguir contêm uma mesma lógica para repetições indefinidas, onde 
devemos utilizar os comandos ENQUANTO ou REPITA: 
 
Algoritmo "enquanto...faca" 
var 
 nome: caracter 
 idade : inteiro 
 cont : inteiro 
 soma : inteiro 
 media : real 
inicio 
 cont <- 0 
 soma <- 0 
 nome <- "" 
Algoritmo "repita...ate" 
var 
 nome: caracter 
 idade : inteiro 
 cont : inteiro 
 soma : inteiro 
 media : real 
inicio 
 cont <- 0 
 soma <- 0 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 93 
 enquanto nome <> "Zilma" faca 
 escreval("Informe nome: ") 
 leia(nome) 
 escreval("Informe idade: ") 
 leia(idade) 
 cont <- cont + 1 
 soma <- soma + idade 
 fimenquanto 
 media <- soma / cont 
 escreval("Média das idades = ",media) 
fimalgoritmo 
 repita 
 escreval("Informe nome: ") 
 leia(nome) 
 escreval("Informe idade: ") 
 leia(idade) 
 cont <- cont + 1 
 soma <- soma + idade 
 ate nome = "Zilma" 
 media <- soma / cont 
 escreval("Média das idades = ",media) 
fimalgoritmo 
 
Nos dois quadros anteriores é utilizadoum flag (valor que interromperá a repetição) que será 
a leitura do texto “Zilma” pela variável nome. Este dado é real (Zilma é o nome de uma pessoa 
“de carne e osso”) por isso ele deve entrar nos cálculos, com isto os algoritmos ficam muito 
parecidos, apesar de utilizarem comandos de repetição diferentes (ENQUANTO e REPITA). 
Além dos comandos de repetição diferentes, a única diferença está na inicialização da 
variável nome no primeiro quadro que utiliza o comando ENQUANTO, para que aconteça pelo 
menos uma repetição. 
 
Algoritmo "enquanto...faca" 
var 
 nome: caracter 
 idade : inteiro 
 cont : inteiro 
 soma : inteiro 
 media : real 
inicio 
 cont <- 0 
 soma <- 0 
 escreval("Informe nome: ") 
 leia(nome) 
 enquanto nome <> "fim" faca 
 escreval("Informe idade: ") 
 leia(idade) 
 cont <- cont + 1 
 soma <- soma + idade 
 escreval("Informe nome: ") 
 leia(nome) 
 fimenquanto 
 media <- soma / cont 
 escreval("Média das idades = ",media) 
fimalgoritmo 
Algoritmo "repita...ate" 
var 
 nome: caracter 
 idade : inteiro 
 cont : inteiro 
 soma : inteiro 
 media : real 
inicio 
 cont <- 0 
 soma <- 0 
 repita 
 escreval("Informe nome: ") 
 leia(nome) 
 se nome <> "fim" entao 
 escreval("Informe idade: ") 
 leia(idade) 
 cont <- cont + 1 
 soma <- soma + idade 
 fimse 
 ate nome = "fim" 
 media <- soma / cont 
 escreval("Média das idades = ",media) 
fimalgoritmo 
 
Vejam que nos dois quadros anteriores o flag, que será a leitura do texto “fim” pela variável 
nome, não deve entrar nos cálculos (fim não é nome de uma pessoa e sim um valor fictício), 
por isso os algoritmos contêm diferenças importantes: o comando ENQUANTO necessita da 
leitura da variável nome (que se constitui no flag) antes do comando de repetição 
(imediatamente antes do enquanto) e antes de seu término (imediatamente antes do 
fimenquanto), já o comando REPITA necessita do uso do comando SE imediatamente 
depois da leitura da variável nome. 
 
8.4 - Uso de estrutura de repetição para fazer consistência na entrada de dados 
 
Quando um programa solicita ao usuário que digite um dado, o mesmo digitará o valor que 
bem entender. Entretanto, a maior parte dos dados possuem uma faixa limitada de valores 
válidos. Como por exemplo a idade de uma pessoa. Nenhuma pessoa poderia ter idade 
negativa, assim como também não seria possível uma pessoa ter 200 anos. Desta forma, 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 94 
para evitar que usuários digitem na entrada de dados valores impossíveis ou inválidos, 
devemos validar, ou consistir, a digitação. 
 
A consistência na entrada de dados é uma forma de não aceitar valores impossíveis ou 
inválidos digitados pelo usuário. 
 
Para criar esta consistência, utiliza-se uma estrutura de repetição do tipo abaixo para cada 
dado de entrada a ser consistido no programa: 
 
repita 
 escreva(<solicitação do dado de entrada>) 
 leia(<variável de entrada>) 
 se <variável de entrada> <> <valores válidos> entao 
 escreval("Dado inválido! Digite novamente.") 
 fimse 
ate <variável de entrada> = <valores válidos> 
 
A estrutura de repetição garantirá que o programa seguirá em frente somente após o valor 
digitado ser válido. 
 
Exemplo de lógica de validação com o comando REPITA: 
 
repita 
 escreva("Digite a idade do aluno: ") 
 leia(idade) 
 se (idade < 0) ou (idade > 200) entao 
 escreval("Erro! A idade deve estar entre 0 e 200") 
 fimse 
ate (idade >= 0) e (idade <= 200) 
 
Nesta lógica, o usuário será repetidamente solicitado que digite a idade do aluno até que o 
valor digitado esteja entre 0 e 200. 
 
O comando REPITA é o que melhor se encaixa na lógica de repetição para a consistência já 
que só testa a condição após ter executado todo o conjunto de comandos pelo menos uma 
vez. Entretanto, a lógica também pode ser feita com o comando ENQUANTO: 
 
idade <- 999 
enquanto (idade < 0) ou (idade > 200) faca 
 escreva("Digite o idade do aluno: ") 
 leia(idade) 
 se (idade < 0) ou (idade > 200) entao 
 escreval("Erro! A idade deve estar entre 0 e 200") 
 fimse 
fimenquanto 
 
A desvantagem do ENQUANTO é a necessidade de inicializar a variável que receberá a 
digitação com um valor inválido, caso contrário a condição do enquanto será falsa desde o 
início e não seriam executados os comandos escritos entre o enquanto e o fimenquanto. 
 
 
Exemplo: 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 95 
Faça um algoritmo para ler os nomes, idades e os salários recebidos no fim do mês por cada 
um dos 123 funcionários de uma empresa, e calcular e imprimir o valor total que a empresa 
gastará com a folha de pagamento. 
 
Algoritmo "FolhaDePagamento" 
var 
 nome : caractere 
 aux, idade : inteiro 
 salário, total : real 
inicio 
 total <- 0 
 para aux de 1 ate 123 faca 
 escreva("Informe o nome do funcionário: ") 
 leia(nome) 
 repita 
 escreva("Informe a idade do funcionário: ") 
 leia(idade) 
 se (idade < 12) ou (idade > 100) entao 
 escreval("Idade inválida! Digite novamente.") 
 fimse 
 ate (idade >= 12) e (idade < 100) 
 repita 
 escreva("Informe o salário recebido: ") 
 leia(salario) 
 se (salario < 0) ou (salario > 100000) entao 
 escreval("Salário inválido! Digite novamente.") 
 fimse 
 ate (salario >= 0) e (salario <= 100000) 
 total <- total + salario 
 fimpara 
 escreval("Total da folha de pagamento = ",total) 
fimalgoritmo 
 
No exemplo anterior, o primeiro comando REPITA faz a consistência da digitação da idade do 
funcionário pelo usuário, que tem que estar entre 12 e 100. Enquanto ela não estiver dentro 
deste intervalo, o programa não passa para a próxima entrada de dados (salário). O segundo 
comando REPITA faz a consistência da digitação do salário do funcionário, também pelo 
usuário, que tem que estar entre 0 e 100000. Só depois de consistido o salário é que o 
somatório dos salários é executado. 
 
 
8.5 - Uso do comando INTERROMPA para finalizar abruptamente um loop 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 96 
Cada um dos comandos que representam as estruturas de repetição tem sua forma de 
interromper suas repetições (loops). O comando PARA tem suas repetições interrompidas 
quando a sua variável auxiliar ultrapassa o parâmetro VALOR FINAL especificado no 
cabeçalho do comando. O comando ENQUANTO interrompe suas repetições quando a 
condição (expressão booleana) colocada no seu cabeçalho se torna FALSA. Já o comando 
REPITA interrompe suas repetições quando a condição (expressão booleana) colocada no 
seu rodapé se torna VERDADEIRA. 
 
Porém, independente da maneira como o comando interrompe a repetição (loop), o algoritmo 
tem executar todos os comandos dentro do comando de repetição para depois verificar, e, se 
for o caso, interromper a repetição (loop). 
 
Uma forma rápida e eficaz de interromper qualquer uma das estruturas (comandos) de 
repetição é utilizar o comando INTERROMPA, colocado dentro de um comando SE, em 
qualquer ponto dentro do comando de repetição, fazendo com que a execução do programa 
prossiga a partir da primeira linha após o final do comando de repetição. 
 
Sintaxe (PARA): 
 
para aux de ? ate ? faca 
 comando1 
 comando2 
 se condição entao 
 interrompa 
 fimse 
 comandon-1 
 comandon 
fimpara 
 
Fluxo: 
comando 
comando 
para aux de ? ate ? faca 
 comando1 
 comando2 
 se condição entao 
 interrompa 
 fimse 
 comandon-1 
 comandon 
fimpara 
comando 
comando 
 
 
Sintaxe (ENQUANTO): 
 
enquanto condição faca 
 comando1 
 comando2 
 se condição entao 
 interrompa 
Condição VERDADEIRA: o comando 
INTERROMPA será executado, as 
repetições serão interrompidas e o 
algoritmo continuará a ser executado a 
partir do primeiro comandodepois do 
fimpara. 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 97 
 fimse 
 comandon-1 
 comandon 
fimenquanto 
 
Fluxo: 
comando 
comando 
enquanto condição faca 
 comando1 
 comando2 
 se condição entao 
 interrompa 
 fimse 
 comandon-1 
 comandon 
fimenquanto 
comando 
comando 
 
 
Sintaxe (REPITA): 
 
repita 
 comando1 
 comando2 
 se condição entao 
 interrompa 
 fimse 
 comandon-1 
 comandon 
ate condição 
 
Fluxo: 
comando 
comando 
repita 
 comando1 
 comando2 
 se condição entao 
 interrompa 
 fimse 
 comandon-1 
 comandon 
ate condição 
comando 
comando 
 
 
Exemplo (PARA): 
 
Condição VERDADEIRA: as 
repetições serão interrompidas e o 
algoritmo continuará a ser executado a 
partir do primeiro comando depois do 
ate 
Condição VERDADEIRA: as 
repetições serão interrompidas e o 
algoritmo continuará a ser executado a 
partir do primeiro comando depois do 
ate 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 98 
Faça um algoritmo para ler a idade e o sexo (M ou F) de cada um dos 500 funcionários de 
uma empresa, e calcular e imprimir a média das idades e a quantidade de mulheres. Se a 
idade digitada for igual a 0(zero) a repetição deverá ser interrompida. 
 
Algoritmo "IdadeSexoInterrompa" 
var 
 nome, sexo : caractere 
 aux, idade, soma, cont1, cont2 : inteiro 
 media : real 
inicio 
 soma <- 0 
 cont1 <- 0 
 cont2 <- 0 
 para aux de 1 ate 500 faca 
 escreva("Digite a idade do empregado: ") 
 leia(idade) 
 se idade = 0 entao 
 interrompa 
 fimse 
 soma <- soma + idade 
 cont1 <- cont1 + 1 
 escreva("Digite o sexo do empregado: ") 
 leia(sexo) 
 se sexo = "F" entao 
 cont2 <- cont2 + 1 
 fimse 
 fimpara 
 media <- soma / cont1 
 escreval("Média das idades = ",media) 
 escreval("Quantidade mulheres = ",cont2) 
fimalgoritmo 
 
Neste exemplo, apesar do comando PARA utilizar o contador aux, que varia de 1 a 500, 
gerando 500 repetições (500-1+1 = 500), se o valor digitado na variável idade for zero, o 
PARA será finalizado pelo comando INTERROMPA, interrompendo as repetições, e a 
próxima linha de comando a ser executada será aquela após o fimpara. 
 
 
8.6 - Exercícios Resolvidos 
 
Exercício 1: 
 
Faça um algoritmo para calcular e imprimir o valor da multa a ser aplicada a uma série de 
valores financeiros informados pelo usuário. A cada valor lido o algoritmo deverá imprimir a 
multa. O último valor é igual a -1 e não deverá entrar nos cálculos. No final o algoritmo deverá 
imprimir a média das multas calculadas. 
 
MULTA = 10% do VALOR 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 99 
Solução no VisuAlg: 
 
 
 
 
Exercício 2: 
 
Faça um algoritmo para ler os valores recebidos pelos serviços prestados por uma empresa 
de projetos durante o mês. O algoritmo deverá calcular e imprimir: 
 
a) A média dos valores recebidos; 
b) O valor total recebido; 
c) A quantidade de valores recebidos acima de R$1000,00. 
 
O último valor, que não entrará nos cálculos, é igual a 0(zero). 
 
Solução no VisuAlg: 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 100 
 
 
 
Exercício 3: 
 
O preço final de um produto manufaturado é calculado somando-se os custos parciais dos 
materiais consumidos na sua fabricação somado ao BDI (Bonificação e Despesas Indiretas = 
lucro). Faça um algoritmo para calcular e imprimir este preço final, para isto ele deverá ler a 
taxa de BDI (em %) da empresa, uma única vez no início do algoritmo, e o nome, a 
quantidade e o preço unitário de uma série de materiais utilizados na manufatura do produto. 
A cada material lido o algoritmo deverá calcular e imprimir o seu custo parcial. 
 
Custo Parcial = Quantidade do Material X Preço Unitário 
Custo Total = Somatório dos Custos Parciais 
BDI = Taxa sobre o Custo Total (Valor BDI = Custo Total X Taxa BDI / 100) 
Preço Final = Custo Total + BDI 
 
O último material a ser lido terá seu nome igual a FIM e não deverá entrar nos cálculos. 
 
Solução no VisuAlg: 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 101 
 
 
 
8.7 - Síntese 
 
Neste capítulo você aprendeu a utilizar mais duas estruturas de repetição, os comandos 
ENQUANTO e REPITA que permitirão ao algoritmo trabalhar com quantidades indefinidas de 
repetições. Aprendeu também a fazer consistência de dados de entrada e interromper 
processos de repetição mais rapidamente via comando INTERROMPA. 
 
Programação de Computadores–Prof. Ricardo Luiz de Freitas 102 
ANEXO 1 
 
Palavras reservadas do VisuAlg: 
 
aleatorio 
algoritmo 
arquivo 
ate 
caractere 
caso 
cronometro 
debug 
e 
eco 
enquanto 
entao 
escolha 
escreva 
escreval 
faca 
falso 
fimalgoritmo 
fimenquanto 
fimescolha 
fimfuncao 
fimpara 
fimprocedimento 
fimrepita 
fimse 
funcao 
inicio 
inteiro 
interrompa 
leia 
logico 
nao 
ou 
outrocaso 
para 
passo 
pausa 
real 
procedimento 
repita 
retorne 
se 
senao 
timer 
var 
vetor 
verdadeiro 
xou

Mais conteúdos dessa disciplina