Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

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

Cadastre-se ou realize login

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

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

Cadastre-se ou realize login

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

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

Cadastre-se ou realize login

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

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

Cadastre-se ou realize login

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

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

Cadastre-se ou realize login

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

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

Cadastre-se ou realize login

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

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

Cadastre-se ou realize login

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

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

Cadastre-se ou realize login

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

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

Cadastre-se ou realize login

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

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

Cadastre-se ou realize login

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

Prévia do material em texto

Universidade de Mogi das Cruzes 
 
 
 
 
 
 
 
 
ALGORITMOS 
Estruturas Simples 
 
 
 
O professor pode ser excelente, o método de ensino 
maravilhoso, mas sem a sua participação caro aluno, 
o aprendizado não acontece. 
 
 
 
 
 
Mogi das Cruzes, SP 
2008 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 2/115 
 
AUTORES 
 
 
A presente apostila está sendo elaborada com a colaboração dos professores da UMC, 
que ministram e/ou ministraram as disciplinas Técnicas de Programação e/ou Algoritmos para 
Estruturas Simples e compostas, a saber: 
 
• Marcia A. S. Bissaco 
• Andréa Ono Sakai 
• Cibele Mattos 
• Marco Antônio Porto Alvarenga 
• Marco Antônio Sawada (in memorium) 
• Roberta Panzera 
• Sebastião Varotto 
• Viviane Guimarães Ribeiro 
 
 
Para esclarecimento de dúvidas, sugestões ou críticas entre em contato através do e-mail 
marciab@umc.br ou do telefone 4798-7112. 
Se tiver interesse de saber um pouquinho sobre mim, veja os anexos. 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 3/115 
SUMÁRIO 
1. CONCEITOS BÁSICOS............................................................................................... 5 
1.1. LÓGICA DE PROGRAMAÇÃO E ALGORITMOS.............................................. 5 
1.2. FORMAS DE REPRESENTAÇÃO DE ALGORITMOS ....................................... 6 
1.2. 1. Descrição Narrativa................................................................................. 6 
1.2. 2. Pseudocódigo.......................................................................................... 7 
1.2. 3. Fluxograma............................................................................................. 8 
1.2. 4. Diagrama de Chaplin............................................................................. 10 
1.2. 5. Transformação do algoritmo em um programa ...................................... 11 
1.3. EXERCÍCIOS PROPOSTOS ............................................................................... 13 
1.3. 1. Responda as questões abaixo................................................................. 13 
1.3. 2. Elaboração de algoritmos descritivos..................................................... 14 
1.3. 3. Transcrevendo algoritmo em fluxograma para pseudocódigo e vice-versa16 
2. PROGRAMAÇÃO ESTRUTURADA ........................................................................ 22 
2.1. INTRODUÇÃO ................................................................................................... 22 
2.2. TIPOS DE DADOS, VARIÁVEIS E OPERADORES.......................................... 22 
2.2.1. Tipos de dados ........................................................................................ 22 
2.2.1.1. Dados numéricos inteiros ............................................................ 23 
2.2.1.2. Dados numéricos reais................................................................. 23 
2.2.1.3. Dados literais .............................................................................. 23 
2.2.1.4. Dados lógicos.............................................................................. 24 
2.2.2. Variáveis................................................................................................. 24 
2.2.3. Variáveis versus alocação de memória .................................................... 25 
2.2.4. Operadores.............................................................................................. 28 
2.2.4.1. Operador de atribuição ................................................................ 28 
2.2.4.2. Operadores aritméticos e funções ................................................ 28 
2.2.4.3. Operadores Lógicos..................................................................... 29 
2.2.4.4. Operadores relacionais ................................................................ 30 
2.2.4.5. Prioridade para execução das operações no computador .............. 30 
2.2.5. Exercícios propostos ............................................................................... 30 
2.3. TÉCNICA DE PROGRAMAÇÃO ESTRUTURADA .......................................... 35 
2.3. 1. Estrutura Seqüencial.............................................................................. 35 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 4/115 
2.3.1.1. Sintaxe ....................................................................................... 35 
2.3.1.2. Exemplos ................................................................................... 35 
2.3.1.3. Exercícios propostos................................................................... 42 
2.3.2. Estrutura Condicional.............................................................................. 50 
2.3.2.1. Sintaxe ....................................................................................... 50 
2.3.2.2. Exemplos ................................................................................... 54 
2.3.2.3. Exercícios propostos................................................................... 63 
 2.3.3. Estrutura Repetição................................................................................ 68 
2.3.3.1. Sintaxe ....................................................................................... 68 
2.3.3.2. Exemplos ................................................................................... 70 
2.3.3.3. Exercícios propostos................................................................... 75 
2.4. EXERCÍCIOS PROPOSTOS COMPLEMENTARES .......................................... 84 
2.5. RESUMO........................................................................................................... 106 
REFERÊNCIAS BIBLIOGRÁFICAS........................................................................... 111 
ANEXOS...................................................................................................................... 112 
A.1. Como ser reprovado em Algoritmos e/ou Laboratório de Programação.............. 112 
A.2. Sobre o autor ..................................................................................................... 114 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 5/115 
 
1. CONCEITOS BÁSICOS 
 
“Programar é basicamente construir algoritmos”. 
 
1.1. LÓGICA DE PROGRAMAÇÃO E ALGORITMOS 
Qualquer problema é solucionado seguindo um ou mais caminhos. Para isto, usa-se a 
lógica, ou seja, raciocínios coerentes que conduzem a soluções eficazes para o problema. Por 
exemplo: 
1. A gaveta está fechada. 
2. A caneta está dentro da gaveta. 
3. Portanto, primeiro é preciso abrir a gaveta para depois pegar a caneta. 
 
Quando o problema a ser solucionado é de processamento de dados (computador), é 
necessário usar a lógica de maneira formal, ou seja, adequar os raciocínios a simbolização usada 
na programação, de modo a obter o resultado do que deseja programar com qualidade. Neste 
caso, usamos a expressão lógica de programação, que é representada por algoritmos. 
Os algoritmos fazem parte da nossa vida diária, constantemente estamos fazendo uso 
dele. Alguns exemplos são: 
• Indicações dadas para se chegar até uma determinada rua; 
• Um receita culinária; 
• Uma planta serve ao mesmo propósito num projeto de construção; 
• Instruções para o uso de medicamentos, equipamentos; 
• Indicações de como montar um aparelho. 
 
Algoritmos são, portanto, uma seqüência ordenada e sem ambigüidade de passos 
executáveis (ou seja, instruções/ações), precisamente definidos, que manipulam um conjunto de 
dados a fim de resolver um dado problema. 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 6/115 
1.2. FORMAS DE REPRESENTAÇÃO DE ALGORITMOS 
Um algoritmo deve possuir ações bem definidasde modo a não dar margem à dupla 
interpretação. Ele parte de um ponto inicial, passando pelas ações até alcançar o resultado final. 
Não importando a representação a ser escolhida, para solucionar o problema devem ser 
empregadas corretamente as leis do pensamento para obter o resultado esperado. 
Um algoritmo pode ser representado através de descrição narrativa, fluxograma, 
pseudocódigo e diagrama de chaplin, formas de represetação descritas nos itens seguintes. 
 
1.2. 1. Descrição Narrativa 
 
Nesta forma de representação, os algoritmos são expressos diretamente em Linguagem 
Natural. Por exemplo, observe a solução dos problemas apresentados abaixo referente à troca de 
uma lâmpada velha e ao cálculo da média aritmética de duas notas. 
 
ALG01 – Trocar uma lâmpada velha 
 
1. Pegar uma escada; 
2. Posicionar a escada embaixo da lâmpada; 
3. Buscar uma lâmpada nova; 
4. Subir na escada; 
5. Retirar a lâmpada velha; 
6. Colocar a lâmpada nova. 
 
 
ALG02 – Calcular a média aritmética de um aluno 
 
1. Pegar as notas N1 e N2; 
2. Calcular a média aritmética (M � (N1 + N2)/2); 
3. Mostrar o resultado; 
 
 
 
 
A Linguagem Natural muitas vezes é PROLIXA (cansativa, longa, irritante) e 
IMPRECISA, podendo ocasionar problemas, tais como: 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 7/115 
• Má interpretação; 
• Perda de informação; 
• Dificuldade de se transmitir a informação desejada. 
 
Por exemplo, descreva um caminho para sair de onde você está no momento e ir até a 
estação do metrô Tiete em São Paulo. 
1.2. 2. Pseudocódigo 
Nesta forma de representação, os algoritmos são expressos numa linguagem simplificada, 
também conhecida por portugol ou português estruturado. 
No momento do desenvolvimento de um algoritmo, é preciso saber quais dados serão 
recebidos do mundo externo e também quais informações exteriorizar. Não interessa, portanto, 
saber se os dados entrarão via teclado, pela leitura de um arquivo de dados ou por qualquer outro 
meio. Para dar entrada ou saída nesses dados, são utilizados os verbos LER, ESCREVER e 
IMPRIMIR. O comando ler (ou leia) espera receber um determinado dado (sem importar a 
origem). O comando escrever (ou escreva) mostra a informação produzida no vídeo. O comando 
imprimir (ou imprima) faz a impressão em papel da informação produzida. A sintaxe dos 
comandos é : 
 
leia (variável1, variável2, ... , variável n); 
escreva (lista de constantes, variáveis e/ou expressões ); 
imprima (lista de constantes, variáveis e/ou expressões ); 
 
Exemplos: 
Leia (numero1); 
numero2 ← numero1 * 2; 
escreva (‘O dobro do número é ‘, numero2); 
imprima (‘O triplo do número é ‘, numero1 * 3); 
 
A seguir são apresentados os algoritmos ALG01 e ALG02, que ilustram uma solução 
para a troca de lâmpada velha e para o cálculo da média aritmética de um aluno, 
respectivamente. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 8/115 
 
ALG01 – Pseudocódigo do algoritmo para trocar uma lâmpada velha 
 
Algoritmo Troca_lâmpada; 
Início 
 Escreva (‘Pegar uma escada’); 
 Escreva (‘Posicionar a escada embaixo da lâmpada’); 
 Escreva (‘Buscar uma lâmpada nova’); 
 Escreva (‘Subir na escada’); 
 Escreva (‘Retirar a lâmpada velha’); 
 Escreva (‘Colocar a lâmpada nova’). 
Fim 
 
 
ALG02 – Pseudocódigo do algoritmo que calculaa média aritmética de duas notas 
 
Algoritmo CalcMedia; 
Var 
 N1, N2, M : Numérico; 
Início 
 Leia (N1, N2); 
 M � (N1 + N2)/2); 
 Escreva (M); 
Fim. 
 
 
Note que ambos os algoritmos começam e terminam com as palavras Algoritmo, início e 
fim, sendo que a palavra algoritmo é seguida de um identificador, que corresponde a um nome 
representativo do problema a ser solucionado. Em ALG02 tem também as palavras chaves Var e 
Numérico, que são utilizadas para declaração de variáveis e seus tipos de dados que fazerm 
parte da solução do problema. Estas serão esclarecidas mais a frente. Por enquanto, é importante 
saber que estas palavras chaves compõem a sintaxe do pseudocódigo. 
1.2. 3. Fluxograma 
Nesta forma de representação, os algoritmos são expressos numa linguagem gráfica, 
sendo que algumas das formas geométricas que simbolizam algumas das ações mais realizadas 
são: 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 9/115 
 
Descrição Representação gráfica Descrição Representação gráfica 
Inicio/Fim 
 
Processamento 
 
 
 
Entrada de dados 
 
 
Decisão 
 
 
 
Saída de dados 
 
 
Repetição 
 
 
Conectores 
 
Direção do fluxo 
 
 
Veja a solução dos problemas da troca da lâmpada velha e do cálculo da média utilizando 
o fluxograma. 
 
ALG01 - Trocar uma lâmpada velha 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
inicio 
fim 
Pegar uma escada; 
Posicionar a escada embaixo da lâmpada; 
Buscar uma lâmpada nova; 
Subir na escada; 
Retirar a lâmpada velha; 
Colocar a lâmpada nova; 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 10/115 
ALG02 – Calcular a média aritmética 
 
{Início do algoritmo} 
 
{Entrada de dados, isto é, das notas N1 e N2} 
 
 
{Processamento, isto é, cálculo da média} 
 
 
{Saída de dados: mostrando resultado} 
 
{Fim do algoritmo} 
 
O fluxograma é também conhecido pelos profissionais da área de Tecnologia da 
Informação de diagrama de blocos, embora tenham sigificados diferentes. 
1.2. 4. Diagrama de Chaplin 
Nesta forma de representação, os algoritmos são expressos num diagrama de quadros, 
que apresenta uma visão hierárquica e estruturada da lógica do programa. Tem um ponto de 
entrada e um ponto de saída e é composto pelas estruturas básicas: seqüência, seleção e 
repetição. Veja o exemplo a seguir. 
ALG02 – Diagrama de chaplin do algoritmo que calcula a média aritmética de duas notas e 
mostra mensagem “Aprovado” ou “Reprovado” 
 
 
Início 
Fim 
N1, N2 
M � (N1 + N2)/2 
M 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 11/115 
1.2. 5. Transformação do algoritmo em um programa 
Quando o verbo programar é mencionado, imediatamente vem à mente a palavra 
programa (ou software), que na realidade consiste num algoritmo traduzido para uma forma 
inteligível para o computador. 
Quem realiza essa tradução é um outro programa denominado Linguagem de 
Programação, tal como Pascal, Delphi, Visual Basic, C, etc. A função básica da Linguagem de 
Programação é converter um código-fonte, isto é, o algoritmo escrito numa sintaxe 
compreensível pelo programador para a Linguagem de Máquina ou Linguagem Binária. 
Assim sendo, programa é uma combinação de algoritmo mais linguagem de 
programação, sendo que para elaborar o algorimto é necessário pensar de forma lógica para 
solucionar o problema real que se apresenta (Figura 1). 
 
 
 
Figura 1 - Esquema algoritmo-programa 
 
Os programadores devem iniciar o desenvolvimento de um programa elaborando antes o 
fluxograma ou pseudocódigo a fim de demonstrar a linha de raciocínio lógico para resolução do 
problema, isto é, para estabelecer a seqüência de operações a ser realizada pelo programa 
desejado1. 
A codificação do algoritmo pode ser realizada em qualquer Linguagem de Programação. 
Lembrando que estas apresentam sintaxes diferentes, mas são similares em muitas outras 
particularidades, como por exemplo, o paradigma de programação empregado (programação 
estruturada, orientada a eventos ou orientada a objetos). A seguir são apresentadas as 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 12/115 
implementações em PASCAL dos algoritmos ALG01 e ALG02, mencionado o que é exibido no 
monitor quando cada uma das linhas de código é executada pelo computador. 
ALG01 – Codificação em PASCAL do 
problema da troca da lâmpada 
Aparece no monitor durante execuçãodo 
programa 
Program Troca_lampada; 
Uses WinCrt; 
Begin 
 writeln (‘Pegar uma escada;’); 
 writeln (‘Posicionar a escada embaixo da 
lâmpada; ’); 
 writeln (‘Buscar uma lâmpada nova; ’); 
 writeln (‘Subir na escada; ’); 
 writeln (‘Retirar a lâmpada velha; ’); 
 writeln (‘Colocar a lâmpada nova.’); 
End. 
Nada 
Nada 
Nada 
Pegar uma escada; 
Posicionar a escada embaixo da lâmpada; 
 
Buscar uma lâmpada nova; 
Subir na escada; 
Retirar a lâmpada velha; 
Colocar a lâmpada nova. 
Nada 
 
ALG02 – Codificação em PASCAL do 
cálculo da média aritmética de 2 notas 
Aparece no monitor durante execução do 
programa 
Program CalcMedia; 
Uses WinCrt; 
Var N1, N2, M : real; 
Begin 
 
 Writeln (‘Digite Nota 1:’); 
 Readln (N1); 
 Writeln (‘Digite Nota 2:’); 
 Readln (N2); 
 M := (N1 + N2)/2); 
 Writeln (‘A média é = ’, M:5:2); 
End. 
Nada 
Nada 
Nada 
Nada 
Nada 
Digite Nota 1: 
<Deve ser digitado algum valor pelo teclado> 
Digite Nota 2 
<Deve ser digitado algum valor pelo teclado> 
Nada 
Nada 
Nada 
Nada 
 
Os programas geralmente têm uma estrutura padrão que consiste em: Entrada � 
Processamento � Saída. Os dados necessários à resolução do problema são entrados via teclado 
e armazenados na memória do computador em posições denominadas de variável. O 
processamento é realizado pela Unidade Lógica e Aritmética (ULA) e a saída de dados 
processados (informações/valores calculados) ocorre através do monitor. 
Para desenvolver um programa com entrada, processamento e saída, é importante 
responder as seguintes perguntas durante a elaboração do algoritmo: O que tenho? O que quero? 
Como fazer? 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 13/115 
1.3. EXERCÍCIOS PROPOSTOS 
1.3. 1. Responda as questões abaixo 
a. O que é lógica de programação? 
b. O que é algoritmo? 
c. Como os algoritmos podem ser representados? 
d. O que é descrição narrativa? 
e. Dê um exemplo de algoritmo representado em descrição narrativa. 
f. Qual a desvantagem de se utilizar a descrição narrativa para representar os algoritmos? 
g. O que é pseudocódigo? 
h. Dê um exemplo de pseudocódigo. 
i. O que é fluxograma? 
j. Dê um exemplo de utilização do fluxograma. 
k. Fale sobre o diagrama de Chaplin. 
l. Dê exemplo de um algoritmo representado pelo diagrama de Chaplin. 
m. Como se transforma um algoritmo num programa? 
n. O que é linguagem de programação? 
o. O que é um programa? 
p. Como os programadores devem proceder para desenvolver um programa? 
q. Como pode ser realizada a codificação de algoritmo para transforma-lo num programa de 
computador? 
r. Exemplifique a codificação do algoritmo da troca de lâmpada velha em PASCAL. 
s. Exemplifique a codificação do algoritmo do cálculo da média em PASCAL. 
t. Qual é a estrutura básica de um programa? 
u. Durante a fase de elaboração do algoritmo, que perguntas devem ser respondidas? 
v. Onde ocorre o processamento dos dados dentro do computador? 
w. Como são entrados no computador os dados necessários á resolução do problema? 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 14/115 
x. Cite alguns dispositivos utilizados para entrar dados na memória do computador. 
y. Cite alguns dispositivos utilizados para saída das informações no computador. 
z. O que é memória? 
aa. Coloque falso (F) ou verdadeiro (V) 
( ) Programadores não devem iniciar o desenvolvimento de um programa elaborando 
antes o fluxograma ou o pseudocódigo 
( ) Fluxograma ou pseudocódigo são construídos a fim de demonstrar a linha de 
raciocínio lógico para resolução do problema 
( ) Pascal, Java, Delphi, C e Windows são linguagens de programação 
( ) O algoritmo pode ser codificado em qualquer Linguagem de Programação 
( ) Os dados necessários à resolução do problema não são entrados via teclado 
( ) Os dados são armazenados na memória do computador em posições denominadas de 
variável. 
1.3. 2. Elaboração de algoritmos descritivos 
Elabore algoritmos descritivos para ensinar uma pessoa totalmente leiga a realizar as 
seguintes tarefas: 
1) Chupar bala; 
2) Estourar pipoca numa panela usando o fogão. 
3) Trocar uma lâmpada queimada que está no teto, supondo que temos uma escada com 
altura suficiente e uma caixa com lâmpadas de diferentes potências. 
4) Estourar pipoca numa panela usando o fogão, utilizando somente os verbos acender, 
colocar, desligar e misturar, bem como usar somente os objetos panela, tigela, fogo, sal, 
milho de pipoca, pipoca e manteiga. 
5) Trocar a lâmpada queimada empregando somente os verbos colocar, descer, escolher, 
girar e subir. Além disso, usar também apenas os objetos escada, lâmpada queimada, 
lâmpada nova, soquete. 
6) Colocar exatamente 4 litros de água num garrafão que tem capacidade para 5 litros. Pode-
se usar também outro garrafão com capacidade de 3 litros e a fonte de água a vontade. 
7) Atravessar três jesuítas e três canibais para o outro lado de um rio. Para isso, há um barco 
com capacidade para duas pessoas. Por medidas de segurança, não se deve permitir que 
em alguma margem a quantidade de jesuítas seja inferior à dos canibais. Qual a solução 
para efetuar a travessia com segurança? Elabore um algoritmo mostrando a resposta, 
indicando as ações que concretizam a solução deste problema. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 15/115 
8) Solucionar o problema da Torre de Hanói, que envolve um ambiente formado por uma 
base com 3 pinos (pA, pB e pC). No pino pA há uma pilha de 3 discos furados com 
diâmetros diferentes (dP, dM e dG), ordenados de tal forma que o disco maior (dG) está 
em baixo e o menor (dP) em cima, formando assim uma torre conforme a figura a seguir: 
 
Figura 2 - Ambiente da Torre de Hanói. 
 
 O problema consiste em transferir-se a torre do pino pA para o pino pC 
obedecendo as seguintes restrições: 
 a) Só é possível movimentar um disco por vez para qualquer pino; 
 b) Um disco maior nunca poderá ser colocado sobre um menor; 
c) A solução deverá ser encontrada com o menor número de passos possível. 
9) Mostrar os passos necessários para trocar um pneu furado, considerando as seguintes 
situações: 
a) Trocar o pneu traseiro esquerdo; 
b) Trocar o pneu traseiro esquerdo e, antes, verificar se o pneu reserva está em 
condições de uso; 
c) Verificar se existe algum pneu furado, se houver verificar o pneu reserva e, então, 
trocar o pneu correto. 
Tome como exemplo os algoritmos desenvolvidos para solucionar o problema da troca de 
lâmpadas. Para cada algoritmo faça um refinamento do anterior, introduzindo novas 
ações e alterando o fluxo de execução de forma compatível com as situações 
apresentadas. 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 16/115 
1.3. 3. Transcrevendo algoritmo em fluxograma para pseudocódigo e vice-versa 
Fluxograma Pseudocódigo 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programa ALG03; 
 
Inicio 
 Escreva (“Meu primeiro programa”); 
Fim. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Inicio 
Fim 
“Estou aprendendo” 
a” 
“desenvolver algoritmos” 
 
Inicio 
“10” 
 
Fim 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 17/115 
 
Fluxograma Pseudocódigo 
 
 
 
 
 
 
 
 
 
 
 
Programa ALG06; 
Var 
 x: Inteiro; 
Inicio 
 x � 10; 
Fim. 
 
Programa ALG07; 
Var 
 y: Inteiro; 
Inicio 
 y � 10; 
 Escreva(y); 
Fim. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Inicio 
Fim 
y � 10 
“y = “, y 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 18/115 
 
Fluxograma Pseudocódigo 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programa ALG10; 
Var 
 N1,N2: Inteiro; 
Inicio 
 N1 � 2; 
 N2 � 3; 
 Escreva(‘N1 = ‘, N1, ‘ N2 = ‘,N2); 
Fim. 
 
Inicio 
“N1 = ”, N1 
 
“N2 = ”, N2 
 
N1 � 2 
N2 � 3 
Fim 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 19/115 
 
Fluxograma Pseudocódigo 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programa ALG11; 
Var 
 a: Inteiro; 
 b: Real; 
 nome:caracter; 
 teste:lógico; 
Inicio 
 a � 1; 
 b � 1.25; 
 nome � ‘Maria’; 
 teste � verdadeiro; 
 Escreva (a); 
 Escreva (b); 
 Escreva (nome); 
 Escreva (teste); 
Fim. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programa ALG13; 
Var 
 a,b,soma: Inteiro; 
Inicio 
 a � 15; 
 b � 3; 
 soma � a + b; 
 Escreva (‘ Soma = ‘, soma); 
Fim. 
Inicio 
Fim 
a � 15; 
b � 3; 
‘Soma = ‘, a + b 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 20/115 
 
Fluxograma Pseudocódigo 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programa ALG14; 
Var 
 letra:caracter; 
Inicio 
 
 letra � ‘A’; 
 Escreva(letra); 
 
Fim. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programa ALG15; 
Var 
 n:real; 
Inicio 
 Escreva (‘Digite um número real:’); 
 Leia (n); 
 Escreva (n); 
Fim. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programa ALG16; 
Var 
 num1,num2:real; 
Inicio 
 Escreva(‘Digite dois números reais:’); 
 Leia(num1,num2); 
 Escreva(‘Primeiro numero = ‘,num1); 
 Escreva(‘Segundo numero = ‘,num2); 
Fim. 
 
Inicio 
Fim 
 ‘Digite um número real‘ 
n 
Nn 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 21/115 
 
Fluxograma Pseudocódigo 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Inicio 
Fim 
‘Digite o primeiro’ número” 
‘Digite o segundo ‘ número” 
 
num1 
‘2o = ‘, num2 
 
‘1º = ‘, num1 
num2 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 22/115 
2. PROGRAMAÇÃO ESTRUTURADA 
 
“Algoritmos só se aprende fazendo”. 
 
2.1. INTRODUÇÃO 
Segundo alguns especialistas, qualquer programa de computador pode ser escrito 
utilizando apenas três estruturas básicas: Seqüência, Condição e Repetição. Isto significa que, na 
construção de um algoritmo, deve ser criado um fluxo de ações a ser executado seqüencialmente, 
ou seja, de cima para baixo e da esquerda para a direita. 
Antes, porém, é necessário fazer as seguintes perguntas: quais dados serão utilizados para 
solucionar o problema? De que tipo eles são (inteiro, real, literal ou lógico)? Qual o tamanho 
desses dados? 
Portanto, nos itens seguintes são abordados descrição e exemplos a respeito de tipos de 
dados e demais assuntos relacionados. São também apresentados exemplos de utilização das 
estruturas básicas e uma lista de exercícios para fixação dos conceitos. 
2.2. TIPOS DE DADOS, VARIÁVEIS E OPERADORES 
Uma relação dos tipos de dados, dos operadores de atribuição, aritméticos, lógicos e 
relacionais que podem ser utilizados pelo computador bem como o conceito de variável são 
mostrados a seguir. 
2.2.1. Tipos de dados 
Uma informação manipulada pelo computador pode ser classificada como instruções ou 
dados. Sendo que, uma instrução comanda o funcionamento da máquina e determina como 
devem ser tratados dos dados. E os dados, correspondem à porção das informações a serem 
processadas pelo computador. Os tipos de dados manipulados pelo computador são três: 
 
• Dados numéricos 
• Dados literais 
• Dados lógicos 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 23/115 
 
Recordando: 
Conjunto dos números naturais (N) 
 N = { 1, 2, 3, 4, ...} 
Conjunto dos números inteiros (Z) 
 Z = {..., -3, -2, -1, 0, 1, 2, 3, ... } 
Conjunto dos números fracionários (Q) 
 Q = { p/q | p, q pertencem a Z} 
Conjunto dos números reais (R) é formado pela união do conjunto Q. 
 
2.2.1.1. Dados numéricos inteiros 
Este tipo de dados são números pertencentes ao conjunto dos números inteiros (Z). 
Podendo assumir valores negativos, nulo e positivos. Exemplos: 
 
 24 – número inteiro positivo 
 0 – número inteiro 
 -12 – número inteiro negativo 
2.2.1.2. Dados numéricos reais 
Este tipo de dados são números pertencentes ao conjunto dos números fracionários (Q). 
Podendo assumir valores negativos, nulos e positivos. Exemplos: 
 
 24.01 – número real positivo com duas casas decimais. 
 144 – número real positivo com zero casas decimais. 
 -13.3 – número real negativo com uma casa decimal. 
 0 – número real com zero casas decimais. 
2.2.1.3. Dados literais 
Este tipo de dados são caracteres tais como: letras, dígitos e/ou símbolos especiais. 
 Podem ser chamados também como: dados alfanuméricos, cadeias de caracteres ou 
string. No algoritmo, estes dados são delimitados pelo apostrofo (‘cadeia de caracteres’). 
Exemplos: 
‘qual ?’ - literal de comprimento 6. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 24/115 
‘ ‘ - literal de comprimento 1. 
‘1-2+3=’ - literal de comprimento 6. 
‘AbCdeF‘ - literal de comprimento 7. 
‘0’ - literal de comprimento 1. 
 
2.2.1.4. Dados lógicos 
Estes tipos de dados são chamados de booleanos. Eles representam dados lógicos com 
Verdadeiro e falso. Nos algoritmo seus valores são delimitados pelo ponto (.V.). Exemplos: 
 
 .V. – valor lógico verdadeiro 
 .F. – valor lógico falso 
 
2.2.2. Variáveis 
Variável é um nome (rótulo) dado a uma parte da memória, cujo conteúdo (valor) pode 
ser alterado durante a execução do programa. Embora seja possível alterar o valor armazenado 
na memória (na variável), é possível armazenar só um valor de cada vez. A variável é composta 
de dois elementos básicos: a) conteúdo – valor atual da variável e b) identificador – nome dado à 
variável. 
O identificador deve obrigatoriamente iniciar com uma letra e os caracteres seguintes 
com letras ou números. Exemplos: 
 
A � 5 (O valor 5 é armazenado na variável A) 
B� 6 (O valor 6 é armazenado na variável B) 
C � A+B (O valor que está em A é somado ao valor em B, e o resultado é armazenado 
na variável C.) 
 
Vale lembrar que quando um valor é armazenado numa variável, o valor antigo será 
perdido. 
Identificadores permitidos: A, Nome, N1 e S2N. Identificadores não permitidos: 2N, A 
–B, N[1], A*2 
Todas as variáveis usadas em um algoritmo (pseudocódigo) devem ser declaradas antes 
de serem usadas. Isto faz necessário para permitir a reserva de espaço na memória. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 25/115 
 
Sintaxe da declaração: 
 
Var 
<nome_da_variável> : <tipo_de_dados>; 
 
Regras: 
• A palavra Var deve aparecer uma única vez; 
• Para um mesmo tipo de dado, podem ser listadas várias variáveis (seus nomes devem 
ser separados por vírgula); 
• Variáveis de tipos diferentes devem ser declaradas em linhas diferentes. 
 
Exemplos: 
Var 
 nome,endereço: caracter; 
 idade:inteiro; 
 salário:real; 
 tem_filhos:lógico; 
2.2.3. Variáveis versus alocação de memória 
O particionamento da memória para armazenamento de dados é realizado após análise do 
problema a ser resolvido. É necessário responder as seguintes perguntas: 
 
• Qual o problema a resolver? 
• Quais os dados devem ser armazenados? 
• Que tipo dado a ser utilizado? 
• Qual o tamanho dos dados a serem utilizados? 
• Como resolver o problema? 
 
Digamos que o problema a ser resolvido é: somar dois números quaiquer, tais como: 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 26/115 
Neste caso, os dados que devem ser armazenados, considerando os valores 2 e 3, são: 
 
Onde 2 é o Primeiro número escolhido, 3 é o Segundo número escolhido e 5 é o Resultado, ou 
seja, o total da soma dos dois números. Então, posso rotular as partes da memória do 
computador, onde os valores 2, 3 e 5 serão armazenados, como sendo Primeiro, Segundo e 
Resultado respectivamente.Estas partes de memória podem receber também outros valores tais como: 4, 4 e 8; 289, 
97 e 386; 232, 1 e 233; 398, 0 e 398; e etc. Estas partes da memória são, portanto, chamadas de 
variáveis e sempre que um novo valor for colocado nelas, o conteúdo anterior é perdido ou 
sobrescrito. 
No exemplo acima, pode-se concluir que os dados são do tipo inteiro. 
 
 
Portanto, a porção de memória a ser reservada para as variáveis rotuladas (Primeiro, 
Segundo e Resultado) terá um dimensionamento apropriado para o tipo inteiro. 
A memória do computador pode ser particionada para armazenar dados de outros tipos 
também, tais como dados do tipo real, literal e lógico. A diferença destes tipos de dados consiste 
apenas no tamanho da porção de memória a ser reservada, como ilustra tabela a seguir. 
 
TIPO DE DADO TAMANHO 
Inteiro 2 bytes 
Literal [1] (1 caracter) 1 byte 
Real 4 bytes 
Lógico 1 byte 
 
Lembrando: 1 byte = 8 bits; 1 bit pode assumir apenas um de dois valores (0 ou 1). 
Cada tipo de dado pode assumir de um valor mínimo a um valor máximo, como mostra a 
tabela abaixo: 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 27/115 
 
Relembrando o exemplo da soma dos dois números, se os números a serem somados 
estão dentro da seguinte faixa de valores: 
 
Então, a porção de memória a ser reservada se enquadra no tipo inteiro. 
 É importante ressaltar também que o processo de rotular as partes da memória com 
nomes, isenta o programador de conhecer os endereços da memória expressos em hexadecimal. 
A figura a seguir ilustra o particionamento da memória (a numeração hexadecimal foi substituída 
pela decimal apenas para facilitar o entendimento). 
 
 
Figura 3 - Esquema de memória 
 
 Voltando ao problema da soma de dois números, pode-se agora responder a última 
pergunta “Como resolver o problema?”. A resposta é: definir variáveis e .... 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 28/115 
 
 A figura a seguir ilustra todo o processo. 
 
Figura 4 - Variáveis versus mapeamento de memória 
 
2.2.4. Operadores 
2.2.4.1. Operador de atribuição 
O operador de atribuição (�) é usado para fornecer um valor a uma dada variável. 
Exemplificando: 
 
A � 5 (Atribuindo o valor 5 à variável A) 
B � A (Atribuindo o valor da variável A, valor igual a 5, à variável B) 
A � B + C (Atribuindo o valor da soma dos valores nas variáveis B e C à variável C) 
2.2.4.2. Operadores aritméticos e funções 
Para realizar cálculos matemáticos é necessário saber qual a representação dos símbolos 
de operações matemáticas, a saber: 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 29/115 
Operador Operação Exemplo 
+ Adição 2 + 5 = 7 
- Subtração 20 – 10 = 10 
* Multiplicação 3 * 5 = 15 
/ Divisão (onde o resultado será um número real) 5 / 2 = 2,5 
DIV Divisão (onde o resultado será um número inteiro) 
10 div 2 = 5 
7 div 2 = 3 
MOD Resto de uma divisão 7 mod 2 = 1 
** ou exp(a, b) Exponenciação 5 ** 2 ou exp(5, 2) 
Sqrt (x) Raiz quadrada Sqrt(5) 
Exp(ln(x)*n) Exponenciação xn Exp(ln(5)*3) 
 
Exemplificando através da elaboração de um algoritmo que resolve: 
a) x = ab b) y = √a 
Algoritmo A; 
Var x, a, b:real; 
inicio 
 a ←10; 
 b ←2; 
 x ← Exp(ln(a)*b); 
 escreva(x); 
fim. 
Algoritmo A; 
var y, a:real; 
inicio 
 a ←16; 
 y ← Sqrt(a); 
 escreva(y); 
fim 
 
2.2.4.3. Operadores Lógicos 
Os operadores usados em expressões lógicas são os Operadores Lógicos apresentados na 
tabela a seguir. 
Operador Relação Descrição Exemplo 
E (And) E lógico 
Conjunção (as duas 
ao mesmo tempo ) 
(Media > 5) .E. (Freq > 75) 
Ou (Or) Ou lógico Disjunção Inclusiva (Flag = .V.) .Ou. (Cont > 50) 
Não (Not) Negação lógica Negação Não (Sei_nada) 
Ou-X (Xor) Ou ‘Exclusivo’ (Sal < 500) Ou-X (N_dep > 2) 
 
Veja a tabela verdade apresentada a seguir para entender melhor os operadores lógicos, 
onde P e Q são variáveis do tipo lógico. 
P Q P.e. Q P .ou. Q P .ou-X. Q Não (P .e. Q) Não (P .ou. Q) Não (P .ou-X. Q) 
F F F F F V V V 
F V F V V V F F 
V F F V V V F F 
V V V V F F F V 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 30/115 
2.2.4.4. Operadores relacionais 
Além de operações matemáticas, é freqüente a comparação de informações. Por 
exemplo, se a média aritmética do aluno for maior ou igual a 5 então o professor toma a decisão 
de aprovar o aluno. Para isso, são usados os operadores relacionais listados na tabela a seguir. 
Operador Relação Exemplo 
= Igualdade Nome = ‘João da Silva’ 
≠≠≠≠ ou <> Diferente Saldo ≠ 100,00 
> Maior que Salário > 3000,00 
Idade > 18 
≥≥≥≥ ou >= Maior ou igual que Média ≥ 5,0 
 
< Menor que Renda < 10000 
≤≤≤≤ ou <= Menor ou igual que Aluguel ≤ 400 
 
 
2.2.4.5. Prioridade para execução das operações no computador 
O computador avalia as expressões e executa as operações mistas na seguinte ordem: 
Ordem Operações 
1º Parênteses e funções (resolvidos da esquerda para a direita) 
2º Multiplicação (*), Divisão ( / e div ) e Resto ( Mod ) (resolvidos da 
esquerda para a direita) 
3º soma e subtração 
4º Operadores relacionais: >, <, ≥≥≥≥, ≤≤≤≤, =, ≠≠≠≠ 
5º Operador Lógico Não 
6º Operador Lógico E 
7º Operador Lógico Ou 
 
2.2.5. Exercícios propostos 
 
1) Responda as questões abaixo: 
 
a) O que é variável? 
b) O que é tipo de dado? 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 31/115 
c) O que você entende por memória do computador? 
d) Quais as regras para compor o nome (rótulo ou identificador) de uma variável? 
e) Quais as regras para a declaração de uma variável? 
 
2) Relacione as colunas 
Tipo de dado Descrição 
a) Numérico 
inteiro 
( ) São caracteres tais como: letras, dígitos e/ou símbolos especiais. Pode-se também 
chamar estes dados de : alfanuméricos, cadeia de caracteres ou string. No 
algoritmo estes dados são delimitados pelo apóstrofo. 
b) Numérico real ( ) São chamados de boleanos. Pode assumir dois valores: Falso e Verdadeiro. No 
algoritmo seus valores são delimitados pelo ponto (.V.). 
c) Literal ( ) São números pertencentes ao conjunto dos números inteiros (Z), podendo 
assumir valores negativos, nulos e positivos. 
d) Lógico ( ) São números pertencentes ao conjunto dos números fracionários (Q), podendo 
assumir valores negativos, nulos e positivos. 
 
 
3) Classifique os dados abaixo de acordo com seu tipo (inteiro, real, literal ou lógico). 
Dado Tipo de dado Dado Tipo de dado 
0.7845 ‘abc’ 
‘+35987’ .F. 
.V. -0.0 
‘.F.’ +36 
32 -1 
32.0 ‘2’ 
‘-0.0’ ‘Teste’ 
24.01 144 
‘1-2+3=’ ‘AbCdeF’ 
‘qual?’ -13.3 
 
4) Na lista seguinte, assinale com V os nomes de variáveis válidos e com I os inválidos. 
( ) Abc ( ) 3abc ( ) A 
( ) 123a ( ) _a ( ) acd1 
( ) _ ( ) Aa ( ) 1 
( ) A123 ( ) _1 ( ) A0123 
( ) A1_v3 ( ) _a123 ( ) B214 
( ) AB CDE ( ) etc... ( ) guarda-chuva 
 
5) Indique a prioridade na avaliação das expressões 
 Soma e subtração 
 Operador lógico E 
 Operador Lógico Não 
 Parênteses e funções (resolvidos da esquerda para a direita) 
 Operadores relacionais: >, <, >=, <=, <> 
 Multiplicação (*), Divisão (/ e Div) e Resto (Mod) (resolvidos da esquerda para a direita) 
 Operador lógico Ou 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 32/115 
 
6) Dadas as declarações de variáveis abaixo, monte as tabelas de símbolos correspondentes. 
a) VAR 
 a,b,c : real; 
 delta : real; 
 positivo : lógico; 
 raiz1, raiz2 : real; 
Nome simbólico Posição inicial Tipo de dado 
A 1 Real 
 
 
 
 
 
 
 
b) VAR 
 x,y : inteiro; 
 nome, profissao : literal [20]; 
 rua : literal [30]; 
 numero : inteiro;renda : real; 
Nome simbólico Posição inicial Tipo de dado 
 
 
 
 
 
 
 
7) Elabore um exercício sobre o conteúdo apresentado até o presente momento. Pode ser 
criativo. 
 
8) Dado os enunciados abaixo, identifique as variáveis necessárias na elaboração do algoritmo. 
Dê nome para essas variáveis e identifique os tipos de dados possíveis: 
 
8.1) Crie um algoritmo que calcule a soma de dois números inteiros. 
8.2) Crie um algoritmo que calcule a média de um aluno composta por duas provas. 
8.3) Crie um algoritmo que calcule o salário líquido de um funcionário, considerado: 
a) os dados do funcionário: nome, RG e telefone. 
b) salário bruto de R$ 2500,00 
c) descontos de R$ 300,00 
 
9) Dados os identificadores abaixo, assinale somente os que são aceitos em Algoritmos. 
( ) Valor 
( ) abc 
( ) B248 
( ) A/B 
( ) X2 
( ) a 
( ) salário 
( ) Nome 
( ) 3 x 4 
( ) MARIA 
( ) KM/H 
( ) 3E 
( ) Valor Pago 
( ) NoTa 
( ) _a123 
( ) Contador 
( ) A1B2C3 
( ) 1 
( ) ‘Nota’ 
( ) XYZ 
( ) AH! 
( ) Nota 
( ) _a 
( ) acd1 
( ) Placa-Carro 
( ) SALA125 
( ) ‘NOTA’ 
( ) Algoritmo_1 
( ) Nome_da_empresa 
( ) SALÁRIO-LÍQUIDO 
( ) 1º algoritmo 
( ) Nota*do*aluno 
( ) notadoaluno 
( ) _1 
( ) _ 
( ) algo 1 
( ) 123ª 
( ) Média 
( ) inicio 
( ) vetor 
( ) AB CDE 
( ) Algoritmo1 
( ) A123 
( ) a123 
( ) 3abc 
 
 
10) Ligue os valores aos seus tipos de dados correspondentes 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 33/115 
 
11) Indique os tipos de dados (inteiro, real, literal, lógico) que podem ser armazenados nas 
variáveis abaixo: 
Var 
 Nota: 
 Idade: 
 Cidade: 
 Salario: 
 Sexo: 
 
12) Na hora de criar o nome da variável (identificador) é necessário seguir regras. Indique com V 
à regra verdadeira e F para regra falsa. 
( ) Não pode usar símbolos especiais 
(%, &, *, -, / , etc); 
( ) O único símbolo permitido é o ( _ ) 
underline. 
( ) Pode haver espaços; ( ) Não pode haver espaços; 
( ) Não pode iniciar com um número; ( ) Pode ter acento agudo ou crase; 
( ) Deve iniciar com uma letra; ( ) Pode iniciar com número 
( ) Pode usar símbolos especiais (%, 
&, *, -, / , etc); 
( ) Pode usar números para compor o restante 
do nome após iniciar com letra; 
 
13) Sendo P, Q, R e S, variáveis numéricas, cujo os conteúdos são iguais a 2, 3, 12 e 4.5, 
respectivamente, quais os valores fornecidos por cada uma das expressões abaixo. 
a) 100 * Q DIV P + R 
b) P * R MOD 5 – Q/2 
c) Q*Q – R/4 * P –3 
d) S MOD (P+1) – Q * R 
e) S+ R * (3 – 2*P)/5 + 5*Q 
 
14) Dada as variáveis numéricas A e B, as variáveis literais NOME e PROFISSAO, completar o 
quadro a seguir com os resultados lógicos (falso ou verdadeiro) obtidos como resultado das 
relações, tendo em vista os valores atribuídos a estas variáveis. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 34/115 
 
 
15) Considerando as variáveis do exercício anterior e mais a variável lógica TESTE contendo o 
valor lógico falso, avaliar as expressões a seguir, para cada uma das três combinações de valores 
apresentadas: 
 
a) A+1 >= B/4 .ou. NOME <> ‘ANA’ 
b) A+5 <= B*2 .e. PROFISSÃO = ‘MÉDICO’ 
c) NOME <> ‘ANA’ .ou. PROFISSÃO = ‘PROFESSOR .e. A+1 >= B/2 
d) PROFISSÃO = ‘CONTADOR’ .ou. TESTE 
e) não TESTE .e. (A+2 >B/6 .ou. não PROFISSÃO = ‘ENGENHEIRO’) 
f) não (A+2 >= B .e. TESTE) 
 
16) Sejam as variáveis lógicas P, Q, R, S contendo, respectivamente, os valores verdadeiro, 
falso, falso, verdadeiro. Indique o resultado das operações: 
a) P .e. S f) P .ou. R 
b) P .e. R g) Q .ou. S 
c) Q .e. S h) Q .ou. R 
d) Q .e. R i) Não P 
e) P .ou. S j) Não R 
 
17) Dadas as expressões aritméticas abaixo, escreva-as de forma que o compilador de uma 
linguagem de programação como o PASCAL, por exemplo, entenda: 
a) 2 (A + B) – 7B 
b)
2
3
3
3
2 BYX −
−
+ 
c)
Z
Y
C
W
BA
Y
X
4
)2(5
3
1
2
+−
+
+
− 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 35/115 
2.3. TÉCNICA DE PROGRAMAÇÃO ESTRUTURADA 
A seguir são apresentadas as estruturas que compõem a técnica de programação 
estruturada e alguns exemplos. 
2.3. 1. Estrutura Seqüencial 
Esta estrutura permite a execução de um grupo de ações sequencialmente. 
2.3.1.1. Sintaxe 
A seguir é apresentada a sintaxe utilizada para elaborar o pseudocódigo e o fluxograma. 
Pseudocódigo Fluxograma 
 
 
 Comando_1; 
 Comando_2; 
 . . . 
 Comando_n; 
 
 
2.3.1.2. Exemplos 
Os algoritmos ALG01 a ALG17, apresentados acima, são exemplos de algoritmos 
elaborados utilizando a estrutura seqüencial. Além deles, observe também os algoritmos 
apresentados a seguir, que realizam: soma de dois valores (ALG18); cálculo da hipotenusa 
(ALG19), conversão de um valor em horas e em minutos para um valor em minutos (ALG20), 
conversão da temperatura em graus Celsius para graus Fahreinheit (ALG21), aumento do salário 
de um funcionário de acordo com certo percentual de aumento (ALG22) e cálculo da área do 
círculo (ALG23). 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 36/115 
 
ALG18 – Soma de dois números 
Análise do problema Descrição narrativa 
1 – O que tenho? 
 Dois valores (A e B) 
2 – O que quero? 
 Soma dos dois valores (S) 
3 – Como ? 
 Fornecer valores A e B; 
 S � A + B; 
 Mostra o resultado (S). 
 
 1 - Fornecer valores A e B; 
 2 - S � A + B; 
 3 - Mostra o resultado (S). 
 
Pseudocódigo Fluxograma 
 
Algoritmo SomaAB; 
Var 
 A, B, S : inteiro; 
Início 
 Leia (A, B); 
 S � A + B; 
 Escreva (S); 
Fim 
 
 
 
 
Codificação em PASCAL Aparece no monitor quando o programa é 
executado 
 
Program SomaAB; 
Uses WinCrt; 
Var 
 A, B, S : integer; 
Begin 
 Writeln (‘Digite A:’); 
 Readln (A); 
 Writeln (‘Digite B’); 
 Readln (B); 
 S := A + B; 
 writeln (‘Soma = ‘, S); 
End. 
 
 
Nada 
Nada 
Nada 
Nada 
Nada 
Digite A: 
<Digitar o valor de A pelo teclado> 
Digite B: 
<Digitar o valor de B pelo teclado> 
Nada 
Soma = <valor armazenado em S> 
Nada 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 37/115 
 
ALG19 – Cálculo da hipotenusa 
Análise do problema Descrição narrativa 
1 – O que tenho? 
 Os catetos Oposto e Adjacente (A e B) 
2 – O que quero? 
 Hipotenusa (H) 
3 – Como ? 
 Fornece valores A e B; 
 H � raiz (A * A + B * B); 
 Mostra o resultado (H). 
 
 1 - Fornece valores A e B; 
 2 - H � raiz (A * A + B * B); 
 3 - Mostra o resultado (H). 
 
Pseudocódigo Fluxograma 
 
Algoritmo CalcHip; 
Var 
 C1, C2, hip : inteiro; 
Início 
 Leia (C1, C2); 
 hip � raiz (C1 * C1 + C2 * C2); 
 Escreva (hip); 
Fim 
 
 
 
 
Codificação em PASCAL Aparece no monitor quando o programa é 
executado 
 
Program CalcHip; 
Uses WinCrt; 
Var 
 A, B, H : integer; 
Begin 
 Writeln (‘Cateto Oposto’); 
 Readln (A); 
 Writeln (‘Cateto Adjacente’); 
 Readln (B); 
 H := sqrt (A * A + B * B); 
 writeln (‘Hipotenusa = ‘, H:5:2); 
End. 
 
 
Nada 
Nada 
Nada 
Nada 
Nada 
Cateto Oposto 
<Digitar algum valor pelo teclado> 
Cateto Adjacente 
<Digitar algum valor pelo teclado> 
Nada 
Hipotenusa = <valor armazenado em H> 
Nada 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 38/115 
 
 
ALG20– Conversão de um valor em Horas e Minutos para apenas minutos 
Análise do problema Descrição narrativa 
1 – O que tenho? 
 Tempo em horas (H) e minutos (M) 
2 – O que quero? 
 Tempo apenas em minutos (M) 
3 – Como ? 
 Fornece os valores H e M; 
 Mt � H * 60 + M; 
 Mostra o resultado (Mt). 
 
 1 - Fornece valores de Horas (H) e Minutos 
(M); 
 2 - Mt � H * 60 + M; 
 3 - Mostra oresultado (Mt). 
 
Pseudocódigo Fluxograma 
 
Algoritmo ConvHMin; 
Var 
 H, M, Mt: inteiro; 
Início 
 Leia (H, M); 
 Mt � H * 60 + M; 
 Escreva (Mt); 
Fim 
 
 
Codificação em PASCAL Aparece no monitor quando o programa é 
executado 
 
Program CalcHMin; 
Uses WinCrt; 
Var 
 H, M, Mt : integer; 
Begin 
 Writeln (‘Horas’); 
 Readln (H); 
 Writeln (‘Minutos’); 
 Readln (M); 
 Mt := H * 60 + M; 
 writeln (‘Minutos = ‘, Mt); 
End. 
 
 
Nada 
Nada 
Nada 
Nada 
Nada 
Horas 
<Digitar algum valor pelo teclado> 
Minutos 
<Digitar algum valor pelo teclado> 
Nada 
Minutos = <valor armazenado em Mt> 
Nada 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 39/115 
 
ALG21 – Conversão de uma temperatura em graus Celsius para Fahrenheit 
Análise do problema Descrição narrativa 
1 – O que tenho? 
 Temperatura em graus Celsius (C) 
2 – O que quero? 
 Temperatura em graus Fahreinheit (F) 
3 – Como ? 
 Fornece a temperatura em Celsius; 
 F � 32 + 1.8 * C 
 Mostra o resultado (F). 
 
 1 - Fornece valor da temperatura em Celsius 
(C) 
 2 - F � 32 + 1.8 * C; 
 3 - Mostra o resultado (F). 
 
Pseudocódigo Fluxograma 
 
Algoritmo ConvCF; 
Var 
 C, F: real; 
Início 
 Leia (C); 
 F � 32 + 1.8 * C; 
 Escreva (F); 
Fim 
 
 
 
 
Codificação em PASCAL Aparece no monitor quando o programa é 
executado 
 
Program CalcCF; 
Uses WinCrt; 
Var 
 C, F : real; 
Begin 
 Write (‘Digite Graus Celsius: ’); 
 Readln (C); 
 F := 32 + 1.8 * C; 
 writeln (‘Fahrenheit = ‘, F); 
End. 
 
 
Nada 
Nada 
Nada 
Nada 
Nada 
Digite graus Celsius: 
<Digitar algum valor pelo teclado> 
Nada 
Fahrenheit = <valor armazenado em F> 
Nada 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 40/115 
 
ALG22 – Cálculo do novo salário de um funcionário segundo um percentual de aumento 
Análise do problema Descrição narrativa 
1 – O que tenho? 
 Salário atual (S) e percentual de aumento 
(p) 
2 – O que quero? 
 Novo salário (NS) 
3 – Como ? 
 Fornece os valores do salário atual (s) e do 
percentual de aumento (p); 
 NS � S + S * p/100; 
 Mostra o resultado (NS). 
 
 1 - Fornece valores de salário atual (S) e o 
percentual de aumento (p); 
 2 - NS � S + S* p/100; 
 3 - Mostra o resultado (NS). 
 
Pseudocódigo Fluxograma 
 
Algoritmo ReajustaSal; 
Var 
 S, NS, p: real; 
Início 
 Leia (S, p); 
 NS � S + S * p/100; 
 Escreva (NS); 
Fim 
 
 
 
 
Codificação em PASCAL Aparece no monitor quando o programa é 
executado 
 
Program ReajustaSal; 
Uses WinCrt; 
Var 
 S, NS, p: real; 
Begin 
 Writeln (‘Salário atual:’); 
 Readln (S); 
 Writeln (‘Reajuste em %’); 
 Readln (p); 
 NS := S + S* p/100; 
 writeln (‘Novo salário = ‘, NS); 
End. 
 
 
Nada 
Nada 
Nada 
Nada 
Nada 
Salário atual: 
<Digitar valor do salário pelo teclado> 
Reajuste em %: 
<Digitar percentual pelo teclado> 
Nada 
Novo salário = <valor armazenado em NS> 
Nada 
 
 
ALG23 – Cálculo da área do círculo 
Análise do problema Descrição narrativa 
1 – O que tenho? 1 - Fornecer valor do raio (R); 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 41/115 
 Raio do círculo (R) e valor do Pi 
2 – O que quero? 
 Área do círculo (A) 
3 – Como ? 
 Fornecer o valor do raio 
 Encontrar o valor do Pi (3,1415); 
 A � R * R * 3.1415; 
 Mostra o resultado (A). 
 
 2 - Encontrar o valor do pi (3.1415) 
 3 - A � R * R * 3.1415 
 4 - Mostrar o resultado (A). 
 
Pseudocódigo Fluxograma 
 
Algoritmo CalcAreaC; 
Var 
 A, R: real; 
Início 
 Leia (R); 
 A � R * R * 3.1415; 
 Escreva (A); 
Fim 
 
 
 
 
Codificação em PASCAL Aparece no monitor quando o programa é 
executado 
 
Program CalcAreaC; 
Uses WinCrt; 
Var 
 A, R: real; 
Begin 
 Writeln (‘Raio do círculo:’); 
 Readln (R); 
 A := R * R * 3.1415; 
 writeln (‘Área do círculo = ‘, A:5:2); 
End. 
 
 
Nada 
Nada 
Nada 
Nada 
Nada 
Raio do círculo 
<Digitar valor do raio pelo teclado> 
Nada 
Área do círculo = <valor armazenado em A> 
Nada 
 
 
Quando fizer o fluxograma coloque alguns comentários do lado. Isto ajuda a lembrar o 
que cada passo realiza. Veja os exemplos a seguir. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 42/115 
 
ALG18 – Soma de dois números ALG20 – Conversão de um valor em Horas e 
Minutos para apenas minutos 
 
 
 
 
 
2.3.1.3. Exercícios propostos 
1. Elabore um programa que leia um comprimento em polegadas, calcule e exiba o 
comprimento em milímetros, considerando que 1 polegada equivale a 25,4 milímetros. 
2. Elabore um programa que leia a massa de uma amostra de carbono, calcule e exiba o número 
de moles de carbono na amostra. Considere que o mol C é igual a 12 e a fórmula é nº de 
moles = massa da amostra / 12 
3. Elabore um programa que leia a força F aplicada sobre um corpo e a velocidade V do corpo, 
calcule e exiba a potência P. Considere P = F . V. 
4. Numa loja existe um total mensal de vendas. Fazer a leitura do nome da loja e do total de 
vendas mensal em um ano. Mostre o nome da loja e os totais de vendas por trimestre. 
5. Ler o nome de um cliente de fast food e a quantidade de cada item do menu que ele vai pedir. 
Exiba o nome do cliente e o total da compra. 
ITEM PREÇO 
Hot dog R$ 1,20 
Hamburguer R$ 1,60 
Cheeseburguer R$ 2,00 
Refrigerante em lata R$ 1,20 
Batatas fritas R$ 2,5 
6. Ler a cotação do dólar no dia e a quantidade de dólares para trocar por real. Exiba a 
quantidade em reais. 
{ Início do algoritmo} 
 
{Lê Horas e Minutos} 
 
{Converte horas em 
minutos e soma os minutos} 
 
{Mostra minutos} 
 
 
{Fim do algoritmo} 
{ Início do algoritmo} 
 
{Lê valores A e B} 
 
 
{Calcula a soma de A e B} 
 
 
{Mostra valor calculado} 
 
{Fim do algoritmo} 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 43/115 
7. Calcular o lucro obtido de um investimento, após um período de um ano, para uma taxa 
anual. Todos os valores usados para o cálculo deverão ser escritos pelo programa. 
8. A aceleração de um corpo em movimento é a mudança da velocidade do corpo em relação a 
um intervalo de tempo. {a = (v2 –v1)/∆t}. Escrever um algoritmo que calcule a aceleração de 
um corpo em movimento conhecendo-se as velocidades inicial e final, e o intervalo de tempo 
medido. 
9. Fazer o algoritmo que obtenha as duas notas de um aluno, que calcule e apresente a sua 
média final (média aritmética). 
10. Calcular e apresentar o valor do volume de uma lata de óleo. v = π*r2*h 
11. Construa um algoritmo que, tendo como dados de entrada dois pontos quaisquer no plano, 
P(x1,y1) e P(x2,y2), escreva a distância entre eles. A fórmula que efetua tal cálculo é: 
( ) ( )( )22 1212 yyxxd −+−= 
12. Escreva um algoritmo que leia três números inteiros e positivos (A, B, C) e calcule a 
seguinte expressão: 
2
SR
D
+
= onde ( )2BAR += e ( )2CBS += . 
13. Faça um algoritmo que leia a idade de uma pessoa expressa em anos, meses e dias e mostre-a 
expressa apenas em dias. 
14. Faça um algoritmo que leia as 3 notas de um aluno e calcule a média final deste aluno. 
Considerar que a média é ponderada e que o peso das notas é: 2, 3 e 5, respectivamente. 
15. Faça um algoritmo que leia o tempo de duração de um evento em uma fábrica expressa em 
segundos e mostre-o expresso em horas, minutos e segundos. 
16. Escrever um algoritmo que lê: a percentagem do IPI a ser acrescido no valor das peças, o 
código da peça 1, valor unitário da peça 1, quantidade de peças 1, o código da peça 2, valor 
unitário da peça 2, quantidade de peças 2. O algoritmo deve calcular o valor total a ser pago 
e apresentar o resultado.Fórmula: valor_total = (valor1*quant1 + valor2*quant2)*(IPI/100 + 
1) 
17. Elabore um programa que leia um valor de temperatura em graus celsius, calcule e exiba a 
temperatura equivalente em graus kelvin, sabendo que: K = C + 273. 
18. Elabore um Algoritmo para converter um valor em minutos num formato com dias, horas e 
minutos. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 44/115 
19. Elabore um Algoritmo que dados dois lados de um triângulo rectângulo calcule a respectiva 
hipotenusa 
20. Elabore um Algoritmo que dados os litros gastos e os km percorridos por um automóvel, 
calcule os gastos de combustível em R$/km e em l/100km (1l custa R$ 1.98). 
21. Suponha que um quadrado cujo lado (L) mede 5 cm esteja inscrito em um círculo e um 
círculo menor esteja inscrito no quadrado como ilustra a figura abaixo. Os círculos e o 
quadrado possuem centro comum. Desenvolver um algoritmo para encontrar a área 
hachurada. AC = raio2 * 3.14, AQ = L2 
 
22. Escrever um algoritmo que converta segundos em minutos e segundos. Por exemplo, 252 
segundos equivalem a 4 minutos e 12 segundos. 
23. Escrever um algoritmo que calcule a taxa de consumo de um automóvel durante um período, 
conhecendo-se os valores de quilômetros percorridos e a quantidade de gasolina consumida. 
24. A aceleração de um corpo em movimento é a mudança da velocidade do corpo em relação a 
um intervalo de tempo. (a = (v2 –v1)/∆t. Escrever um algoritmo que calcule a aceleração de 
um corpo em movimento conhecendo-se as velocidades inicial e final, e o intervalo de tempo 
medido. 
25. Calcular o lucro obtido de um investimento de R$ 42.5000,00, após um período de um ano, 
para uma taxa anual de remuneração de 17.55%. Todos os valores usados para o cálculo 
deverão ser escritos pelo programa. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 45/115 
 
26. O que o algoritmo abaixo faz? Faça o fluxograma correspondente. 
Pseudocódigo Fluxograma 
Algoritmo areas; 
Var {declaração dos tipos de identificadores} 
 lr1, lr2, lt1, lt2, lt3, ht, rc: reais; 
 ar, pr, at, pt, ac, pc: reais; 
ínicio 
 {Entrada de dados} 
escreva (‘Insira valor do 1º lado do retângulo ‘); 
leia (lr1); 
escreva (‘Insira valor do 2º lado do retângulo ‘); 
leia (lr2); 
escreva (‘Insira valor do 1º lado do triângulo ‘); 
leia (lt1); 
escreva (‘Insira valor do 2º lado do triângulo ‘); 
leia (lt2); 
escreva (‘Insira valor do 3º lado do triângulo ‘); 
leia (lt3); 
escreva (‘Insira valor da altura do triângulo ‘); 
leia (ht); 
escreva (‘Insira valor do raio do círculo ‘); 
leia (rc); 
limpar a tela; 
{calculo da área e do perímetro do retângulo} 
ar ← lr1 * lr2; 
pr ← 2 * (lr1 + lr2); 
{calculo da área e do perímetro do triangulo} 
at ← lt2 * ht / 2; 
pt ← lt1 + lt2 + lt3; 
{ calculo da area e do perímetro do círculo} 
ac ← pi * rc * rc; 
pt ← 2 * pi * rc; 
{saída de dados} 
escreva (‘ A área do retângulo é ‘, ar:5:2); 
escreva (‘ O perímetro do retângulo é ‘, pr:5:2); 
escreva (‘ A área do triângulo é ‘, at:5:2); 
escreva (‘ O perímetro do triângulo é ‘, pt:5:2); 
escreva (‘ A área do círculo é ‘, ac:5:2); 
escreva (‘ O perímetro do círculo é ‘, pc:5:2); 
{encerramento do programa} 
escreva; 
escreva (‘Digite qualquer tecla’) 
leia especial; 
fechar a tela do windows; 
fim. 
 
 
 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 46/115 
27. Analise o algoritmo, responde as questões ao lado. 
Pseudocódigo Análise do problema 
Programa lanchonete; 
Var 
 Iqtd1, qtd2, qtd3, qtd4, qtd5: inteiro; 
 Valortotal: real; 
 Nome : literal [20]; 
Início 
{ Entrada de Dados} 
Escreva (‘ Digite nome do cliente:’); 
Leia (Nome); 
Escreva (‘ Digite quantidade de Hot Dogs: ‘); 
Leia (qtd1); 
Escreva (‘Digite quantidade de Hamburguers: ‘); 
Leia (qtd2); 
Escreva (‘Digite quantidade de Cheeseburguer:”); 
Leia (qtd3); 
Escreva (‘Digite a quantidade de Refrigerante em Latas: ‘); 
Leia (qtd4); 
Escreva (‘Digite a quantidade de Batata Fritas: ‘); 
Leia (qtd5); 
{Cálculos} 
valortotal← qtd1*1.2+qtd2*1,6+qtd3*2+qtd4*1.2+qtd5*2.5; 
{ saída de dados} 
Escreva (Nome,” gastou ...........R$ ‘,valortotal); 
Fim. 
 
 
1) o que tenho? 
 
 
 
 
2) o que quero? 
 
 
 
3) Como obtenho o que quero? 
 
28. Crie algoritmos para solucionar os problemas abaixo nas três formas de representação 
conhecidas (Descrição Narrativa, Fluxograma e Pseudocódigo): 
 
a) Imprimir o seu nome. 
b) Ler e imprimir o seu nome. 
c) Ler seu nome e idade e imprimi-los. 
d) Imprimir o produto de 12 e 43. 
e) Imprimir a média aritmética entre 8, 9 e 7. 
f) Ler três valores numéricos do tipo inteiro e imprimir a média aritmética entre eles. 
g) Ler um número inteiro e imprimir seu sucessor e seu antecessor. 
h) Ler o lado de um quadrado e calcular a área deste quadrado e mostrar o resultado. 
 
29. Diga qual é o valor armazenado em cada variável (TESTE DE MESA) após a execução de 
cada um dos comandos do algoritmo abaixo. 
 
 
Algoritmo ALGXX; 
Var 
 N, A, R, B, C : Inteiro; 
 V, X : real: 
Início 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 47/115 
 A � 10; 
 R � 3; 
 V � 14.0; 
 B � 150; 
 C � V MOD 2; 
 X � B * R; 
 X � R / A; 
 X � X – 2 * A; 
 B � B + 3; 
 N � 30 + X; 
 B � B DIV N; 
 V � N – V + X * R; 
Fim. 
 
30. O algoritmo abaixo realiza o cálculo do determinante. Identifique Entrada, Saída e 
Processamento. 
Pseudocódigo Análise do problema 
Algoritmo CalcDet; 
Var 
 a, b, c, D: Inteiro; 
Início 
 Leia (a, b,c); 
 D � b*b – 4*a*c; 
 Escreva (D); 
Fim. 
 
Entrada (O que tenho?): 
 
 
 
Saída (O que quero?): 
 
 
 
Processamento (Como?): 
 
 
 
 
 
 
 
31) Dado o algoritmo abaixo (em pseudocódigo) que separa dia, mês e ano de uma data digitada 
no formato ddmmaa e mostra estes valores. 
Pseudocódigo Fluxograma 
Programa A1; 
Var 
 data, dia, mes, ano: Inteiro; 
Inicio 
 Escreva(‘Digite uma data no formato ddmmaa:’); 
 Leia (data); 
 dia � data div 1000; 
 mes � data mod 100000 div 100; 
 ano � data mod 100; 
 escreva (‘dias: ‘, dia, 
 escreva (‘mes: ‘, mes); 
 escreva (‘ano: ‘, ano); 
Fim. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 48/115 
32) Dado o Fluxograma abaixo, indique o pseudocódigo correto 
Pseudocódigo Fluxograma 
( ) Algoritmo A2_v1; 
Var a, b: Real; 
Inicio 
 Escreva (“Digite um número :”); Leia (a); 
 a � a mod 100 div 10; Escreva (b); 
Fim. 
 
( ) Algoritmo A2_v2; 
Var a, b: Inteiro; 
Inicio 
 Escreva (“Digite um número :”); Leia (a); 
 b � a mod 100 div 10; 
Fim. 
 
( ) Algoritmo A2_v3; 
Var A, B: Inteiro; 
Inicio 
 Escreva (“Digite um número :”); Leia (A); 
 B � A mod 100 div 10; Escreva (B); 
Fim. 
 
 
33) Dado o fluxograma do exercício 2, qual seria o valor de saída se fosse digitado o valor 3200? 
 
a) 2,2 b) 3,2 c) 32 d) 2,0 e) 22 
 
 34) Dado o fluxograma abaixo, faça apenas a declaração das variáveis em pseudocódigo. 
 
Pseudocódigo (declaração variáveis) Fluxograma 
 
 
 
 
 
 
 
 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 49/115 
 
35) Dado o enunciado abaixo, faça a análise do problema proposto. 
 
Problema (enunciado) Análise do problema 
 
Calcular a taxa de consumo de um automóvel 
durante um período, conhecendo-se os valores 
de quilômetros percorridos e a quantidade de 
gasolina consumida. 
 
 
O que tenho (entrada)? 
 
 
 
O que quero (Saída)? 
 
 
 
 
Como (processamento)? 
 
 
 
 
 
 
 
 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 50/115 
2.3.2. Estrutura Condicional 
Também conhecida como estrutura de tomada de decisão ou seleção, esta estrutura 
permite a escolha do grupo de ações a ser executadas quando determinada condição 
(expressãológica)é ou não satisfeita. 
2.3.2.1. Sintaxe 
Como pode ser observado nas sintaxes mostradas a seguir, tem-se a estrutura condicional 
simples, composta e aninhada. 
 
Estrutura condicional simples 
Pseudocódigo Fluxograma 
 
 
Se (Condição) Então 
 Comando_1; 
 Comando_2; 
 . . . 
 Comando_n; 
 Fim_se; 
 
Em Pascal 
If (Condição) Then 
 begin 
 Comando_1; 
 Comando_2; 
 . . . 
 Comando_n; 
 end; 
Se fosse um comando só: 
 
If (Condição) Then 
 begin 
 Comando_1; 
 end; 
 
 ---- Ou ------ 
 
If (Condição) Then 
 Comando_1; 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 51/115 
 
Estrutura condicional composta 
Pseudocódigo Fluxograma 
 
Se (Condição) Então 
 Comando_A1; 
 Comando_A2; 
 . . . 
 Comando_An 
Senão 
 Comando_B1; 
 Comando_B2; 
 . . . 
 Comando_Bn; 
 Fim_se; 
 
Em Pascal 
 
If (Condição) Then 
 Begin 
 Comando_A1; 
 Comando_A2; 
 . . . 
 Comando_An; 
 End 
Else 
 Begin 
 Comando_B1; 
 Comando_B2; 
 . . . 
 Comando_Bn; 
 End; 
 
Se fosse um comando só: 
 
If (Condição) Then 
 Begin 
 Comando_A1; 
 End 
Else 
 Begin 
 Comando_B1; 
 End; 
 
 ---- Ou ------ 
 
If (Condição) Then 
 Comando_A1 
Else 
 Comando_B1; 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 52/115 
 
Estrutura condicional aninhada (ou encadeada) 
Pseudocódigo Fluxograma 
 
Se (Condição_1) Então 
Comando_A1; 
Comando_A2; 
 . . . 
Comando_An 
 Senão 
Se (Condição_2) Então 
 Comando_B1; 
 Comando_B2; 
 . . . 
 Comando_Bn; 
Senão 
 Comando_C1; 
 Comando_C2; 
 . . . 
 Comando_Cn; 
 Fim_se; 
 Fim_se; 
 
Em Pascal 
If (Condição_1) Then 
 Begin 
Comando_A1; 
Comando_A2; 
 . . . 
Comando_An; 
 End 
 Else 
 If (Condição_2) Then 
 Begin 
 Comando_B1; 
 Comando_B2; 
 . . . 
 Comando_Bn; 
 End 
 Else 
 Begin 
 Comando_C1; 
 Comando_C2; 
 . . . 
 Comando_Cn; 
 End; 
Se fosse um único comando, ficaria: 
 
If (Condição_1) Then 
 Begin 
Comando_A1; 
 End 
 Else 
 If (Condição_2) Then 
 Begin 
 Comando_B1; 
 End 
 Else 
 Begin 
 Comando_C1; 
 End; 
 
 ---- Ou ------ 
 
If (Condição_1) Then 
 Comando_A1; 
Else 
 If (Condição_2) Then 
 Comando_B1; 
 Else 
 Comando_C1; 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 53/115 
 
Há também uma variação do condicional SE, que é utilizada quando uma situação de 
igualdade é testada para uma mesma variável. 
 
Caso/escolha 
Pseudocódigo Fluxograma 
Escolha (Variável) 
 Caso (valor_1) : Comando_1; 
 Caso (valor_2) : Comando_2; 
 Caso (valor_3) : Comando_3; 
Fim_escolha; 
 
Ou desta outra forma: 
 
Caso <Variável> 
 <valor_1> : <Comando_1>; 
 <valor_2> : <Comando_2>; 
 <valor_3> : <Comando_3>; 
Fim_caso; 
 
Em Pascal 
 
Case <Variável> of 
 <valor_1> : <Comando_1>; 
 <valor_2> : <Comando_2>; 
 <valor_3> : <Comando_3>; 
End; 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 54/115 
 
Caso/escolha 
Pseudocódigo Fluxograma 
Escolha (Variável) 
 Caso (valor_1) : Comando1; 
 Caso (valor_2) : Comando2; 
Senão 
 Comando3; 
Fim_escolha; 
 
 Ou desta outra forma: 
 
Caso <Variável> 
 <valor_1> : <Comando1>; 
 <valor_2> : <Comando2>; 
Senão 
 <Comando3>; 
Fim_caso; 
 
Em Pascal 
 
Case <Variável> of 
 <valor_1> : <Comando_1>; 
 <valor_2> : <Comando_2>; 
Else 
 <valor_3> : <Comando_3>; 
End; 
 
 
2.3.2.2. Exemplos 
A seguir são apresentados alguns exemplos, onde foram utilizadas as estruturas: 
condicional simples, condicional composto, condicional encadeado e estrutura Escolha. No 
primeiro (ALG24) tem-se o algoritmo do cálculo da média aritmética (M), onde são 
consideradas apenas duas notas (P1 e P2) e é mostrada a média e uma mensagem de aprovação 
caso M >= 5. Neste caso foi utilizada uma estrutura condicional simples. 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 55/115 
 
 ALG24 – Cálculo da média aritmética de duas notas, mostrando média e mensagem “Aprovado”, caso a 
média seja >= 5. 
Análise do problema Descrição narrativa 
1 – O que tenho? Notas (P1 e P2) 
2 – O que quero? 
 Média (M) e situação “Aprovado” 
3 – Como ? 
 Fornece o valor das notas (P1 e P2) 
 Calcula a média (M � (P1 + P2)/2; 
 Mostra resultado (M); 
 Verifica se aluno foi aprovado (M >= 5) 
 Mostra somente mensagem “Aprovado”. 
 1 - Fornece valor das notas (P1 e P2); 
 2 - Calcula a média aritmética (M) 
 3 - Verifica se M >= 5 
 4 - Se sim, mostra média (M) e mensagem 
“Aprovado”. 
 
Pseudocódigo Fluxograma 
Algoritmo CalcMedia1; 
Var P1, P2, M: real; 
Início 
 Leia (P1, P2); 
 M �(P1 + P2)/2; 
 Escreva (M); 
 Se M >= 5 Então 
 Escreva (‘Aprovado’); 
 Fim_se; 
Fim 
 
Codificação em PASCAL Aparece no monitor (programa executado) 
Program CalcMedia1; 
Uses WinCrt; 
Var 
 P1, P2, M: real; 
Begin 
 Writeln (‘Digite P1:’); 
 Readln (P1); 
 Writeln (‘Digite P2:’); 
 Readln (P2); 
 M := (P1 + P2)/2; 
 Writeln (M): 
 If M >= 5 then 
 writeln (‘Aprovado’); 
End. 
Nada 
Nada 
Nada 
Nada 
Nada 
Digite P1: 
<Digitar valor de P1 pelo teclado> 
Digite P2: 
<Digitar valor de P2 pelo teclado> 
Nada 
<valor armazenado em M> 
Nada 
Aprovado 
Nada 
 
No segundo exemplo (ALG25), é utilizada uma estrutura condicional composta ao 
realizar um refinamento no algoritmo acima acrescentando também a mensagem de reprovado. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 56/115 
 
ALG25 – Cálculo da média aritmética de duas notas, mostrando a média e mensagem “Aprovado” ou 
“Reprovado” (M >= 5; aprovação) . 
Análise do problema Descrição narrativa 
1 – O que tenho? 
 Notas (P1 e P2) 
2 – O que quero? 
 Média (M) e “Aprovado” ou “Reprovado” 
3 – Como ? 
 Fornece o valor das notas (P1 e P2) 
 Calcula a média (M � (P1 + P2)/2; 
 Mostra o resultado (M); 
 Verifica se aluno foi aprovado (M >= 5); 
 Mostra mensagem “Aprovado”ou “Reprovado” 
 1 - Fornecer valor das notas (P1 e P2); 
 2 - Calcular a média aritmética (M) 
 3 - Mostra o resultado (M) 
 4 - Verificar se M >= 5 
 5 - Se sim, mostra mensagem “Aprovado”. 
 6 - Senão mostra mensagem “Reprovado”. 
 
 
 
Algoritmo CalcMedia1; 
Var 
 P1, P2, M: real; 
Início 
 Leia (P1, P2); 
 M �(P1 + P2)/2; 
 Escreva (M); 
 Se M >= 5 Então 
 Escreva (‘Aprovado’) 
 Senão 
 Escreva (‘Reprovado’); 
 Fim_se; 
Fim 
 
 
Codificação em PASCAL Aparece no monitor (programa executado) 
Program CalçMedia1; 
Uses WinCrt; 
Var 
 P1, P2, M: real; 
Begin 
 Writeln (‘Digite P1:’); 
 Readln (P1); 
 Writeln (‘Digite P2:’); 
 Readln (P2); 
 M := (P1 + P2)/2; 
 Writeln (M): 
 If M >= 5 then 
 writeln (‘Aprovado’) 
 Else 
 writeln (‘Reprovado’); 
End. 
Nada 
Nada 
Nada 
Nada 
Nada 
Digite P1: 
<Digitar valor de P1 pelo teclado> 
Digite P2: 
<Digitar valor de P2 pelo teclado> 
Nada 
<valor armazenado em M> 
Nada 
Aprovado 
Nada 
Reprovado 
Nada 
 
Em seguida, é considerado também que o aluno pode ter ficado para exame (ALG26). 
Neste último caso foi utilizada a estrutura condicional encadeada. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 57/115 
 
ALG26 – Cálculo da médiaaritmética de duas notas, mostrando a média e mensagem 
“Aprovado”, “Reprovado” ou “Exame” (M >= 5 Aprovação; M >=3 Exame) . 
Pseudocódigo Fluxograma 
 
Algoritmo CalcMedia3; 
Var 
 P1, P2, M: real; 
Início 
 Leia (P1, P2); 
 M �(P1 + P2)/2; 
 Escreva (M); 
 Se M >= 5 Então 
 Escreva (‘ Aprovado’) 
 Senão 
 Se M >= 3 Então 
 Escreva (‘Exame’) 
 Senão 
 Escreva (‘Reprovado’); 
 Fim_se; 
 Fim_se; 
Fim 
 
 
 
Codificação em PASCAL Aparece no monitor quando o programa é executado 
Program CalcMedia3; 
Uses WinCrt; 
Var 
 P1, P2, M: real; 
Begin 
 Writeln (‘Digite P1:’); 
 Readln (P1); 
 Writeln (‘Digite P2:’); 
 Readln (P2); 
 M := (P1 + P2)/2; 
 Writeln (M); 
 If M >= 5 then 
 Writeln ( ‘Aprovado’) 
 Else 
 If M >= 3 then 
 Writeln (‘Exame’) 
 Else 
 Writeln (‘Reprovado’); 
End. 
Nada 
Nada 
Nada 
Nada 
Nada 
Digite P1: 
<Digitar valor de P1 pelo teclado> 
Digite P2: 
<Digitar valor de P2 pelo teclado> 
Nada 
<valor armazenado em M> 
Nada 
Aprovado 
Nada 
Nada 
Exame 
Nada 
Reprovado 
Nada 
 
Dois outros exemplos de utilização de estrutura condicional simples (ALG27) e 
encadeada (ALG28) podem ser vistos em seguida. Eles apresentam um algoritmo que lê um 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 58/115 
número inteiro entre 1 e 7 e mostra no monitor do computador o dia da semana correspondente. 
Caso o usuário digite um número fora desse intervalo, o algoritmo mostra uma mensagem 
informando “Número inválido”. 
 
ALG27 – Algoritmo elaborado com estrutura condicional simples e composta que lê um número 
e imprime o dia da semana correspondente. 
Pseudocódigo Fluxograma 
programa DiaSemana_se; 
Var 
 mes:inteiro; 
inicio 
Escreva ('Digite um numero de 1 
a 7:'); 
Leia (Dia); 
Se Dia = 1 então 
 escreva ('Domingo'); 
Fim_se; 
Se Dia = 2 então 
 Escreva ('Segunda'); 
Fim_se; 
Se Dia = 3 então 
 Escreva ('Terça'); 
Fim_Se; 
Se Dia = 4 então 
 Escreva ('Quarta'); 
Fim_se; 
Se Dia = 5 então 
 Escreva ('Quinta'); 
Fim_se; 
Se Dia = 6 então 
 Escreva ('Sexta'); 
Fim_Se; 
Se Dia = 7 então 
 Escreva ('Sábado'); 
Senão 
 Escreva ('Número inválido'); 
Fim_se; 
Fim. 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 59/115 
 
ALG28 – Algoritmo elaborado com estrutura condicional encadeada que lê um número e 
imprime o dia da semana correspondente. 
Pseudocódigo 
programa DiaSemana_se; 
Var 
 mes:inteiro; 
inicio 
Escreva ('Digite um numero de 1 a 7:'); 
Leia (Dia); 
se Dia = 1 então 
 escreva ('Domingo') 
senão 
 se Dia = 2 então 
 Escreva ('Segunda') 
 senão 
 se Dia = 3 então 
 Escreva ('Terça') 
 senão 
 se Dia = 4 então 
 Escreva ('Quarta') 
 senão 
 se Dia = 5 então 
 Escreva ('Quinta') 
 senão 
 se Dia = 6 então 
 Escreva ('Sexta') 
 senão 
 se Dia = 7 então 
 Escreva ('Sábado') 
 senão 
 Escreva ('Numero inválido'); 
 fim_se; 
 fim_se; 
 fim_se; 
 fim_se; 
 fim_se; 
 fim_se; 
fim_se; 
fim. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 60/115 
 
ALG28 – Algoritmo elaborado com estrutura condicional encadeada que lê um número e 
imprime o dia da semana correspondente. 
Fluxograma 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 61/115 
O exemplo a seguir mostra o algorimo acima elaborado utilizando a estrutura 
Escolha/caso (ALG29) ao invés da estrutura condicional encadeada. 
 
ALG29 – Algoritmo elaborado com estrutura ESCOLHA/CASO que lê um número e imprime o 
dia da semana correspondente 
Pseudocódigo Fluxograma 
programa DiaSemana_se; 
Var Dia : inteiro; 
inicio 
 Escreva ('Digite um numero de 1 a 7:'); 
 Leia (Dia); 
 Escolha (Dia) 
 Caso (1) : Escreva ('Domingo'); 
 Caso (2) : Escreva ('Segunda') 
 Caso (3) : Escreva ('Terça') 
 Caso (4) : Escreva ('Quarta') 
 Caso (5) : Escreva ('Quinta') 
 Caso (6) : Escreva ('Sexta') 
 Caso (7) : Escreva ('Sábado' 
 Senão 
 Escreva ('Número inválido'); 
 Fim_escolha; 
fim. 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 62/115 
O exemplo seguinte apresenta apenas um trecho de algoritmo (elaborado com a estrutura 
ESCOLHA/CASO), que mostra no monitor a mensagem “Um”, “Dois” ou “Três” caso o valor 
digitado na variável A seja 1, 2 ou 3 respectivamente (ALG30). 
 
ALG30 – Trecho de algoritmo elaborado com estrutura ESCOLHA/CASO que imprime a 
mensagem “Um”, “Dois” e “Três”caso seja digitado 1, 2 ou 3 respectivamente. 
Pseudocódigo Fluxograma 
Escolha (A) 
 Caso (1): Escreva (‘Um’); 
 Caso (2): Escreva (‘Dois’); 
 Caso (3): Escreva (‘Três’); 
Fim_escolha; 
 
Escolha (A) 
 Caso (1): Escreva (‘Um’); 
 Caso (2): Escreva (‘Dois’); 
Senão 
 Escreva (‘Três’); 
Fim_escolha; 
 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 63/115 
2.3.2.3. Exercícios propostos 
1.Indique a saída dos trechos de algoritmo (fluxograma) a seguir. Considere os seguintes valores: 
A = 2, B = 3, C = 5, D = 9. Preste atenção na prioridade dos operadores. 
 
 
 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 64/115 
2. Faça um algoritmo que leia dois números e apresente-os em ordem crescente. Use estrutura 
de desvio condicional simples. 
3. Elabore um algoritmo que leia um número e diga se ele é divisível por 2 e por 3. Use 
estrutura de desvio condicional simples. 
4. Faça um algoritmo que leia um nº inteiro e mostre uma mensagem indicando se este número 
é par ou ímpar e se é positivo ou negativo. 
5. Elabore um algoritmo que leia um número e diga se ele é divisível por 5 ou por 7. 
6. Elaborar um algoritmo que lê 3 valores (A, B e C), encontra o valor maior e o escreve 
juntamente com a mensagem: "É o maior ". 
7. Elaborar um algoritmo que lê 2 valores A e B, verifica e escreve uma mensagem informando 
se “são múltiplos ou não são múltiplos”. 
8. Escreva um algoritmo que leia 3 números inteiros e mostre o menor deles. 
9. Calcule a média aritmética das 3 notas de um aluno e mostre, além do valor da média, uma 
mensagem de "Aprovado", caso a média seja igual ou superior a 6, ou a mensagem 
"Reprovado", caso contrário. 
10. Elabore um algoritmo que dada a idade de um nadador, classifica-o em uma das seguintes 
categorias: 
CATEGORIA FAIXA ETÁRIA 
infantil A 5 - 7 anos 
infantil B 8 - 10 anos 
juvenil A 11-13 anos 
juvenil B 14-17 anos 
Adulto maiores de 18 anos 
11. Escreva um algoritmo que leia o código de um aluno e suas três notas. Calcule a média 
ponderada do aluno, considerando que o peso para a maior nota seja 4 e para as duas 
restantes, 3. Mostre o código do aluno, suas três notas, a média calculada e uma mensagem 
"APROVADO" se a média for maior ou igual a 5 e "REPROVADO" se a média for menor 
que 5. 
12. Um banco concederá um crédito especial aos seus clientes, variável com o saldo médio no 
último ano. Faça um algoritmo que leia o saldo médio de um cliente e calcule o valor do 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 65/115 
crédito de acordo com a tabela abaixo. Mostre uma mensagem informando o saldo médio e o 
valor do crédito. 
SALDO MÉDIO PERCENTUAL 
de 0 a 200 nenhum crédito 
de 201 a 400 20% do valor do saldo médio 
de 401 a 600 30% do valor do saldo médio 
acima de 601 40% do valor do saldo médio13. Escrever um algoritmo para automatizar o caixa da Lanchonete Bom Apetite. Este algoritmo 
deve ler o código do item pedido, a quantidade e calcular o valor a ser pago por aquele 
lanche. O cardápio da lanchonete é o seguinte: 
CÓDIGO ESPECIFICAÇÃO 
PREÇO UNITÁRIO 
(R$) 
100 Cachorro quente 1,10 
101 Bauru simples 1.30 
102 Bauru c/ovo 1,50 
103 Hamburger 1.10 
104 Cheeseburger 1.30 
105 Refrigerante 1.00 
14. Escreva um algoritmo que leia o código de um aluno e suas três notas. Calcule a média 
ponderada do aluno, considerando que o peso para a maior nota seja 4 e para as duas 
restantes, 3. Mostre o código do aluno, suas três notas, a média calculada e uma mensagem 
"APROVADO" se a média for maior ou igual a 5 e "REPROVADO" se a média for menor 
que 5. 
15. Um usuário deseja um algoritmo onde possa escolher que tipo de média deseja calcular a 
partir de 3 notas. Faça um algoritmo que leia as notas, a opção de média escolhida pelo 
usuário, calcule e mostre a média. 
OPÇÃO TIPO DE M ÉDIA 
1 aritmética 
2 ponderada (3,3,4 
3 harmônica 
16. João Papo-de-Pescador, homem de bem, comprou um microcomputador para controlar o 
rendimento diário de seu trabalho. Toda vez que ele traz um peso de peixes maior que o 
estabelecido pelo regulamento de pesca do estado de São Paulo (50 quilos) deve pagar um 
multa de R$ 4,00 por quilo excedente. João precisa que você faça um diagrama de blocos 
que leia a variável P (peso de peixes) e verifique se há excesso. Se houver, gravar na variável 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 66/115 
E (Excesso) e na variável M o valor da multa que João deverá pagar. Caso contrário mostrar 
tais variáveis com o conteúdo ZERO. 
17. Elabore um diagrama de bloco que leia as variáveis C e N, respectivamente código e número 
de horas trabalhadas de um operário. E calcule o salário sabendo-se que ele ganha R$ 10,00 
por hora. Quando o número de horas exceder a 50 calcule o excesso de pagamento 
armazenando-o na variável E, caso contrário zerar tal variável. A hora excedente de trabalho 
vale R$ 20,00. No final do processamento imprimir o salário total e o salário excedente. 
18. Desenvolva um diagrama que: leia 4 (quatro) números; calcule o quadrado de cada um; se o 
valor resultante do quadrado do terceiro for >= 1000, imprima-o e finalize; caso contrário, 
imprima os valores lidos e seus respectivos quadrados. 
19. A Secretaria de Meio Ambiente que controla o índice de poluição mantém 3 grupos de 
indústrias que são altamente poluentes do meio ambiente. O índice de poluição aceitável 
varia de 0,05 até 0,25. Se o índice sobe para 0,3 as indústrias do 1º grupo são intimadas a 
suspenderem suas atividades, se o índice crescer para 0,4 as industrias do 1º e 2º grupo são 
intimadas a suspenderem suas atividades, se o índice atingir 0,5 todos os grupos devem ser 
notificados a paralisarem suas atividades. Faça um diagrama de bloco que leia o índice de 
poluição medido e emita a notificação adequada aos diferentes grupos de empresas. 
20. Construa um algoritmo que leia 3 valores inteiros e positivos, encontre o maior valor, 
encontre o menor valor, calcule a média dos números lidos e mostre os resultados. 
21. Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um algoritmo que 
calcule seu peso ideal, utilizando as seguintes fórmulas: Para homens: (72.7*h) – 58; Para 
mulheres: (62.1*h) - 44.7 (h = altura). 
22. Escreva um algoritmo que determine o grau de obesidade de uma pessoa, sendo fornecido o 
peso e a altura da pessoa. O grau de obesidade é determinado pelo índice da massa corpórea 
(Massa = Peso / Altura2 ) através da tabela abaixo: 
MASSA CORPÓREA GRAU DE OBESIDADE 
< 26 Normal 
≥ 26 e < 30 Obeso 
≥ 30 Obeso Mórbido 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 67/115 
23. Faça um algoritmo que, dado as três notas de um aluno, determine e exiba a sua média final e 
o seu conceito, sabendo-se que: a média final é calculada pela média aritmética das 3 notas; o 
conceito é determinado de com base na tabela abaixo: 
MÉDIA 
FINAL 
CONCEITO 
≥ 8,0 A 
≥ 5,0 e < 8,0 B 
< 5,0 C 
24. O Botafogo Futebol Clube deseja aumentar o salário de seus jogadores. O reajuste deve 
obedecer a seguinte tabela: 
SALÁRIO ATUAL (R$) AUMENTO 
0,00 a 1.000,00 20% 
1.000,01 a 5.000,00 10% 
acima de 5.000,00 0% 
Escrever um algoritmo que leia o nome e o salário atual de um jogador, e exiba o 
nome, o salário atual e o salário reajustado. 
25. Faça um algoritmo para calcular a conta final de um hóspede de um hotel fictício, contendo: 
o nome do hóspede, o tipo do apartamento, o número de diárias utilizadas, o valor unitário da 
diária, o valor total das diárias, o valor do consumo interno, o subtotal, o valor da taxa de 
serviço e o total geral. Considere que: 
 
a) Devem ser lidos o nome do hóspede, o tipo do apartamento utilizado (A, B, C ou D), o 
número de diárias utilizadas pelo hóspede e o valor do consumo interno do hóspede; 
b) O valor da diária é determinado pela seguinte tabela: 
TIPO DO 
APTO. 
VALOR DA DIÁRIA (R$) 
A 150,00 
B 100,00 
C 75,00 
D 50,00 
c) O valor total das diárias é calculado pela multiplicação do número de diárias utilizadas pelo 
valor da diária; 
d) O subtotal é calculado pela soma do valor total das diárias e o valor do consumo interno; 
e) O valor da taxa de serviço equivale a 10% do subtotal; 
f) A total geral resulta da soma do subtotal com a taxa de serviço. 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 68/115 
2.3.3. Estrutura Repetição 
Também conhecida como LOOPING, esta estrutura permite repetir um grupo de ações 
até que uma dada condição seja satisfeita. 
2.3.3.1. Sintaxe 
Como pode ser observado nas sintaxes mostradas a seguir, tem-se a estrutura de repetição 
com teste no início (ENQUANTO), com teste no final (REPITA) e laços contados (PARA). 
 
Com teste no início 
Na estrutura de repetição ENQUANTO uma seqüência de comandos é executada quando 
o teste lógico resulta em verdadeiro e quando o teste lógico resulta em falso a seqüência de 
comandos é encerrada. 
Essa estrutura é usada quando não se sabe o número de vezes que deseja repetir um 
determinado trecho de um programa. Embora ela também possa ser usada quando este número é 
conhecido. Veja a sintaxe: 
 
Pseudocódigo Fluxograma Em Pascal 
 
Enquanto <condição> faça 
 Comando_1; 
 Comando_2; 
 Comando_n; 
Fim_enquanto; 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
While <condição> do 
 Begin 
 Comando_1; 
 Comando_2; 
 Comando_n; 
 End; 
 
 
 
 
 
Com variável de controle 
A estrutura de repetição PARA (com variável de controle) é usada quando o número de vezes 
que deseja repetir um trecho do programa for conhecido ou quando puder entrar com ele durante sua 
execução. Veja a sintaxe 
 
<Condição> 
 
Comando 1 
Comando 2 
Comando n 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 69/115 
Pseudocódigo Fluxograma 
 
para <variável> de <inicio> até <fim> com 
incremento de <passo> faça 
 Comando_1; 
 Comando_2; 
 Comando_n; 
Fim_para; 
 
 
 
 
 
 
Em Pascal 
 
FOR <variável> := <inicio> TO <fim> DO 
 Begin 
 Comando_1; 
 Comando_2; 
 Comando_n; 
 End; 
 
 
Com teste no fim (Repita Até que) 
Na estrutura de repetição com teste no Fim a repetição do trecho do programa será 
executado para a condição falsa, caso a condição passe a ser verdadeira, o repetição é finalizada. 
Nesta estrutura, o trecho do programa é executado pelo menos uma vez. 
<variável>� <inicial> ; 
<fim>; <passo> 
Comando_1 
Comando 2 
Comando n 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 70/115 
 
Pseudocódigo Fluxograma 
 
repita 
 Comando_1; 
 Comando_2;Comando_n; 
Até que <condição>; 
 
 
 
 
 
 
 
 
 
 
 
 
Em Pascal 
REPEAT 
 Comando_1; 
 Comando_2; 
 Comando_n; 
UNTIL <condição>; 
 
2.3.3.2. Exemplos 
Veja alguns exemplos de algoritmos elaborados com e sem a estrutura de repetição. O 
primeiro exemplo (ALG31) mostra um algoritmo elaborado para ler nome e telefone. 
O segundo exemplo (ALG32) refere-se a um algoritmo que calcula a média global de 10 
alunos de uma determinada sala de aula. Veja como é a resolução com e sem a utilização da 
estrutura de repetição. 
O terceiro exemplo (ALG33) traz o algoritmo que imprime os números de 1 a 9 com 
incremento de 1. Neste exemplo foram empregadas as três estruturas de repetição para 
comparação das similaridades e diferenças. 
Os dois primeiros exemplos (ALG31 e ALG32) demonstram a importância da estrutura 
de repetição e o terceiro (ALG33) mostra as diferenças e semelhanças entre as estruturas de 
<Condição> 
Comando_1 
Comando_2 
Comando_n 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 71/115 
repetição. Preste muita atenção nas diferenças. Por exemplo, na estrutura PARA não necessário 
inicializar o contador (variável N) fora do laço de repetição nem incrementar N dentro deste laço 
como ocorre com as estruturas ENQUANTO e REPITA. Na estrutura de repetição REPITA a 
condição é o inverso do ENQUANTO. O REPITA só continua se a condição for falsa e o 
ENQUANTO só continua se a condição for verdadeira. Além disso, no REPITA o bloco de 
comandos dentro do laço de repetição é executado pelo menos uma vez antes de testar a 
condição. 
No segundo exemplo é utilizada uma variável para compor uma condição de parada para 
o looping, isto é, para as repetições. Ela é conhecida por FLAG. 
A
lg
or
it
m
os
 p
ar
a 
E
st
ru
tu
ra
s 
S
im
pl
es
 
 
Ú
lt
im
a 
at
ua
li
za
çã
o:
 2
2/
4/
20
08
; 
11
:5
1:
05
 
72
/1
15
 
 
A
L
G
31
 –
 
A
lg
or
it
m
o 
qu
e 
en
tr
a 
no
m
e 
e 
te
le
fo
ne
 c
om
 e
 s
em
 a
 u
ti
li
za
çã
o 
de
 e
st
ru
tu
ra
 d
e 
re
pe
ti
çã
o 
E
st
ru
tu
ra
 R
ep
et
iç
ão
 
P
se
ud
oc
ód
ig
o 
Fl
ux
og
ra
m
a 
P
A
S
C
A
L
 
SE
M
 
A
lg
or
it
m
o 
en
de
re
co
; 
V
ar
 
 N
om
e,
 te
le
fo
ne
 : 
L
it
er
al
; 
In
ic
io
 
 
 
 
L
ei
a(
no
m
e)
; 
 
 
 
L
ei
a(
te
le
fo
ne
);
 
Fi
m
_a
lg
or
it
m
o.
 
 
P
ro
gr
am
 e
nd
er
ec
o;
 
U
se
s 
W
in
C
rt
; 
V
ar
 
 
N
om
e,
 te
le
fo
ne
: S
tr
in
g[
20
];
 
In
ic
io
 
 
 W
ri
te
ln
 (
‘D
ig
it
e 
N
om
e:
’)
; 
 
 R
ea
dl
n 
 (
no
m
e)
; 
 
 W
ri
te
ln
 (
‘D
ig
it
e 
T
el
ef
on
e:
’)
; 
 
 
 
 
 R
ea
dl
n 
(t
el
ef
on
e)
; 
E
nd
. 
 
C
O
M
 
 
A
lg
or
it
m
o 
en
de
re
co
; 
V
ar
 
 
 N
om
e,
 te
le
fo
ne
, r
es
p 
: L
it
er
al
; 
In
ic
io
 
 
R
es
p 
�
’S
IM
’;
 
 
E
n
q
u
an
to
 (
re
sp
=
’S
IM
’)
 f
aç
a 
 
 
 L
ei
a(
no
m
e)
; 
 
 
 L
ei
a(
te
le
fo
ne
);
 
 
 
 E
sc
re
va
(‘
D
es
ej
a 
co
nt
in
ua
r?
 
(S
IM
/N
Ã
O
)’
);
 
 
 
 L
ei
a(
re
sp
);
 
 
F
im
_e
n
qu
an
to
; 
 
Fi
m
_a
lg
or
it
m
o.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
P
ro
gr
am
 e
nd
er
ec
o;
 
U
se
s 
W
in
C
rt
; 
V
ar
 
 
N
om
e,
 te
le
fo
ne
: S
tr
in
g[
20
];
 
re
sp
 : 
 S
tr
in
g[
3]
; 
In
ic
io
 
 
R
es
p 
:=
’S
IM
’;
 
 
W
h
il
e 
(r
es
p=
’S
IM
’)
 d
o 
be
gi
n
 
 
 
 W
ri
te
ln
 (
‘D
ig
it
e 
N
om
e:
’)
; 
 
 
 
R
ea
dl
n 
 (
no
m
e)
; 
 
 
 
W
ri
te
ln
 (
‘D
ig
it
e 
T
el
ef
on
e:
’)
; 
 
 
 
 
 
 
R
ea
dl
n 
(t
el
ef
on
e)
; 
 
 
 W
ri
te
ln
 (
‘D
es
ej
a 
co
nt
in
ua
r?
 (
S
IM
/N
Ã
O
)’
);
 
 
 
 R
ea
d 
(r
es
p)
; 
 
E
n
d
; 
 
E
nd
. 
 
in
ic
io
 
no
m
e 
te
le
fo
ne
 
fi
m
 in
ic
io
 
fi
m
 
re
sp
�
’S
IM
’ 
(r
es
p=
’S
IM
’ 
no
m
e 
te
le
fo
ne
 
re
sp
 
‘D
es
ej
a 
co
nt
in
ua
r?
 (
S
IM
/N
Ã
O
)’
 
A
lg
or
it
m
os
 p
ar
a 
E
st
ru
tu
ra
s 
S
im
pl
es
 
 
Ú
lt
im
a 
at
ua
li
za
çã
o:
 2
2/
4/
20
08
; 
11
:5
1:
05
 
73
/1
15
 
A
L
G
32
 –
 
A
lg
or
it
m
o 
qu
e 
ca
lc
ul
a 
a 
m
éd
ia
 d
e 
10
 n
ot
as
 c
om
 e
 s
em
 a
 u
ti
liz
aç
ão
 d
e 
es
tr
ut
ur
a 
de
 r
ep
et
iç
ão
 
E
st
ru
tu
ra
 R
ep
et
iç
ão
 
P
se
ud
oc
ód
ig
o 
Fl
ux
og
ra
m
a 
P
A
S
C
A
L
 
S
E
M
 
A
lg
or
it
m
o 
M
ed
ia
; 
V
ar
 
 
N
1,
N
2,
N
3,
N
4,
N
5,
N
6,
N
7,
N
8,
N
9,
N
10
, 
S
: 
re
al
; 
in
íc
io
 
 
 l
ei
a 
(N
1)
; 
 
L
ei
a 
(N
2)
; 
 
 L
ei
a 
(N
3)
; 
 L
ei
a 
(N
4)
; 
 
 L
ei
a 
(N
5)
; 
 L
ei
a 
(N
6)
; 
 
 L
ei
a 
(N
7)
; 
 L
ei
a 
(N
8)
; 
 
 L
ei
a 
(N
9)
; 
 L
ei
a 
(N
10
);
 
 
 S
 
←
 
N
1+
N
2+
N
3+
N
4+
N
5+
N
6+
N
7+
N
8+
N
9+
N
10
; 
 
 M
E
D
IA
 ←
 S
/1
0;
 
 
 E
sc
re
va
 (
M
E
D
IA
);
 
Fi
m
. 
 
P
ro
gr
am
 M
ed
ia
; 
U
se
s 
W
in
C
rt
; 
va
r 
 
 
N
1,
N
2,
N
3,
N
4,
N
5,
N
6,
N
7,
N
8,
N
9,
N
10
, S
: r
ea
l;
 
B
eg
in
 
 
 R
ea
dl
n 
(N
1)
; 
 
 R
ea
dl
n 
(N
2)
; 
 
 R
ea
dl
n 
(N
3)
; 
 
 R
ea
dl
n 
(N
4)
; 
 
 R
ea
dl
n 
(N
5)
; 
 
 R
ea
dl
n 
(N
6)
; 
 
 R
ea
dl
n 
(N
7)
; 
 
 R
ea
dl
n 
(N
8)
; 
 
 R
ea
dl
n 
(N
9)
; 
 
 R
ea
dl
n 
(N
10
);
 
 
 S
 :=
 N
1+
N
2+
N
3+
N
4+
N
5+
N
6+
N
7+
N
8+
N
9+
N
10
; 
 
 M
E
D
IA
 :=
 S
/1
0;
 
 
 W
ri
te
ln
 (
M
E
D
IA
:5
:2
);
 
E
nd
. 
C
O
M
 
A
lg
or
it
m
o 
M
ed
ia
; 
va
r 
N
, S
O
M
A
, M
E
D
IA
: r
ea
l;
 
I:
 in
te
ir
o;
 
in
íc
io
 
 
 
S
O
M
A
 �
 0
; 
 
 
p
ar
a 
I 
←
 1
 a
té
 1
0 
fa
ça
 
 
 
 
 
le
ia
 (
 N
) 
; 
 
 
 
 
 S
O
M
A
 ←
 S
O
M
A
 +
 N
; 
 
 
 f
im
 p
ar
a;
 
 
 
M
E
D
IA
 ←
 S
O
M
A
/1
0;
 
 
 
E
sc
re
va
 (
M
E
D
IA
);
 
F
im
_a
lg
or
it
m
o.
 
 
 
P
ro
gr
am
 M
ed
ia
; 
U
se
s 
W
in
C
rt
; 
va
r 
N
, S
O
M
A
, M
E
D
IA
: r
ea
l;
 
I:
 I
nt
eg
er
; 
B
eg
in
 
 
 
S
O
M
A
 :=
 0
; 
 
 F
or
 I
 :=
 1
 T
o 
10
 D
o 
 
 
 
 B
eg
in
 
 
 
 
 
 R
ea
dl
n 
( 
N
) 
; 
 
 
 
 
 
 S
O
M
A
 :=
 S
O
M
A
 +
 N
; 
 
 
 
 E
n
d
; 
 
 
M
E
D
IA
 :=
 S
O
M
A
/1
0;
 
 
 
W
ri
te
ln
 (
M
E
D
IA
:5
:2
);
 
E
n
d
. 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 74/115 
ALG33 – Algoritmo que imprime os números de 1 a 9 utilização as 3 estruturas de repetição 
Pseudocódigo Fluxograma Codificação em PASCAL 
 
Algoritmo valores_1; 
Var N: Inteiro; 
Início 
 N � 1; 
 Enquanto (N <=9 ) faça 
 Escreva (N); 
 N � N +1; 
 Fim_enquanto; 
Fim_algoritmo. 
 
 
Program valores_1; 
Uses WinCrt; 
Var N: Integer; 
Begin 
 N := 1; 
 While (N <= 9) do 
 Begin 
 Writeln (N); 
 N := N +1; 
 End; 
End. 
 
Algoritmo valores_2; 
Var N: Inteiro; 
Início 
 Para N � 1 até 9 com 
incremento de 1 faça 
 Escreva (N); 
 Fim_Para; 
Fim_algoritmo. 
 
Program valores_2a; 
Uses WinCrt; 
Var N: Integer; 
Begin 
 For N := 1 to 9 do 
 Begin 
 Writeln (N); 
 End; 
End. 
Ou ----------- 
Program valores_2b; 
Uses WinCrt; 
Var N: Integer; 
Begin 
 For N := 1 to 9 do 
 Writeln (N); 
End. 
Algoritmo valores_3; 
Var N: Inteiro; 
Início 
 N � 1; 
 Repita 
 Escreva (N); 
 N � N +1; 
 Até que N > 9; 
Fim_algoritmo. 
 
 
Program valores_3; 
Uses WinCrt; 
Var N: Integer; 
Begin 
 N := 1; 
 Repeat 
 Writeln (N); 
 N := N +1; 
 Until N > 9; 
End. 
 
 
Algoritmospara Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 75/115 
2.3.3.3. Exercícios propostos 
1) Elaborar algoritmos para resolver os seguintes problemas: 
1.1. Imprimir os N primeiros números pares. 
1.2. Determinar e imprimir o maior número em N números diferentes dados. 
1.3. Encontrar e imprimir o menor dentre N valores lidos. 
1.4. Calcular e imprimir o somatório de N valores lidos. 
1.5. Calcular e imprimir a média aritmética de N Valores lidos. 
1.6. Ler um número inteiro e positivo e apresentar o seu fatorial (exemplo: o fatorial de 5! = 
1*2*3*4*5 = 120). 
1.7. Ler dois números inteiros e positivos e apresentar o resultado do primeiro número elevado 
ao segundo número (exemplo: 24 = 2*2*2*2 = 16). 
1.8. Simular o jogo de adivinhação: o jogador 1 escolhe um número entre 1 e 10; o jogador 2 
insere números na tentativa de acertar o número escolhido pelo jogador 1. Quando ele 
acertar, o algoritmo deve informar que ele acertou o número escolhido pelo jogador 1 em x 
tentativas (quantidade de tentativas do jogador 2). 
1.9. Supondo que a população de um país A seja da ordem de 98.000.000 de habitantes, com 
uma taxa anual de crescimento de 3,5% e que um país B tenha uma população de 
aproximadamente 200.000.000 habitantes com uma taxa anual de crescimento de 1,5%. 
Escreva um algoritmo que calcule iterativamente, quantos anos serão necessários para que a 
população do país A, ultrapasse ou iguale a população do país B, mantidas as taxas de 
crescimento. 
1.10. Uma fabrica tem uma linha de produção capaz de produzir 400 peças / dia. Um 
funcionário controla a qualidade, cadastrando o número da peça e o seu estado (aprovado ou 
reprovado). Criar um algoritmo para cadastrar o controle de qualidade, imprimir os números 
das peças reprovadas, e o total de peças aprovadas e reprovadas no final do dia. 
1.11. Uma certa firma fez uma pesquisa de mercado para saber se as pessoas gostaram ou não de 
um produto lançado no mercado. Para isso, forneceu o sexo do entrevistado e a resposta (Sim 
ou Não). Sabendo-se que foram entrevistadas N pessoas, fazer um algoritmo que calcule e 
exiba: 
a) O número de pessoas que responderam sim. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 76/115 
b) O número de pessoas que responderam não. 
c) A porcentagem de pessoas do sexo feminino que responderam sim. 
d) A porcentagem de pessoas do sexo masculino que responderam não. 
1.12. Em uma fazenda existem N bois. Cada Boi traz preso ao seu pescoço um 
cartão contendo seu número de identificação e seu peso. Desenvolva um 
algoritmo que imprima o número e o peso do boi mais gordo e mais magro. 
1.13. Determinar os valores de y, tal que y = (3+2x+6x²) / (1+9x+16x²) para x variando de 1,0 
até 5,0 em intervalos de 0,1 unidades. 
1.14. Dizer de N números inteiros, quantos são pares, quantos são impares, quantos são 
positivos e quantos são negativos. 
1.15. Calcular e imprimir o valor de: n<=30: 
1.16. Resolver a série: 
n
soma
1
.......
3
1
2
1
1
1
++++= 
1.17. Uma empresa decidiu fazer um recrutamento para preencher algumas vagas. Os candidatos 
serão cadastrados por computador. Faça um algoritmo para: 
i. ler o número do candidato, a idade e o sexo, a experiência profissional 
(SIM / NÃO); 
ii. mostrar a idade média dos candidatos; 
iii. mostrar o número total de candidatos e candidatas; 
 
1.18. O cardápio da Lanchonete Bom Apetite é o seguinte: 
 
Código do LancheEspecificação Preço Unitário(R$) 
1. 100 Cachorro quente 1,10 
2. 101 Bauru simples 1,30 
3. 102 Bauru c/ovo 1,50 
4. 103 Hamburger 1,10 
5. 104 Cheeseburger 1,30 
6. 105 Refrigerante 1,00 
 
Escrever um algoritmo que vá lendo o código do item pedido, a quantidade e vá 
calculando o valor total a ser pago pelo pedido. OBSERVAÇÃO: Use uma flag para continuar 
no programa. 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 77/115 
1.19. Na declaração de imposto de renda devem constar os dados: nome do contribuinte, CPF, 
renda anual e número de dependentes. Os cálculos são feitos da forma a seguir. 
i. Desconto de R$ 110,00 por dependente. 
ii. Com base na renda líquida (renda anual menos descontos) é calculada a 
alíquota de contribuição de acordo com a tabela: 
 
Renda Líquida Alíquota (%) 
Até R$ 900,00 Isento 
De R$ 901,00 até R$ 5.000,00 5 
De R$ 5.001,00 até R$ 10.000,00 10 
Acima de R$ 10.001,00 15 
 
Faça um algoritmo para calcular os valores dos impostos a serem pagos por um número 
indeterminado de contribuintes. Não se esqueça que, para facilitar seu trabalho, você deve adotar 
um flag. 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 78/115 
2) Elaborar um algoritmo que calcule o dobro de números inteiros lidos até que um desses 
números seja negativo. 
Pseudocódigo Fluxograma 
Programa dobro; 
Var num : Inteiro; 
Início 
 Escreva(‘Digite um numero:’); 
 Leia(num); 
 Enquanto (num>0) faça 
 Escreva(‘dobro: ‘, num*2); 
 Escreva(‘Digite um numero:’); 
 Leia(num); 
 Fim_enquanto; 
Fim. 
 
 
3) Dado o fluxograma abaixo de um algoritmo que calcula e imprimi o somatório de N valores, 
faça o pseudocódigo correspondente. 
pseudocódigo Fluxograma 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
inicio 
fim 
x � 1 
soma � 0 
Enquanto (x<=N) faça 
N 
soma 
soma � soma + x 
x � x + 1 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 79/115 
4) Dado o fluxograma abaixo, faça o pseudocódigo. 
Pseudocódigo Fluxograma 
 
 
 
5) O que o algoritmo do exercício anterior faz, marque a alternativa CORRETA. 
( ) Mostra os números inteiros de 30 a 55. 
( ) Mostra números menores que 55. 
( ) Mostra números reais de 30 a 55. 
( ) Mostra os números de 30 a 55 com incremento de 1. 
( ) Nenhuma das anteriores 
 
6) Refaça o fluxograma do exercício 1 colocando a estrutura de repetição PARA. 
 
7) Faça o fluxograma correspondente ao pseudocódigo dado abaixo. 
Pseudocódigo Fluxograma 
Algoritmo agenda; 
Var 
 nome : literal [30]; 
 telefone: literal [11]; 
 resp: literal [1]; 
Inicio 
 Resp � ‘S’; 
 Enquanto (Resp= ‘S’) Faça 
 Escreva (‘Entre com o nome e o telefone: ‘); 
 Leia(nome, telefone); 
 Escreva(‘Deseja continuar? (S/N)’); 
 Leia (Resp); 
 Fim_Enquanto; 
Fim_algoritmo. 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 80/115 
8) Indique o pseudocódigo que corresponde ao fluxograma abaixo. Marque a alternativa correta. 
 
( ) Algoritmo Exe5_1; 
 Var 
 Num : inteiro; 
 Início 
 Escreva (“Digite um número: “); 
 Leia (Num); 
 Enquanto Num = 0 faça 
 Escreva (“Dobro = “, Num * 2); 
 Escreva (“Digite um número: “); 
 Leia (Num); 
 Fim_enquanto; 
 Fim. 
 
( ) Algoritmo Exe5_2; 
 Var 
 Num : inteiro; 
 Início 
 Escreva (“Digite um número: “); 
 Leia (Num); 
 Enquanto Num > 0 faça 
 Escreva (“Dobro = “, Num * 2); 
 Escreva (“Digite um número: “); 
 Leia (Num); 
 
 Fim. 
( ) Algoritmo Exe5_3; 
 Var 
 Num : inteiro; 
 Início 
 Escreva (“Digite um número: “); 
 Leia (Num); 
 Enquanto Num > 0 faça 
 Escreva (“Dobro = “, Num * 2); 
 Escreva (“Digite um número: “); 
 Fim_enquanto; 
 Fim. 
 
( ) Algoritmo Exe5_4; 
 Var 
 Num : inteiro; 
 Início 
 Escreva (“Digite um número: “); 
 Leia (Num); 
 Enquanto Num > 0 faça 
 Escreva (“Dobro = “, Num * 2); 
 Escreva (“Digite um número: “); 
 Leia (Num); 
 Fim_enquanto;Fim. 
 
 
9) Refaça o fluxograma do exercício anterior colocando a estrutura de repetição REPITA. 
10) Execute o algoritmo do exercício anterior considerando os valores: 2, 5, -3, 0. (Teste de mesa) 
11) Dado o fluxograma abaixo conserto os erros no pseudocódigo. 
Pseudocódigo Fluxograma 
Algoritmo valores; 
Var N: Inteiro; 
Início 
 num � 10; 
 Enquanto (N > 50) faça 
 Escreva (num); 
 
 Fim_enquanto; 
Fim_algoritmo. 
 
 
 
 
 
 
 
 
 
 
 
inicio 
fim 
N �10 
N <= 50 
N 
N � N + 2 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 81/115 
12) O que faz o algoritmo abaixo 
Pseudocódigo Codificação em PASCAL 
Algoritmo somatorio; 
 
Var 
 N , Cont , Soma : inteiro; 
 resp: Literal [1]; 
início 
 resp � 'S'; 
 Enquanto resp='S' faca 
 
 Limpa_tela; 
 Escreva ( 'Digite o valor de N...: ' ) ; 
 Leia ( N ) ; 
 Cont � 1; 
 Soma � 0; 
 Enquanto Cont <= N faça 
 
 Soma � Soma + cont ; 
 Cont � cont +1 ; 
 Fim_enquanto ; 
 Escreva ('Soma = 1 + 2 + 3 +.......+',N,' é ...'); 
 Escreva ( 'Soma = ', Soma ) ; 
 Escreva ('Quer continuar "s" ou "n"? '); 
 Leia (resp); 
 Resp � Maiúscula (resp); 
 Enquanto (resp<> 'S' ) .e. (resp <> 'N') faça 
 
 Escreva ('Opção invalida digite "s" ou "n" 
!!!!'); 
 Leia (resp); 
 Resp � maiúscula (resp); 
 Fim_enquanto; 
 Fim_enquanto; 
 Limpa_tela; 
 Escreva ('Foi um prazer irreverssível programar 
com voce!!!!!'); 
 Pressione_uma tecla; 
 Fecha_janela; 
Fim_algoritmo. 
Program somatorio; 
Uses wincrt; 
Var 
 N , Cont , Soma : integer; 
 resp: char; 
Begin 
 resp:= 'S'; 
 while resp='S' do 
 begin 
 clrscr; 
 Write ( 'Digite o valor de N...: ' ) ; 
 Readln ( N ) ; 
 Cont := 1; 
 Soma := 0; 
 While Cont <= N do 
 Begin 
 Soma := Soma + cont ; 
 Cont := cont +1 ; 
 End; 
 gotoxy(10,5);writeln('Soma = 1 + 2 + 3 +.......+',N,' é 
...'); 
 gotoxy(10,10);Writeln ( 'Soma = ', Soma ) ; 
 gotoxy(5,20);write('Quer continuar "s" ou "n"? '); 
 readln(resp); 
 resp:= upcase(resp); 
 while (resp<>'S') and (resp<>'N') do 
 begin 
 gotoxy(5,22);write ('Opção invalida digite "s" ou 
"n" !!!!'); 
 readln(resp); 
 resp:=upcase(resp); 
 end; 
 end; 
 clrscr; 
 gotoxy(10,10);Writeln ('Foi um prazer irreverssível 
programar com voce!!!!!'); 
 readkey; 
 donewincrt; 
End. 
 
13) O que faz o algoritmo abaixo? Faça o pseudocódigo correspondente. 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 82/115 
 
 
14) Qual é a estrutura de repetição que foi utilizada para construir o fluxograma do exercício 
anterior? 
( ) ENQUANTO ( ) REPITA ( ) PARA 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 83/115 
15) Faça o teste de mesa abaixo com base no fluxograma do exercício 13. 
n1 n2 op r resp 
2 4 + S 
10 5 - S 
200 1 a S 
1 20 * N 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 84/115 
2.4. EXERCÍCIOS PROPOSTOS COMPLEMENTARES 
 
Neste item são propostos exercícios adicionais que complementam o conhecimento 
adquirido até o presente momento. 
 
1) Dados os algoritmos abaixo, dizer quais devem ser as saídas. 
 
 
Algoritmos Saída na tela do microcomputador 
programa Um; 
inicio 
 escreva('meu primeiro programa'); 
fim_programa. 
 
 
programa Um; 
inicio 
 escreva (‘2+3’); 
fim_programa. 
 
programa Dois; 
inicio 
 escreva (5+3); 
fim_programa. 
 
programa Três; 
var 
 A, B : inteiro; 
inicio 
 A � 2; 
 B � 3; 
 escreva (A+B); 
fim_programa. 
 
programa quatro; 
 A, B : inteiro; 
inicio 
 leia (A); 
 leia (B); 
 escreva ('A+B'); 
fim_programa. 
 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 85/115 
2) Coloque Falso (F) ou Verdadeiro (V) para as sentenças abaixo. 
 
( ) Podemos pensar em algoritmo como uma receita, uma seqüência de instruções que dão cabo 
de uma meta específica. 
( ) Para montar um algoritmo não precisamos responder as perguntas: Quais são os dados de 
entrada? Qual será o processamento a ser utilizado? Quais serão os dados de saída? 
( ) Exemplo de algoritmo: pegar a bala; retirar o papel; chupar a bala; jogar o papel no lixo. 
( ) Algoritmos devem ser testados após sua elaboração. Este teste é chamado TESTE DE MESA 
e significa seguir as instruções do algoritmo para verificar se está correto ou não. 
( ) Algoritmo não é uma seqüência finita de passos que levam a execução de uma tarefa. 
( ) Exemplo de algoritmo: receba a nota de cada uma das 4 provas; some todas as notas e divida 
o resultado por 4; mostre o resultado da divisão. 
( ) Teste de mesa não permite verificar se a lógica de programação está correta. 
( ) Lógica de programação é a técnica de encadear pensamentos para atingir um determinado 
objetivo ou executar uma dada tarefa. 
( ) Na estrutura condicional simples a seqüência de comandos só será executada se a condição 
dor verdadeira. 
( ) A estrutura condicional permite a escolha do grupo de ações e estruturas a serem executados 
quando determinadas condições (expressões lógicas) são ou não satisfeitas. 
( ) X � a mod b; neste caso as variáveis devem ser declaradas como sendo do tipo real; 
 
3) Dado o portugol (pseudocódigo) abaixo encontrar os erros que apresenta. 
 
Algoritmo CEx3; 
Var X: real; 
Início 
 
 Se X > 0 então 
 P � X * X 
 Senão 
 P � 1/X 
 Fim_se 
 Escreva (P,X); 
Fim_algoritmo 
 
 
4) Complete os exercícios abaixo. Dado o fluxograma faça o pseudocódigo e vice-versa. 
Coloque também o enunciado que falta. 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 86/115 
Enunciado: 
 
 
 
Enunciado: 
 
 
 
 
Programa algo_1; 
Var data, dia, mes, ano: Inteiro; 
Inicio 
 Escreva(‘Digite uma data no formato ddmmaa:’); 
 Leia (data); 
 dia � data div 1000; 
 mes � data mod 100000 div 100; 
 ano � data mod 100; 
 escreva (‘dia: ‘, dia, ‘ mes:’, mês, ‘ ano: ‘, ano); 
 
Fim. 
 
 
 
 
 
5) Responda as questões abaixo. 
 
a) O que o enunciado de um exercício representa? 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 87/115 
 
 
b) Qual a diferença entre algoritmo e programa? 
 
 c) O que você entende por Estruturas básicas de controle (seqüência, seleção e repetição)? 
Dê exemplos dessas estruturas. 
 
d) Já ouviu falar em técnica de programação estruturada? 
 
e) Encontre em algum livro uma definição para lógica de programação? 
 
6) Indique com (V) as afirmativas verdadeiras e com (F) as falsas. 
 
( ) Em pseudocódigo o comando Escreva é usado para entrada de dados. 
( ) 
X � a DIV b; neste exemplo as variáveis devem ser declaradas como sendo do tipo 
inteiro; 
( ) 
Podemos pensar em algoritmo como uma receita, uma seqüência de instruções que dão 
cabo de uma meta específica. 
( ) 
No algoritmo, para verificar se um número A é par usa-se o comando: Se A MOD 2 = 0 
então 
( ) Exemplo de algoritmo: pegar a bala; retirar o papel; chupar a bala; jogar o papel no lixo. 
 
7) Indique o tipo da variável a ser declarada (I – inteiro, R – Real, B – Boleano (lógico), L – 
Literal) para receber os conteúdos abaixo: (1.0 pt) 
 
( ) verdade 
( ) ‘falso’ 
( ) 8.5 
( ) 34 
( ) ‘F’ 
( ) A Div 2 
( ) C / 3 
( ) ‘R. Antônio de Pádua. 20’ 
 
 
8) Discutir a frase: Os computadores, infelizmente, só fazem aquilo que mandamos, e nãonecessariamente o que desejamos que eles façam. 
 
9) Faça um algoritmo que receba o ano de nascimento de uma pessoa e o ano atual, calcule e 
imprima a idade dessa pessoa. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 88/115 
10) Indique a saída do trecho do fluxograma a seguir considerando os seguintes valores: 
A = 5 B = 8 C = 12 D = 2 
 
11) Indique a saída do fluxograma a seguir considerando os valores: Sal = 300,00; Sal = 
1000,00 e Sal = 0,0 . 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 89/115 
12) Faça um algoritmo que receba o código correspondente ao cargo de um funcionário e 
imprima seu cargo e o percentual de aumento de salário que este funcionário tem direito de 
acordo com a tabela abaixo: 
 
Código Cargo Percentual de aumento 
1 Gestor 35% 
2 Diretor 30% 
3 Secretária 25% 
4 Contador 25% 
5 Professor 15% 
6 Estagiário 10% 
7 Pessoal limpeza 10% 
. 
13) Qual o enunciado que resultou no algoritmo representado pelo fluxograma abaixo? 
 
 
 
14) Transcreva para o pseudocódigo o fluxograma do exercício anterior. 
 
15) Teste o algoritmo do exercício anterior. Considere os valores 3, -1 e 0. 
n n > 0 n < 0 Saída 
 
 
 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 90/115 
16) Dado o pseudocódigo abaixo faça o fluxograma. Trata-se de um algoritmo que lê dois 
números e imprime uma mensagem dizendo se são iguais ou diferentes. 
 
Pseudocódigo Fluxograma 
Algoritmo CEx16; 
Var a,b : inteiro; 
Início 
 Escreva (‘Digite o primeiro número’); 
 Leia (a); 
 Escreva (‘Digite o segundo número’); 
 Leia (b); 
 Se a = b então 
 Escreva (‘Iguais’) 
 Senão 
 Escreva (‘diferentes’) 
 Fim_se; 
Fim_algoritmo. 
 
 
 
 
 
 
 
 
 
 
17) relacione a coluna da direita com a da esquerda 
a) 
 
 
b) 
 
d) 
 
 
d) 
 
 
( ) Se Condição Então 
C1; 
C2; 
 Senão 
 C3; 
 C4; 
 Fim_se; 
 
( ) Se Condição então 
 C1 
 Senão 
 C2; 
 Fim_se; 
 
 ( ) Se Condição 
Então 
C1; 
C2; 
 Fim_se; 
( ) 
Se Condição então 
 C1; 
 Fim_se; 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 91/115 
18) Dadas as declarações de variáveis abaixo, monte as tabelas de símbolos correspondentes. 
VAR 
 x,y,z: inteiro 
 p: lógico; 
 No: 
literal[20] 
 r, r2: real; 
Nome 
simbólico 
Posição 
inicial 
Tipo 
de dado 
 
 
 
 
 
 
 
 
19) Converta as expressões aritméticas para uma forma que o computador entenda: 
 
a) )).().(.( CXBAyPX +−− 
b) cab ..42 − 
c) 
Ad
yx
.
−
 
d) 
d
ba −
 
 
 
20) Elabore alguns exercícios englobando o conteúdo da disciplina. Seja criativo. Pode ser: 
palavra-cruzada, relacione, falso ou verdadeiro, completar, teste de mesa, etc. 
 
21) Preencha as lacunas com V para as alternativas verdadeiras e F para as falsas. 
( ) Laços condições e laços contados podem ser aplicados às três estruturas de repetição 
Para, Enquanto e Repita. 
 ( ) A estrutura Escolha pode ser utilizada sempre que o número de opções for maior que 
três. 
( ) A estrutura Para pode ser utilizada em todas as situações. 
( ) Dentro de uma estrutura de repetição é possível utilizar outras estruturas de repetição 
ou decisão. 
 
 
22) Responda as questões abaixo: 
 
a) Quando declaro variáveis do tipo real e do tipo inteiro? 
b) Por que o teste de mesa é importante? 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 92/115 
c) Identação do código e comentários são importantes? Justifique. 
d) Quando o algoritmo solicita a entrada de N números, o contador da estrutura de repetição 
deve ser inicializado com zero (0) ou um (1)? Justifique sua resposta. 
e) Em qual estrutura de repetição o contador é incrementado automaticamente? 
f) O que o enunciado de um exercício representa? 
 
23) Elabore alguns exercícios englobando o conteúdo da disciplina. Seja criativo. Pode ser: 
palavra-cruzada; relacione colunas; falso ou verdadeiro; completar a sentença; teste de mesa; e 
etc. 
 
24) Dado o pseudocódigo abaixo, encontre 3 erros. 
 
Algoritmo 24Ex; 
Var 
 a, b, c, x1,x2 : real; 
Início 
 Leia (a,c); 
 Se (a > 0) então 
 d � b * b – 4 * a * c; 
 Se (d ≥ 0) então 
 x1 � -b + raiz (d); 
 x2 � -b - raiz (d); 
 escreva (x1, ‘ ’,x2); 
 Fim_se; 
 Fim_se; 
Fim_algoritmo; 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 93/115 
25) Dado o fluxograma abaixo, encontre os erros. Refaça o fluxograma ao lado. 
 
 
 
26) Dado o fluxograma abaixo, faça o teste de mesa preenchendo a tabela de valores para N = 3. 
Fluxograma Teste de mesa 
 
 
 
 
 
N S P I I <= N 
3 
----- 
----- 
----- 
----- 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 94/115 
27) Refazer o fluxograma do exercício anterior empregando a estrutura de repetição com teste 
lógico no final do looping (REPITA). 
28) O fluxograma do exercício 25 pode ter sido elaborado a partir de qual enunciado? 
29) Num frigorífico existem 90 bois. Eles têm prendido ao pescoço um cartão contendo a 
identificação e o peso. Fazer um programa que escreva o número e o peso do boi mais gordo e 
do boi mais magro. 
30) Após a execução do programa codificado a partir do algoritmo abaixo qual (is) valor(es) 
serão impressos se B = 10. 
Algoritmo Ex30; 
Var 
 B, A , X : Inteiro; 
Início 
 Leia ( B); 
 A� 1; 
 X � 0; 
 Enquanto ( A < B ) faça 
 X � X+ I; 
 A � A + 2; 
 Fim_enquanto; 
 Escreva ( X ); 
Fim_algoritmo. X = 
 
31) Dado o fluxograma abaixo, faça seu pseudocódigo. 
Fluxograma Pseudocódigo 
 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 95/115 
32) Elabore um programa para determinar o valor de K, que dado pela série abaixo: 
 
100
50
8
4
6
3
4
2
2
1
+++++= LK 
 
33) Dado o algoritmo abaixo, qual(is) valor(es) devem ser exibidos se o valor de entrada for A= 
4 e X= 12, 15, 17 e 6 
 
Algoritmo Ex33; A I P X 
 
Var 
 A, I : Inteiro; 
 P, X: Real; 
Início 
 Leia ( A ) ; 
 I � 0 ; 
 P � 0 ; 
 Repita 
 Leia ( X ); 
 P � P – X ; 
 I � I + 1 ; 
 Até que ( I = A ); 
 Escreva ( P ); 
Fim_Algoritmo. 
 
 
34) Troque a estrutura de repetição PARA do código abaixo para a estrutura de repetição 
ENQUANTO. 
 
Para i de 1 até 5 faça ___________________________ 
 Leia (X); ___________________________ 
 S � X*X; ___________________________ 
 Escreva (S); __________________________ 
Fim_para; ____________________________ 
 
35) O que faz o algoritmo abaixo? Faça o teste de mesa utilizando a tabela abaixo. 
 
 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 96/115 
 
 
J peso idade pesoM idadeM 
1 76 18 
2 65 21 
3 68 23 
4 73 19 
 
36) Quais as estruturas de repetição utilizadas no exercício anterior? 
 
37) Faça o pseudocódigo correspondente ao fluxograma do exercício 34. 
 
38) Elaborar um algoritmo que efetue a leitura sucessiva de valores numéricos e apresentar no 
final a soma de todos os valores lidos, a média e a quantidade de valores lidos. O programa 
deverá fazer as leituras dos valores enquanto o usuário estiver fornecendo valores positivos, ou 
inicio 
fim 
NE, NJ 
somaPT � 0 
somaIT � 0i � 1; NE; 1 
somaP � 0 
somaI � 0 
cont � 1 
 cont <= NJ 
Idade,peso 
somaP � somaP + peso 
somaI � somaI + idade 
cont � cont + 1 
pesoM � somaP/NJ 
idadeM � somaI/NJ 
 somaPT� somaPT + somaP 
somaIT� somaIT + somaI 
 
QJ � NJ*NE; 
pesoMT � somaPT / QJ 
idadeMT � somaIT / QJ 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 97/115 
seja, o programa deverá parar quando o usuário fornecer um valor negativo (menor ou igual a 
zero). 
 
39) Faça um algoritmo que receba como entrada o nome, a idade e a altura de várias pessoas. 
Como saída o algoritmo deve imprimir os nomes das pessoas com mais de 40 anos. Para encerrar 
a entrada de dados, o usuário deve digitar uma idade menor ou igual a zero. 
 
40) Qual o enunciado para o pseudocódigo abaixo? 
 
Algoritmo MenorValor; 
 Var A, B, C,M: real; 
 início 
 Leia ( A,B,C ); 
 Se (A < B) .e. (A < C) então 
 M � A 
 Senão 
 Se (B < C) então 
 M � B 
 Senão 
 M � C; 
 Fim_se; 
 Fim_se; 
 Escreva (M); 
Fim_algoritmo. 
 
41) Acrescente a estrutura de repetição REPITA ao fluxograma abaixo. A repetição somente 
terminará quando n = 999. 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 98/115 
42) Transcreva para o pseudocódigo o fluxograma do exercício anterior acrescentando a 
estrutura de repetição ENQUANTO. 
 
43) Dado o pseudocódigo abaixo faça o fluxograma. Trata-se de um algoritmo que lê dois 
números e imprime uma mensagem dizendo se são iguais ou diferentes n vezes. 
 
Algoritmo Ex43; 
Var a,b : inteiro; 
 Resp : literal [1]; 
Início 
 Resp � ‘S’; 
 Enquanto Resp = ‘S’ faça 
 Escreva (‘Digite o primeiro número’); 
 Leia (a); 
 Escreva (‘Digite o segundo número’); 
 Leia (b); 
 Se a = b então 
 Escreva (‘Iguais’) 
 Senão 
 Escreva (‘diferentes’) 
 Fim_se; 
 Repita 
 Escreva (‘Outra verificação ? (S/N)’); 
 Leia (Resp); 
 Até (Resp = ‘S’) .ou. (resp = ‘N’); 
 Fim_enquanto; 
Fim_algoritmo; 
 
 
44) Indique com (V) as afirmativas verdadeiras e com (F) as falsas. 
 
( ) O enunciado de um exercício não representa o problema a ser solucionado. 
( ) 
Variável é uma parte da memória cujo conteúdo (valor) pode ser alterado durante a 
execução do programa. 
( ) 
Um algoritmo é formalmente uma seqüência finita de passos que levam a execução de 
uma tarefa. Podemos pensar em algoritmo como uma receita, uma seqüência de 
instruções que dão cabo de uma meta específica. Como exemplos de algoritmos 
podemos citar os algoritmos das operações básicas (adição, multiplicação, divisão e 
subtração) de números reais decimais. Outros exemplos seriam os manuais de 
aparelhos eletrônicos, como um videocassete, que explicam passo-a-passo como, por 
exemplo, gravar um evento. 
( ) 
No algoritmo as tarefas podem ser redundantes e subjetivas na sua definição, ou seja, 
não devem ser claras e precisas. 
( ) 
A lógica de programação é necessária para pessoas que desejam trabalhar com 
desenvolvimento de sistemas e programas, ela permite definir a seqüência lógica para o 
desenvolvimento. É a técnica de encadear pensamentos para atingir determinado 
objetivo ou permitem executar uma dada tarefa. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 99/115 
( ) 
Embora seja possível alterar o valor armazenado na memória (na variável), é possível 
armazenar só um valor de cada vez. 
( ) 
A variável é composta de dois elementos básicos: a) conteúdo – valor atual da variável 
e b) identificador – nome dado à variável. 
( ) Os dados necessários à resolução do problema são entrados apenas via teclado. 
( ) 
C � A+B (O valor que está em C é somado ao valor em B, e o resultado é armazenado 
na variável A.) 
( ) 
TESTE DE MESA é utilizado para verificar se instruções do algoritmo estão ou não 
corretas. 
 
 
45) Converta as estruturas de repetição dos dois trechos de algoritmo abaixo. Ou seja, você 
deverá acrescentar/retirar/modificar todas as linhas que sejam necessárias para fazer estas 
conversões. 
a) converta para a forma ENQUANTO/FAÇA 
 
cont � 0; 
Repita 
 X � Cont * 3; 
 Cont := Cont + 1; 
Até (Cont > 10); 
 
 
b) converta para a forma PARA 
 
i � 1; y � 0; A � 1; 
Enquanto (i <= 100) faça 
 y � y + i/A; 
 A � A * 2; 
 i � i + 1; 
Fim_Enquanto; 
 
 
c) converta para a forma REPITA/ATÉ 
 
i � 0; 
Enquanto (i < 30) faça 
 y � i + 5 ; 
 i := i + 1; 
Fim_enquanto; 
 
 
46) Faça o teste de mesa completo para o diagrama de blocos abaixo considerando N=3, X = (2, 
-1 e 4) e Y = (3, 2 e -4) 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 100/115 
 
47) Dado o pseudocódigo abaixo, complete o código. 
Programa FATORIAL_D; 
Var 
Cont, ___, N : inteiro; 
Resp: _________; 
Inicio 
 Resp�’S’; 
 _________ (Resp = ’S’) faça 
 Fat� 1; 
 Escreva (‘Fatorial de que número:’); 
 Leia (____); 
 Para cont � _____ ate N com incremento de 1 
faça 
 Fat �Fat * cont; 
 Fim_para; 
 Escreva (‘Fatorial de ‘, N , ‘ é igual a‘, _____); 
 Escreva (‘Deseja continuar? (S/N’); 
 Leia (Resp); 
 Fim_enquanto; 
Fim_programa; 
Programa POTENCIA; 
Var 
 i, Pot, X,Y : _________; 
 R: caractere; 
Inicio 
 R �’S’; 
 REPITA 
 Escreva (‘Base:’); 
 ____________ 
 Pot � 1; 
 Escreva (‘Expoente:’); 
 Leia (Y); 
 Para i � 1 ate _____ com incremento de ___ faça 
 Pot � ____* X; 
 Fim_para; 
 Escreva ( X , ‘ elevado a ‘, Y, ‘ = ‘, Pot); 
 Escreva (‘Continua? (S/N’)); 
 Leia (R); 
 ATÉ (____ ‘N’); 
Fim_programa; 
 
48) Refaça o algoritmo abaixo de tal forma que o valor final seja digitado pelo usuário. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 101/115 
 
com valor final especificado como 10 com valor final digitado pelo usuário 
 
Algoritmo Media_V1; 
var 
 N, SOMA, MEDIA: real; 
 I: inteiro; 
início 
 SOMA � 0; 
 para I ← 1 até 10 faça 
 leia( N) ; 
 SOMA ← SOMA + N; 
 fim para; 
 MEDIA ← SOMA/10; 
 escreva(MEDIA); 
fim. 
 
 
 
 
49) Dados os identificadores abaixo, assinale somente os que são aceitos nas linguagens formais. 
( ) VALOR ( ) SALÁRIO-LÍQUIDO ( ) B248 ( ) Nota_do_aluno 
( ) X2 ( ) NOTA*DO*ALUNO ( ) A1B2C3 ( ) ‘N23’ 
( ) 3 x 4 ( ) MARIA ( ) KM/H ( ) Cad Clientes 
( ) XYZ ( ) AH! ( ) SALA125 ( ) NomeDoCliente 
( ) ‘NOTA’ ( ) NOME _DA_EMPRESA ( ) NoTa ( ) 3º_Ex 
 
50) A biblioteca de uma universidade deseja fazer um algoritmo que leia o nome do livro que 
será emprestado, o tipo de usuário (professor ou aluno), considerando que o professor tem dez 
dias para devolver o livro e o aluno somente três dias, no final imprimir um recibo constando o 
nome do livro, tipo de usuário e total de dias para devolução. 
 
51) Elabore um algoritmo que dado o código do funcionário, e numero de horas trabalhadas, 
calcule seu salário normal e salário extra, sabendo que ele ganha R$15,00 por hora normal e R$ 
30,00 por hora extra e que quando sua jornada for maior que 50 horas as horas excedentes serão 
consideradas horas extras, no final imprimir o código do funcionário, seu salário normal e seu 
salário extra. 
 
52) Faça o pseudocódigo do fluxograma abaixo. 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 102/115 
 
 
53) Substitua a estrutura de repetição do exercício anterior pelo ENQUANTO. Reescreva 
somente referente a repetição. 
 
54) Dado o pseudocódigoabaixo, faça o teste de mesa considerando: A = 3, 2 e 1; B = 4, 3 e 0. 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 103/115 
Algoritmo Ex54; 
Var Cont: inteiro; 
 A, B, S: real; 
Inicio 
 Cont�1; 
 Repita 
 Leia (A, B); 
 S � A+B; 
 Escreva (S); 
 Cont � Cont + 1; 
 Até (Cont > 3); 
Fim_algoritmo. 
Teste de mesa 
Cont A B S 
 
 
 
 
 
55) Preencha as lacunas com V para as alternativas verdadeiras e F para as falsas. 
 
 Na estrutura de repetição PARA o contador deve ser declarado como inteiro. 
 ENQUANTO é uma estrutura de repetição com teste no final, e uma seqüência de 
comandos só é executada quando o teste lógico resulta em verdadeiro. 
 Usa-se PARA normalmente quando o numero de repetições é previamente conhecido. 
 A estrutura CASO/ESCOLHA pode ser utilizada sempre que o número de opções for maior 
que três. 
 Deve-se criar uma condição para executar comandos nas estruturas de repetição 
ENQUANTO ou REPITA. 
 Na estrutura CASO/ESCOLHA a condição testa a igualdade entre duas variáveis. 
 Dentro de uma estrutura de repetição é possível utilizar outras estruturas de repetição e/ou 
de decisão. 
 A estrutura condicional SE permite a escolha de uma seqüência de comandos caso uma 
determinada condição (expressão lógica) é ou não verdadeira. 
 Na estrutura de repetição ENQUANTO o trecho de comandos é executado pelo menos uma 
vez antes de testar a condição. 
 Na estrutura de repetição REPITA o trecho de comandos será executado para a condição 
falsa. 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 104/115 
56) Complete o algoritmo abaixo. 
 
Algoritmo Ex56; 
Var i:____________; 
Início 
 i � ______; 
 Enquanto (i ___15) faça 
 Escreva (i); 
 i � i - 0,5; 
 Fim_enquanto; 
Fim_programa. 
 
57) Transcreva o fluxograma abaixo para o pseudocódigo. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58) Dado o fluxograma acima, acrescente uma estrutura de repetição para seja executada a 
verificação de idade para várias pessoas. 
 
inicio 
fim 
‘Digite a idade’ 
idade 
Idade<18 
‘Menor de 
idade’ 
‘Maior de 
65 anos’ 
‘Maior de 
idade’ 
idade<65 
F 
F 
V 
V 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 105/115 
59) Refaça o fluxograma do exercício anterior substituindo a estrutura condicional pela estrutura 
ESCOLHA/CASO. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 106/115 
2.5. RESUMO 
Fluxograma Pseudocódigo Pascal 
 
 Algoritmo NomeProg; 
 Variáveis 
 V1,V2: Tipo_de_dado; 
 Inicio 
 Program NomeProg; 
 Var 
 V1,V2:Tipo_de_dado; 
Begin 
 Program Exemplo1; 
 Var 
 X, Y : real; 
 Begin 
 
Fim End. 
 
Leia ( X ) ; Read (X) ou Readln (X); 
Write (‘Informe X: ’); 
Readln (X); 
 
Y� X + 2; Y:= X + 2; 
ou 
Escreva ( Y ) Write (Y) ou Writeln (Y) Writeln (‘O valor de Y é:’, Y); 
 
 
 
Se Condição então 
 C1; 
 Fim_se; 
 
 Obs: C1 é igual a 
Comando1 
If Condição Then 
 C1; 
 
 
Obs: O ponto e vírgula 
indica o Fim_Se 
 If X > 0 then 
 Y := X * X; 
 
 
Se Condição então 
 C1 
 Senão 
 C2; 
 Fim_se; 
 
 
If Condição Then 
 C1 
 Else 
 C2; 
Obs.: Antes de Else não 
tem ponto e virgula. 
 If X > 0 then 
 Y:= X * X 
 Else 
 Y:= X – 4; 
 
 
Se Condição Então 
C1; 
C2; 
 Fim_se; 
 
 
 
 
If Condição Then 
 Begin 
 C1; 
 C2; 
 End; 
Obs.: Quando tem mais 
de um comando na 
estrutura, ou seja, um 
bloco de comandos, é 
obrigatório o uso de 
Begin e End para indicar 
começo e fim do bloco de 
comandos. 
 If X > 0 then 
 Begin 
 Y:= X * X; 
 X:= X – 4; 
 End; 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 107/115 
 
Fluxograma Pseudocódigo Pascal 
 
Se Condição Então 
C1; 
C2; 
 Senão 
 C3; 
 C4; 
 Fim_se; 
 
 
If Condição Then 
 Begin 
 C1; 
 C2; 
 End 
 Else 
 Begin 
 C3; 
 C4; 
 End; 
 Write ( ‘Informe X: ’ ); 
 Readln ( X ); 
 If X > 0 then 
 Begin 
 Y:= X * X; 
 X:= Y – 4 * Y; 
 End 
 Else 
 Begin 
 Y:= X * X*3; 
 X:= Y * (X– 4); 
 End; 
 
para <variável> de 
<inicio> até <fim> com 
incremento de <passo> 
faça 
 Comando_1; 
 Comando_2; 
 Comando_n; 
Fim_para; 
 
 
For <variável> := 
<inicio> To <fim> 
Do begin 
 Comando_1; 
 Comando_2; 
 Comando_n; 
End;; 
 
No Pascal o contador é 
incrementado 
automaticamente de Vi a Vf 
com passo unitário. Contagem 
regressiva ocorre trocando-se 
Vi e Vf de lugar e substituindo 
TO por DOWNTO. 
 Write ( ‘Informe A: ’ ); 
 Readln (A); 
 For I:= 1 to A do 
 Begin 
 Write (‘Informe X: ’); 
 Readln ( X ); 
 P:= X * X; 
 K:= X – 4 * P; 
 y:= X * X*3; 
 Z:= X * (X– 4); 
 End; 
 
 
 
Enquanto <condição> 
faça 
 Comando 1; 
 Comando 2; 
 Comando n; 
Fim_enquanto; 
 
Obs.: Esta estrutura repete os 
camandos enquanto a condição for 
verdadeira. O contador deve ser 
incrementado dentro da estrutura 
de repetição. 
While <condição> Do 
 Begin 
 Comando 1; 
 Comando 2; 
 Comando n; 
 End; 
 
 Write ( ‘Informe A: ’); 
 Readln (A); 
 I := 0; 
 While I < A Do 
 Begin 
 Write (‘Informe X: ’); 
 Readln ( X ); 
 P:= X * X; 
 K:= X – 4 * P; 
 Y:= X * X*3; 
 I := I + 1; 
 End; 
 
 
 
Repita 
 Comando_1; 
 Comando_2; 
 Comando_n; 
Até que <condição>; 
 
Obs.: Esta estrutura repete os 
comandos até que a condição seja 
verdadeira. A diferença entre esta 
estrutura e a anterior é que esta 
executará os comandos pelo 
menos uma vez, enquanto a outra 
pode não executar nenhuma vez 
os comandos. 
 Repeat 
 Comando_1; 
 Comando_2; 
 Comando_n; 
 Until condição; 
 Write ( ‘Informe A: ’ ); 
 Readln (A); 
 I := 0; 
 Repeat 
 Write ( ‘Informe X: ’ ); 
 Readln ( X ); 
 P:= X * X; 
 K:= X – 4 * P; 
 Y:= X * X*3; 
 Z:= X * (X– 4); 
 I := I + 1; 
 Until I > A; 
 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 108/115 
 
Fluxograma Pseudocódigo Pascal 
Escolha (Variável) 
 Caso (valor_1) : Comando_1; 
 Caso (valor_2) : Comando_2; 
 Caso (valor_3) : Comando_3; 
Fim_escolha; 
 
Ou desta outra forma: 
 
Caso <Variável> 
 <valor_1> : <Comando_1>; 
 <valor_2> : <Comando_2>; 
 <valor_3> : <Comando_3>; 
Fim_caso; 
 
Case Variável of 
 Valor_1: Comando_1; 
 Valor_2: Comando_2; 
 Valor_3: Comando_3; 
 End; 
Writeln (‘Digite número:’); 
Readln (Num); 
Case Num of 
 1: Writeln (‘Um’); 
 2: writeln (‘Dois’); 
 3: writeln (‘Três’); 
 End; 
 
Escolha (Variável) 
 Caso (valor_1) : Comando1; 
 Caso (valor_2) : Comando2; 
Senão 
 Comando3; 
Fim_escolha; 
 
 Ou desta outra forma: 
 
Caso <Variável> 
 <valor_1> : <Comando1>; 
 <valor_2> : <Comando2>; 
Senão 
 <Comando3>; 
Fim_caso; 
Case Variável of 
 Valor_1: Comando_1; 
 Valor_2: Comando_2; 
Else 
 Valor_3: Comando_3; 
 End; 
Writeln (‘Digite número:’); 
Readln (Num); 
Case Num of 
 1: Writeln (‘Um’); 
 2: writeln (‘Dois’); 
Else 
 writeln (‘Três’); 
 End; 
 
Algoritmos para Estruturas SimplesÚltima atualização: 22/4/2008; 11:51:05 109/115 
 
Operador Operação Exemplo Classificação 
���� Atribuição A � 7 Atribuição 
+ Adição 2 + 5 = 7 
- Subtração 20 – 10 = 10 
* Multiplicação 3 * 5 = 15 
/ 
Divisão (onde o resultado será um 
número real) 
5 / 2 = 2,5 
DIV 
Divisão (onde o resultado será um 
número inteiro) 
10 div 2 = 5 
7 div 2 = 3 
MOD Resto de uma divisão 7 mod 2 = 1 
** ou exp(a, 
b) 
Exponenciação 5 ** 2 ou exp(5, 2) 
Sqrt (x) Raiz quadrada Sqrt(5) 
Exp(ln(x)*n) Exponenciação xn Exp(ln(5)*3) 
Aritmético 
E (And) Conjunção (as duas ao mesmo tempo ) 
(Media > 5) .E. (Freq > 
75) 
Ou (Or) Disjunção Inclusiva 
(Flag = .V.) .Ou. (Cont 
> 50) 
Não (Not) Negação Não (Sei_nada) 
Ou-X (Xor) Ou ‘Exclusivo’ 
(Sal < 500) Ou-X 
(N_dep > 2) 
Lógico 
= Igualdade Nome = ‘João da Silva’ 
≠≠≠≠ ou <> Diferente Saldo ≠ 100,00 
> Maior que Salário > 3000,00 
Idade > 18 
≥≥≥≥ ou >= Maior ou igual que Média ≥ 5,0 
 
< Menor que Renda < 10000 
≤≤≤≤ ou <= Menor ou igual que Aluguel ≤ 400 
Relacional 
 
Veja a tabela verdade apresentada a seguir para entender melhor os operadores lógicos, 
onde P e Q são variáveis do tipo lógico. 
P Q P.e. Q P .ou. Q P .ou-X. Q Não (P .e. Q) Não (P .ou. Q) Não (P .ou-X. Q) 
F F F F F V V V 
F V F V V V F F 
V F F V V V F F 
V V V V F F F V 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 110/115 
3. RESPOSTAS 
 
Procure as respostas para as questões formuladas no arquivo de respostas. 
 
<<EM CONSTRUÇÃO, estará disponível antes da prova com certeza>> 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 111/115 
REFERÊNCIAS BIBLIOGRÁFICAS 
 
 
MANZANO, J.A.N.G., OLIVEIRA, J.F., Algoritmos – Estudo Dirigido, Coleção P.D., Editora 
Érica, São Paulo, 1997. 
MANZANO, J.A.N.G., OLIVEIRA, J.F., Algoritmos – Lógica para desenvolvimento de 
Programação de Computadores, Editora Érica, 15a Ed., São Paulo, 2004. 
FARRER, H, BECKER, C.G., FARIA, E.C., Algoritmos Estruturados, Editora LTC, 3a Ed., 
1999. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 112/115 
ANEXOS 
A.1. Como ser reprovado em Algoritmos e/ou Laboratório de 
Programação 
Por João Batista (oliveira @ inf. pucrs.br) e Marcelo (flash @ inf. pucrs.br). 
http://www.inf.pucrs.br/~flash/manual/ 
Siga pelo menos uma das instruções abaixo e sua reprovação estará praticamente garantida nas 
disciplinas Algoritmos e Técnicas de programação! A reprovação ocorrerá facilmente e com 
tranqüilidade! 
 
1. Baixe todas as apostilas da disciplina, e depois carregue na pasta o tempo todo, pois elas 
criam um campo magnético onde você aprende por osmose. NÃO LEIA nenhuma delas, pois 
isso desfaz imediatamente o campo e você não vai aprender nada! 
2. Quando fizer trabalho em grupo, pendure-se em um grupo qualquer e não levante 
um dedo pra fazer o trabalho. Lembre-se de que mais tarde você vai ter de fazer 
prova, e não deve estar esgotado de tanto pensar em algoritmos! 
 
3. Não entre nunca na biblioteca, nem pra devolver livro dos outros. Você pode achar algo 
interessante pra ler, e isso arruinaria o seu final de semana. 
4. O laboratório de programação deve ser evitado a todo o custo! Além do desgastante 
contato direto com o computador, você ainda corre o risco de aprender a programar de 
verdade, portanto proteja-se! 
 
 
5. Listas de exercícios são para os incompetentes, por isso você pode 
ignorá-las. Dê risada quando encontrar alguém fazendo. 
 
 
6. Use a aula pra colocar a conversa em dia, afinal você nunca sabe quando vai ver seus amigos outra 
vez. 
6. Se você for menino, não anote nada e copie o caderno de uma guria. Se você for guria, não 
anote nada e copie de outra guria. Afinal, para ir bem nas provas basta decorar a matéria! 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 113/115 
 
8. Apostilas não são para ler, apenas colocar embaixo do travesseiro já produz um 
enorme efeito mental. Mais que isso é exagero... 
9. Entregar qualquer coisa com uma capinha legal e espaçamento duplo é certeza de boa 
nota. Junte suas páginas preferidas da Internet e não esqueça de usar um clips colorido. 
Afinal, na Internet sempre tem o trabalho que você precisa, e o professor não vai nem 
olhar mesmo... 
 
10. Só os incompetentes estudam muitos dias antes da prova. Os feras de verdade nem 
estudam, e evitam ficar com olheiras. 
 
11. Se recuse a ler qualquer coisa que esteja escrita em inglês! Afinal, você só vê filme 
estrangeiro se tiver legenda, e com livros deveria ser a mesma coisa... Até mesmo porque tudo 
que você precisa pode ser encontrado nos livros em português. 
 
12. Lembre-se sempre da 
poesia: 
 
Se der sol vá pro shopping, 
Se chover fique na cama, 
Ou então vá para o bar, 
Não tem jeito de passar. 
 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 114/115 
A.2. Sobre os autores 
- Marcia A. S. Bissaco 
Interesses: 
 
Processamento de Imagens Médicas; 
Controle de Qualidade de Sistemas de Imagens; 
Informática Aplicada à Saúde; 
Modelagem e Simulação. 
Informática na Educação 
 
Formação Acadêmica: 
 
Tecnologia em Processamento de Dados 
UNESP - Universidade Estadual Paulista 
Bauru - SP – Brasil 
Período: 1991 – 1993 
 
Mestrado em Engenharia Elétrica 
Universidade de São Paulo – USP 
Escola de Engenharia de São Carlos - Depto. de Engenharia Elétrica 
São Carlos – SP – Brasil 
Trabalho: "Simulação Computacional da Nitidez de Imagens Radiológicas para Controle de Qualidade 
em Sistemas de Registro de Imagem" (Engenharia Biomédica) 
Período: 1995 -1997 
Bolsa CNPq 
 
Doutorado em Física Aplicada 
Instituto de Física de São Carlos – IFSC 
Universidade de São Paulo – USP 
Trabalho: "Simulação do Desempenho das Combinações Écran-Filme em Função do Feixe de Raios 
X Incidente" (Engenharia Biomédica) 
Período: 1997 – 2001 
Bolsa FAPESP 
 
Pós-Doutorado 
Núcleo de Pesquisas Tecnológicas - NPT 
Universidade de Mogi das Cruzes - UMC 
Trabalho: "Simulação" 
Período: 2001 – 2003 
Bolsa FAPESP 
 
Atualmente: 
Professor assistente doutor e pesquisadora no Mestrado e Doutorado da Universidade de Mogi das 
Cruzes. 
Algoritmos para Estruturas Simples 
 
Última atualização: 22/4/2008; 11:51:05 115/115

Mais conteúdos dessa disciplina