Buscar

Introdução à Construção de Algoritmos

Prévia do material em texto

Universidade Federal Fluminense 
Centro Tecnológico 
Instituto de Computação 
Departamento de Ciência da Computação 
 
 
 
 
 
 
 
 
 
Construção de Algoritmos 
Versão 2005 
 
 
 
 
 
 
 
 
 
 
 
 
Prof. Leonardo Cruz da Costa 
 
 1
Capítulo I - INTRODUÇÃO 
 
 
 É comum seguirmos roteiros para solucionar problemas no dia a dia. Esses roteiros 
descrevem ações que devem ser seguidas uma a após a outra com o objetivo de produzir o resultado 
desejado. Os roteiros podem ser textuais ou gráficos. 
 
Exemplo 1: Como fazer um pato no tucupi? 
 
Tempere o pato com o alho, a cebola, sal e pimenta-do-reino. 
Aqueça o forno em temperatura média. 
Coloque o pato numa assadeira com um pouco de óleo e leve ao forno até dourar. 
Numa panela, coloque o tucupi e os pedaços de pato assado. 
Leve ao fogo alto até ferver. 
Abaixe o fogo e cozinhe até ficar macio. 
Acrescente mais tucupi, se necessário. 
Junte as folhas de jambu e cozinhe até que os talos fiquem macios. 
Sirva com farinha de mandioca. 
 
Exemplo 2: Como chegar no sítio do amigo para churrasco de final de semana? 
 
Siga pela rodovia RJ 104 
No quilometro 98 virar a esquerda na primeira entrada de terra 
Siga até a primeira ponte. 
Atravesse a ponte e dobre à esquerda. 
Procure a placa sítio Animação. 
 
Exemplo 3: Como deve ser a instalação do sistema de aquecimento de água solar para piscinas. 
 
1. Moto Bomba 
2. Filtro 
3. Registro de Esfera ou Gaveta 
4. Válvula de Retenção 
5. Saída de água fria para as placas 
6. Retorno de água quente das placas 
7. Tubulação de retorno para piscina. 
 2
 
 
Exemplo 4: Roteiro para trocar uma lâmpada queimada. 
 
a) Primeira versão 
1. Remover a lâmpada queimada; 
2. Colocar a nova lâmpada; 
 
Mas isto está muito abstrato. O que é remover uma lâmpada? 
 
b) Segunda versão (um pouco mais detalhada) 
 
1. Buscar uma lâmpada nova; 
2. Pegar uma escada 
3. Posicionar a escada debaixo da lâmpada; 
4. Subir na escada até que a lâmpada possa ser alcançada; 
5. Girar a lâmpada queimada no sentido anti-horário até que se solte; 
6. Colocar a lâmpada nova girando-a no sentido horário; 
7. Descer da escada; 
 
E se a lâmpada não estiver queimada? 
 
c) Terceira versão (um pouco mais detalhada) 
 
1. Buscar uma lâmpada nova; 
2. Pegar uma escada 
3. Posicionar a escada debaixo da lâmpada; 
4. Acionar o interruptor; 
5. Se a lâmpada não acender, então 
6. Subir na escada até que a lâmpada possa ser alcançada; 
7. Girar a lâmpada queimada no sentido anti-horário até que se solte; 
8. Colocar a lâmpada nova girando-a no sentido horário; 
9. Descer da escada; 
 
 
 
 
 3
Nessa versão algumas ações estão vinculadas à condição lâmpada não acender, ou seja, 
somente efetua-se a troca da lâmpada caso a condição lâmpada queimada (lâmpada não acender) 
for verdadeira. 
Se a condição lâmpada não acender for falsa, nada mais será realizado. 
Apesar do algoritmo estar correto, ele pode ser melhorado uma vez que somente seria necessário 
pegar a escada, caso a condição lâmpada não acender seja verdadeira: 
d) Quarta versão (um pouco mais detalhada) 
1. Acionar o interruptor; 
2. Se a lâmpada não acender, então 
2.1 Buscar uma lâmpada nova; 
2.2 Pegar uma escada 
2.3 Posicionar a escada debaixo da lâmpada; 
2.4 Subir na escada até que a lâmpada possa ser alcançada; 
2.5 Girar a lâmpada queimada no sentido anti-horário até que se solte; 
2.6 Colocar a lâmpada nova girando-a no sentido horário; 
2.7 Descer da escada; 
 
Exercícios 
 
1. Elaborar um algoritmo que mostre os passos necessários para trocar um pneu furado. 
 
2. Um homem precisa atravessar um rio com um barco que possui capacidade apenas para 
carregar ele mesmo e mais uma de suas três cargas, que são: um lobo, um bode e um maço de 
alfafa. O que o homem deve fazer para conseguir atravessar o rio sem permite que fiquem em 
uma margem, o lobo e a cabra, a cabra e a alfafa? Escreva um algoritmo mostrando a resposta, 
ou seja, indicando todas as ações necessárias para efetuar a travessia segura. 
 
I.1 – ALGORITMOS 
 
Computadores muitas vezes chamados erroneamente de cérebro eletrônico, não têm, pelo 
menos até agora, a capacidade de resolver por conta própria problemas. Assim, como outras 
máquinas, eles precisam ser instruídos, para que através de um conjunto de ações possam 
solucionar o problema. 
 
Para resolvermos problemas, através de computador, é necessário que uma seqüência de 
operações seja criada, semelhante aos roteiros apresentados anteriormente. A solução é obtida 
através de duas etapas: 
 
• A criação de uma seqüência de operações que, quando executada, produz o resultado do 
problema (a esta seqüência se dá o nome de algoritmo). 
• A execução, propriamente dita, da seqüência de operações. 
 
“Um algoritmo é a descrição de um padrão de comportamento, expressado em termos de um 
repertório bem definido e finito de ações primitivas, as quais damos por certo que podem ser 
executadas” (Guimarães e Lages). 
 
 4
Um algoritmo pode ser definido também como: “uma seqüência ordenada, sem 
ambigüidade, de passos que levam à solução de um dado problema” (Tremblay e Bunt [5]). 
 
As definições acima mostram que um algoritmo precisa: 
 
• Ter inicio e fim; 
• Ser descritas em termos de ações não ambíguas e bem definida; 
• Que as ações sigam uma seqüência ordenada. 
 
Essas três características são entendidas de maneira fáceis, pois: 
 
1. Ter inicio e fim: um computador não pode ficar infinitamente buscando uma solução 
para o problema; 
 
2. Ações não ambíguas e bem definidas: não poder haver dúvidas da ação a ser tomada. 
Observe o passo no exemplo 1 - Coloque o pato numa assadeira com um pouco de óleo e 
leve ao forno até dourar. O que significa um pouco de óleo: 1 ml., 2 ml, 10 litros, etc. 
 
3. Seqüência ordenada: as ações devem seguir sempre a mesma ordem de execução, pois se 
 A ordem fosse aleatória não se pode garantir a solução adequada para o problema. 
 
I.2 REPRESENTAÇÃO DE ALGORITMOS 
 
 O processo de resolução de um problema através de computador começa no entendimento 
de forma clara do problema, para qual é projetado um algoritmo, que futuramente será codificado 
em uma linguagem de programação, transformando-se dessa forma em um programa. 
 
 
 
 
 
 
 
 Fase de resolução do Problema Fase de Implementação 
 (utilização de uma linguagem de Programação) 
 
Assim, um algoritmo é representado de duas maneiras diferentes (mas equivalentes): 
 
 A primeira representação deve ser fácil para as pessoas, construir, modificar e testar as 
ações (usada na construção em si). 
 
A segunda deve ser entendida por computadores – é usada na fase de execução, quando da 
transformação (codificação) em programa (tradução de um algoritmo em linguagem de 
programação). 
 
Situações semelhantes ocorrem em outras áreas do conhecimento. Na Arquitetura e na 
Engenharia, os profissionais elaboram várias plantas (baixa, corte, situação, etc.) da mesma 
 5
edificação para diferentes fins. A edificação é a solução projetada e cada planta, embora diferente, é 
a representação da mesma edificação. 
 
 
1) A primeira representação: usadas pelas pessoas 
 
A linguagem natural (português, inglês): utilizada nas receitas, instruções, etc.. Para 
solução de problemas em computação apresenta um inconveniente: a ambigüidade de alguns 
termos. Assim, restrições são impostas à linguagem natural, objetivando a redução de ambigüidade, 
criando uma pseudolinguagem (ou, ainda, pseudocódigo, Portugol). 
Representações gráficas: são bastante recomendáveis já que um desenho muitas vezes 
substitui, com vantagem, mil palavras. 
 
a) fluxograma 
b) diagramas de Nassi-Shneidermamc) método de Jackson 
d) diagramas de Warnier-Or 
 
 
2) A segunda representação: usada pelo computador 
 
Utiliza-se uma linguagem de programação (Pascal, Cobol, C, Java, C# etc.), para representar 
algoritmos, transformando-os em programas. 
 
 
 6
 
Capítulo II - CONSTRUÇÃO DE ALGORITMOS 
 
Como vimos anteriormente quando queremos resolver um problema utilizando um 
computador, devemos construir uma seqüência de passos (algoritmo) que conduz à solução do 
problema. Uma das vantagens de utilizar algoritmos é que a partir dele o programador pode 
codificá-lo em qualquer linguagem de programação. 
 
OS PASSOS DE UM ALGORITMO 
 
Um algoritmo é uma seqüência de passos, onde cada passo é de uma das três naturezas seguintes: 
 
a) uma operação elementar; 
b) uma operação de controle especificando uma seleção entre seqüências de passos; 
c) uma operação de controle especificando a repetição de uma seqüência de passos; 
 
A) OPERAÇÕES ELEMENTARES 
 
A principal motivação para o desenvolvimento e uso dos computadores foi a necessidade de 
manipular com eficiência grandes quantidade de dados. Os dados podem ser de diversos tipos: 
primitivos, agregados homogêneos, agregados heterogêneos, registros, arquivos de registros, etc.. 
 
 O conjunto dos tipos primitivos que compõe uma linguagem de programação pode mudar 
dependendo da linguagem de programação. A seguir apresentamos os tipos primitivos que 
normalmente são usados na construção de algoritmos. 
 
Inteiro: denota todo o conjunto de valores numéricos que pertencem ao conjunto dos 
números inteiros (negativos, positivos ou nulos) 
Ex: Quantidade de alunos: 50 
 Quantidade de professores de um curso: 35 
Real: denota todo o conjunto de valores numéricos que pertença ao conjunto dos números 
reais (negativos, positivos ou nulos) 
Ex: Média de um aluno: 8.5 
Salário de uma pessoa: R$ 300.00 
Caractere: denota todo o conjunto de valores que pertença ao conjunto dos caracteres 
(Alfabéticos: A-Z, a-z; numéricos: 0-9; e especiais: ?, @," ~, etc.) 
Ex: Nome do aluno: "João Antônio" 
 Orientação: "usar somente caneta preta no preenchimento" 
 
 7
Lógico: denota duas situações (biestável: verdadeiro - falso, 0-1) 
Ex: Questão: Certa 
 Situação: Reprovado 
 
1. Determinar qual o tipo de dado presente nas sentenças abaixo: 
 
a) Há na porta do banheiro uma placa ‘HOMENS’. 
b) O salário de Maria é de R$ 1030,98. 
c) Uma maneira econômica de representar o sexo de uma pessoa é através de ‘F’ ou ‘M’. 
d) A sala de aula fica no segundo andar. 
e) O planeta Terra tem a forma quadrada. 
 
 
 Entende-se por operações elementares todos os cálculos com um resultado produzido, 
entrada e saída de dados; movimentação de dados. 
 
A.1) ATRIBUIÇÃO 
 
 A memória permite o armazenamento de dados (valores), que podem ser obtidos pelos 
dispositivos de entrada e saída, ou calculados em operações no programa e posteriormente 
colocados à disposição do usuário. Para que a memória possa armazenar os dados, uma área é 
reservada na memória e associada a identificadores (nomes) usados no programa. A esta área se dá 
o nome de Tabela de Símbolos (TS). 
 
Exemplo: 
 
Suponha que desejamos utilizar os valores numéricos 1 e 15. Para que esses possam 
permanecer na memória e posteriormente serem utilizados para algum tipo de processamento, são 
criados dois nomes SOMA e RESULTADO. Cada linha na Tabela de Símbolo (TS), representa uma 
área na memória que guardará os valores e será manipulada (referenciada, identificada) pelo nome 
dado (SOMA e RESULTADO), como representado a seguir: 
 
 Tabela de Símbolos 
NOME TIPO VALOR 
SOMA Inteiro 1 
RESULTADO Inteiro 15 
 
 Quando necessitarmos de manipular o valor 15 devemos utilizar o nome Resultado e para o 
valor 1, Soma. 
 
 A esses nomes criados pelo programador, são chamados de identificadores. Pois, 
identificam o local (área de memória) onde o valor está armazenado. 
 
 8
A criação de nomes é livre? 
 
 Não, o programador deve seguir uma regra para construir os identificador, ou em outras 
palavras os nomes utilizados no algoritmo. 
 
 Regra para Construção de Identificadores 
 
 
Onde: LETRA = A ... Z 
 DÌGITO = 0 ... 9 
 
Observações: 
 
a) O primeiro caractere do nome sempre será uma letra; 
 
b) Não existe uma restrição a quantidade de letras ou dígitos que formam o nome; 
 
d) O nome não pode possuir espaço em branco ou símbolos especiais, tais como: ( ) # $ % 
& * ‘ “ = + [ ^ ´ ` ; 
 
e) Não poderão ser usados outros caracteres a não ser letras e números; 
 
f) As letras sempre serão maiúsculas; 
 
g) Não há acentuação dos nomes; 
 
h) Não poderá ser um nome uma palavra reservada a uma instrução. Isto é, os nomes 
devem ser diferentes de: inteiro, real, caractere, lógico, enquanto, faça, fim-
enquanto, declare, repetir, leia, escreva, etc.. 
 
 
1. Assinale os identificadores válidos: 
 
a) (X), b) x c) ah! d) "aluno" e) #55 
f)KM/L g)UYT h) AB*C i) CEP h) dia/mes/ano 
 
Como especificamos cada linha da tabela de símbolos? 
 
A associação do identificador ao local que receberá o dado na tabela de símbolo (definição 
de cada linha da tabela) é chamada de declaração (é a compilação da declaração que produz uma 
TS correspondente a um programa). 
 
 9
Em pseudocódigo as declarações podem ser representadas como: 
 
 
DECLARE <identificador1, identificador2, ...> COMO <tipo> 
 
 
Onde tipo define as características dos dados a serem manipulados, pode ser: inteiro, real, caracter, 
lógico, entre outros. 
 
Assim, para definirmos que SOMA e RESULTADO, são os nomes utilizados no algoritmo e 
que ambos representarão números inteiros, é necessário utilizarmos a declaração: 
 
DECLARE SOMA, RESULTADO COMO INTEIRO 
 
Essa declaração produzirá a seguinte tabela: 
 
NOME TIPO VALOR 
SOMA Inteiro 
RESULTADO Inteiro 
 
Outros exemplos: 
 
DECLARE X, Y, Z, TOTAL COMO REAL 
 
NOME TIPO VALOR 
X Real 
Y Real 
Z Real 
 
DECLARE T COMO LOGICO 
 
NOME TIPO VALOR 
T LÓGICO 
 
DECLARE A, B, TOTALH, TOTALM COMO INTEIRO 
DECLARE X, K COMO REAL 
DECLARE S COMO CARATER 
 
NOME TIPO VALOR 
A INTEIRO 
B INTEIRO 
TOTALH INTEIRO 
TOTALM INTEIRO 
X REAL 
K REAL 
S CARATER 
 
Observe que a declaração irá produzir uma tabela com os nomes definidos, porém os valores 
não aparecem, não estão especificados. 
 10
 
Como os valores serão colocados na tabela? 
 
A associação de um valor a um nome (declarado) se dá através da atribuição. 
ATRIBUIÇÃO: associa um identificador a uma expressão (valor). 
 
forma geral: 
 
 Identificador ← <Expressão> 
 
O símbolo ← deve ser lido como “recebe o valor de” 
 
Exemplo: 
A ← 14 
VALOR ← 10.5 
SOMA ← 5 
RESULTADO ← SOMA 
 
Simulação do Funcionamento das Atribuições 
 
NOME ATRIBUTOS VALOR 
A Inteiro, variável 14 
Valor Real, variável 10.5 
Soma Inteiro, variável 5 
Resultado Inteiro, variável 5 
 
Analisando a forma geral da atribuição: Identificador ← <Expressão> percebe-se que é 
possível construir expressões e atribuir a um nome. Por exemplo: A ← 14 + 10 
 
Como essa instrução é executada? 
 
A ← 14 + 10 
 
Avalia-se, em primeiro lugar, a “expressão” à direita do sinal de atribuição (←) 
 
 
 
 
 
 
 
A ← 
14 
 + 
24 
10 
 
e em segundo lugar, o valor computado da expressão é atribuído ao identificador na TS. 
 
 Como o valor associado ao nome pode mudar durante a “execução” do algoritmo (ou 
programa), usamos o termo variável. 
 
 11
 Expressão pode ser: aritméticas, relacionais e lógicas. 
 
A.1.1) EXPRESSÕES ARITMÉTICAS 
 
 São aquelas, que quando avaliadas, produzem resultados numéricos. Constituemna 
aplicação de operadores aritméticos a operandos que têm valores numéricos. 
 
Operadores Aritméticos: + (soma) 
 - (subtração) 
 * (multiplicação) 
 / (divisão com resultado decimal) 
 
 Os operadores * / têm maior prioridade e os parênteses podem ser usados para alterar a 
prioridade. As Expressões Aritméticas podem ser definidas como: 
 
1. Os números são expressões aritméticas; 
 
2. Variáveis numéricas com valor atribuído são expressões aritméticas; 
 
 
3. Se X e Y são expressões aritméticas, e se não há conflito de tipos, então: 
 (X) 
X * Y 
 X / Y 
 X + Y 
 X - Y são também expressões aritméticas. 
 
4. Funções aritméticas são expressões aritméticas. 
 
 
Exercícios 
 
1. Para o algoritmo abaixo, crie a tabela de símbolos e mostre os valores para cada variável. 
 
DECLARE S, R, T COMO INTEIRO 
S ← 10 
R ← 1 
T ← R + S 
S ← T 
R ← S 
 
 
2. Para o algoritmo abaixo, crie a tabela de símbolos e mostre os valores para cada variável. 
 
DECLARE S, R, T COMO INTEIRO 
S ← 10 
R ← 1 
R ← R + 1 
 12
R ← R + 1 
R ← R + 1 
R ← R + 1 
R ← R + 1 
R ← R + 1 
R ← S 
S ← R 
 
3. Escreva algoritmos que resolvam as expressões matemáticas a seguir usando apenas 
operações de adição e subtração. 
a) 10 X 3 
b) 25 X 7 
c) 10 / 2 
d) 15 / 5 
A.1.2) EXPRESSÕES RELACIONAIS 
 
 Expressões Relacionais são na verdade comparações; quando avaliadas produzem resultado 
Verdadeiro ou Falso. Como o resultado de uma expressão relacional é um valor lógico, logo ela é 
uma expressão lógica (como definida anteriormente). 
 
Operadores Relacionais: > ( maior que ) 
 >= ( maior ou igual) 
 < ( menor que) 
 <= ( menor ou igual) 
 = ( igual a ) 
 <> ( não igual ) 
 
Expressões Relacionais podem ser definidas como: 
 
1. Sendo A e B expressões aritméticas, então: 
 
 A > B (A maior que B) 
 A >= B (A maior ou igual a B) 
 A < B (A menor que B) 
 A <= B (A menor ou igual a B) 
 A = B (A igual a B) 
 A <> B (A não igual a B), são expressões relacionais. 
 
Atenção: Pela definição apresentada acima, onde os operandos de uma expressão relacional, 
são sempre expressões aritméticas, a expressão 5 > X > 1, não é válida ! 
 
A.1.3) EXPRESSÕES LÓGICAS (CONDIÇÕES) 
 
 Expressões lógicas (ou condições) são composições de operandos e operadores lógicos. 
 
Operadores Lógicos: and ( e), or (ou), not (não) 
 13
 
Expressões Lógicas podem ser definidas como: 
 
1. Variáveis lógicas com valor atribuído e constante lógica (verdade ou falso) são expressões 
lógicas; 
 
2. Expressões Relacionais são expressões lógicas; 
 
3. Sendo A e B expressões lógicas, então: 
 
 (A) 
 A and B 
 A or B 
 not A, são expressões lógicas. 
 
 
Resultado das operações Lógicas 
 
AND verdade falso 
Verdade verdade falso 
Falso falso falso 
 
 
OR verdade falso 
verdade verdade verdade 
falso verdade falso 
 
 
NOT verdade falso 
 falso verdade 
 
A.1.3.1) NOÇÕES DE LÓGICA MATEMÁTICA 
CONCEITO DE PROPOSIÇÃO 
 
Proposição: sentenças declarativas afirmativas (expressão de uma linguagem) da qual tenha sentido 
afirmar que seja verdadeira ou que seja falsa. 
 
¾ A lua é quadrada. 
¾ A neve é branca 
¾ Matemática é uma ciência. 
 
Não são objetos de estudo as sentenças interrogativas ou exclamativas. 
OS SÍMBOLOS DA LING. DO CÁLCULO PROPOSICIONAL 
 
Variáveis Proposicionais 
letras latinas minúsculas p, q, r, s, .... para indicar as proposições (fórmulas atômicas) . 
 
Exemplos: 
A lua é quadrada : p 
A neve é branca : q 
Matemática é uma ciência: r 
 
Conectivos Lógicos: As fórmulas atômicas podem ser combinadas entre si e, para representar tais 
combinações usaremos os conectivos lógicos: e , ou , não 
 14
 
Exemplos: 
 
A lua é quadrada e a neve é branca. : p e q 
A lua é quadrada ou a neve é branca. : p ou q 
A lua não é quadrada. : não p 
 
Obtendo o valor lógico 
 
 
7+5>7 OU 2=1 Î Verdadeiro 
 
 
 
V 
OU 
V 
F 
 
 7+5>7 E 2=1 Î Falso NÃO( 2 = 1)Î Verdadeiro 
 
 
 
 
V 
 E 
F 
F 
 NÃO 
V
F
 
15
 
A.1.4 ) PRIORIDADE ENTRE OS OPERADORES 
 
PRIORIDADE OPERADORES 
0 Parênteses e Funções 
1 + e – (operadores unários) 
2 Potenciação 
3 * e / 
4 + e – (soma e subtração) 
5 Operadores relacionais 
6 Não 
7 And 
8 Or 
 
A.1.5 ) EXERCÍCIOS RESOLVIDOS 
 
1. Sendo p = verdade, q = falso, r = verdade, avalie as expressões abaixo: 
 
a) p e q 
b) p ou r 
c) p ou q 
d) r ou (p e q) ou p 
e) (r ou r) e (p ou p) 
f) (p e r) ou (q e r) 
g) não (p e q) 
h) (não (p e r) ou (q e r)) 
i) (não p e não r) ou q 
 
2. Suponha que A, B e C, I, J, K sejam variáveis. Dados A = 4.0, B = 6.0 e I = 3, qual seria o valor 
final dos comandos seguintes? 
 
a) C ← A * B – I C= _______ d) K ← ( B / A + 2) K = _______ 
b) K ← I / 4 * 2 K = _______ e) J ← ( A / ( 5 / I )) J = _______ 
c) C ← B / A + 1 C = _______ 
 
 
 
3. Escreva o comando de atribuição para as expressões abaixo: 
 
a) 1+
b
a b) 
dc
ba
−
+
 
 
c) 
f
ed
c
ba
−
+
 d) 
dc
ba −+ 
 16
 
4. Encontre os erros dos seguintes comandos de atribuição. 
DECLARE A COMO LÓGICO 
DECLARE B, C COMO REAL 
DECLARE D COMO INTEIRO 
A ← B = C 
D ← B 
C + 1 ← B + C 
C e B ← 3,5 
 
5. Para o algoritmo abaixo monte a TS e indique que valores a variáveis assumirão: 
DECLARE A, B, C COMO INTEIRO 
A ← 0 
 B ← A + 10 
 C ← B – 1 
 A ← 1 
 B ← A + 10 
 C ← B – 1 
 
6. Em quais dos seguintes pares é importante à ordem dos comandos? Em outras palavras, quando 
se muda a ordem dos comandos, os resultados finais se alteram? ( Supor X # Y # Z) 
a) X ← Y 
Y ← Z 
 
Fazendo X ← Y e depois Y ← Z é o mesmo que Y ← Z e depois X ← Y ? 
 
Resolvendo: 1º caso: X ← Y e depois Y ← Z 
 
 suponha X=1 Y =2 Z= 3 
 
NOME TIPO VALOR 
X Inteiro 1 
Y Inteiro 2 
Z Inteiro 3 
 
 17
 
Fazendo X ← Y 
 
NOME TIPO VALOR 
X Inteiro 2 
Y Inteiro 2 
Z Inteiro 3 
 
Fazendo Y ← Z 
 
NOME TIPO VALOR 
X Inteiro 2 
Y Inteiro 3 
Z Inteiro 3 
 
Supondo X=1 Y =2 Z= 3 e fazendo X ← Y e depois Y ← Z, temos X=2, Y=3 e Z=3 
 
2º caso : Y ← Z e depois X ← Y 
 
Supondo X=1 Y =2 Z= 3, porém invertendo os comandos (fazendo Y ← Z e depois X ← Y ) 
 
Resolvendo: suponha X=1 Y =2 Z= 3 
 
NOME TIPO VALOR 
X Inteiro 1 
Y Inteiro 2 
Z Inteiro 3 
 
Fazendo Y ← Z 
 
NOME TIPO VALOR 
X Inteiro 1 
Y Inteiro 3 
Z Inteiro 3 
 
Fazendo X ← Y 
 
NOME TIPO VALOR 
X Inteiro 3 
Y Inteiro 3 
Z Inteiro 3 
 
Supondo X=1 Y =2 Z= 3 e fazendo Y ← Z e depois X ← Y, temos X= Y= Z=3 
 
Concluindo: mudar a ordem desses comandos produzirá resultado diferente. 
 
Faça os itens b, c, d 
 
 18
b) X ← Z c) X ← Y d) X ← Y 
 X ← Y Z ← X Z ← Y 
 
7. Uma conta telefônica é composta dos seguintes custos: 
assinatura: R$ 32,00 
impulsos: R$ 0,09 por impulso que exceder a 90 
chamadas p/ celular: R$0,35 por impulso 
Monte a fórmula para calcular o valor da conta para 254 impulsos e 23 chamadas para celular. 
Elabore um algoritmo que calcula o valor total. 
 
8. Um eletricista precisa comprar fio que irá passar, pelo telhado, por toda a diagonal de uma casa 
de formato retangular. Como ele não tem condições de medir a diagonal com precisão, a solução 
alternativa que ele encontrou foi medir os lados da casa, sabendo que a diagonal pode ser calculada 
com base nos lados pelo Teorema de Pitágoras (a2 = b2 + c2). Considerando que a casa mede11,5 x 
6,3 metros, faça um algoritmo que calcule a quantidade mínima necessária de fio a ser comprada. 
 
9. Um professor atribui pesos de 1 a 4 para as notas de quatro avaliações. A nota é calculada por 
meio da média ponderada (N1 + N2*2 + N3*3 + N4*4)/10, onde N1 é a nota da primeira avaliação, 
N2 a da segunda, etc..Um aluno tirou as seguintes notas: 8 - 7,5 - 10 - 9. Faça um algoritmo que 
calcula a média deste aluno. 
 19
A.2) OPERAÇÕES DE ENTRADA E SAÍDA DE DADOS 
 
 As unidades de entrada e saída de dados são dispositivos que possibilitam a comunicação 
entre o usuário e o computador. Através delas, o usuário consegue fornecer dados (entrada de 
dados) para que a máquina possa processar, assim como, obtém resultados (saída de dados) do 
processamento. As operações de entrada e saída permitem escrever algoritmos mais genéricos. 
 
 A utilização dessas unidades é representada nos algoritmos pelos passos de leitura e escrita. 
A.2.1) LEITURA 
 
 Forma Geral: 
 
 
LEIA <lista de variáveis> 
 
Exemplo 1: 
 LEIA A 
Simulação do Funcionamento da Leitura 
Obtém do meio externo, a informação disponível para a leitura. 
 
A forma como é feita a leitura depende de como os dados estão organizados. 
 
 
 
 
 
 
 
 
 
ENTRADA DE DADOS: 32 LEIA A 
e armazena na(s) variável(eis) definida. 
 
NOME TIPO VALOR 
A INTEIRO 32 
A leitura é uma atribuição cujos valores estão externos ao algoritmo. 
 
 
 
 
Exemplo 2: 
 20
 
 
 
 
 
 
ENTRADA DE DADOS: 32 45 60 LEIA A, B, C 
 
Resultado da leitura: 
Valores lidos (32, 45, e 60) armazenados nas variáveis A, B, C (na TS) respectivamente. 
 
NOME ATRIBUTOS VALOR 
A Inteiro 32 
B Inteiro 45 
C Inteiro 60 
 
Exemplo 3 : 
 
 
 
 
 
 
ENTRADA DE DADOS: 32 45 LEIA A, B 
 60 LEIA C 
 
 
 
 
Resultado da leitura: 
Valores lidos (32, 45, e 60) armazenados nas variáveis A, B, C (na TS) respectivamente. 
 
Exemplo 4 : 
 
 
 
 
 
 
ENTRADA DE DADOS: 32 LEIA A 
 45 LEIA B 
 60 LEIA C 
 
 
 
 
 
 
Valores lidos (32, 45, e 60) armazenados nas variáveis A, B, C (na TS) respectivamente. 
 21
 
 
 
 
Exemplo 5 : 
 
 
 
 
 
 
ENTRADA DE DADOS: 32 LEIA A 
 60 LEIA B 
 45 LEIA C 
 
 
 
 
 
Resultado da leitura: 
Valores lidos (32, 60, e 45) armazenados nas variáveis A, B, C (na TS) respectivamente 
 
 
Exemplo 6 : 
 
 
 
 
 
 
ENTRADA DE DADOS: 32 LEIA A 
 60 LEIA B 
 LEIA C (não há definição de dado p/ C) 
 
 
 
 
Resultado da leitura: 
Valores lidos (32, 60) armazenados nas variáveis A, B respectivamente, porém como não há 
especificação de dado para C, um erro de leitura de dados ocorre. 
 
 22
A.2.2) ESCRITA 
 
 Forma Geral: 
 
 
 ESCREVA <lista de variáveis> 
 
 
Imprime no dispositivo de saída (vídeo, impressora, etc.) o conteúdo da(s) variável(eis) 
especificadas. Textos explicativos podem também ser impressos e intercalados com as variáveis. 
 
Exemplo: 
 
ESCREVA A,B,C Lista de variáveis 
 
NOME ATRIBUTOS VALOR 
A Inteiro 32 
B Inteiro 45 
C Inteiro 60 
 
 
 
32 45 60 
 
 
 
 
 
Resultado da Escrita: Os valores contidos em A, B, C (na TS) são exibidos (vídeo, 
impressora, etc.) na mesma linha. 
ESCREVA A 
ESCREVA B 
ESCREVA C 
 
 
NOME ATRIBUTOS VALOR 
A Inteiro 32 
B Inteiro 45 
C Inteiro 60 
 
 
 
32 
45 
60 
 
Resultado da Escrita: Os valores contidos em A, B, C (na TS) são exibidos (vídeo, 
impressora, etc.), porém cada instrução ESCREVA produz uma linha na saída. 
 23
É possível utilizar mensagens no comando ESCREVA. 
 
ESCREVA ‘VALOR =’, A 
 
NOME ATRIBUTOS VALOR 
A Inteiro 32 
B Inteiro 45 
C Inteiro 60 
 
 
VALOR = 32 
 
 
 
Resultado da Escrita: O valor contido em A (na TS) é exibido (vídeo, impressora, etc.), 
juntamente com a mensagem “VALOR =” . 
 
ESCREVA ‘A =’, A 
 
NOME ATRIBUTOS VALOR 
A Inteiro 32 
B Inteiro 45 
C Inteiro 60 
 
 
 A = 32 
 
 
Resultado da Escrita: O valor contido em A (na TS) é exibido (vídeo, impressora, etc.), 
juntamente com a mensagem “A =” . 
 
ESCREVA ‘A =’, A, ‘B =’,B 
 
NOME ATRIBUTOS VALOR 
A Inteiro 32 
B Inteiro 45 
C Inteiro 60 
 
 
 
A = 32 B= 45 
 
 
Resultado da Escrita: O valor contido em A e B (na TS) são exibidos (vídeo, impressora, 
etc.), juntamente com a mensagem “A =” e ‘B=’ respectivamente, na mesma linha. 
 
ESCREVA ‘A =’, A, ‘B =’, B 
ESCREVA ‘C =’, C 
 
 24
NOME ATRIBUTOS VALOR 
A Inteiro 32 
B Inteiro 45 
C Inteiro 60 
 
 
 
A = 32 B= 45 
C = 60 
 
 
 
Resultado da Escrita: O valor contido em A e B (na TS) são exibidos (vídeo, impressora, 
etc.), juntamente com a mensagem “A =” e ‘B=’ respectivamente, na mesma linha e o valor de C é 
apresentado em uma nova linha juntamente com sua mensagem. 
ESCREVA ‘A =’, A 
ESCREVA ‘B =’, B 
ESCREVA ‘C =’, C 
 
NOME ATRIBUTOS VALOR 
A Inteiro 32 
B Inteiro 45 
C Inteiro 60 
 
A = 32 
B = 45 
C = 60 
 
 
Resultado da Escrita: O valor contido em A, B e C (na TS) são exibidos (vídeo, impressora, 
etc.), juntamente com as suas respectivas mensagens cada um em sua linha. 
A instrução escreva pode ser usada para escrever mensagens, sem a utilização de variáveis. 
 ESCREVA ‘DADOS INVALIDOS’ 
 
 DADOS INVALIDOS’
 25
A.3) EXEMPLOS DE ALGORITMOS 
 
1) Leia um valor inteiro e escreva um algoritmo para escrevê-lo. 
 
DECLARE A COMO INTEIRO 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
 
 
 
 
Simulação do algoritmo 
Cria a área que 
armazenará o valor a 
ser lido 
Escreve o valor lido, 
acompanhado de uma mensagem 
Lê da entrada de 
dados o valor 
 
DECLARE A COMO INTEIRO 
 
NOME TIPO VALOR 
A INTEIRO 
 
 
LEIA A 
 
Lê um valor da entrada de dados. Para testar o algoritmo é válido utilizar valores numéricos 
aleatórios, porém, o algoritmo deve funcionar para qualquer valor. 
 
 
 
 
 
 
entrada de dados: 80 LEIA A 
e armazena na variável definida. 
 
NOME TIPO VALOR 
A INTEIRO 80 
 
 
ESCREVA ‘O VALOR LIDO = ‘, A 
 
NOME ATRIBUTOS VALOR 
A Inteiro 80 
 
 
 
 O VALOR LIDO = 80 
 
 26
 
2) Leia dois valores e escreva um algoritmo para escrevê-los. 
 
 
DECLARE A, B COMO INTEIRO 
Cria as variáveis que 
armazenarão os valores 
lidos 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA B 
ESCREVA ‘O VALOR LIDO = ‘, B 
Lê da entrada de dados o 
primeiro valor 
Escreve o primeiro valor lido, 
acompanhado de uma mensagem 
Lê da entrada de dados 
o segundo valor Escreve o segundo valor lido, acompanhado de uma mensagem 
 
 
 
 
 
 
 
Simulação do algoritmo 
 
DECLARE A, B COMO INTEIRO 
 
NOME TIPO VALOR 
A INTEIRO 
BINTEIRO 
 
 
LEIA A 
 
Lê um valor da entrada de dados. Para testar o algoritmo é válido utilizar valores numéricos 
aleatórios, porém, o algoritmo deve funcionar para qualquer valor inteiro lido. Observe que dois 
valores são colocados na entrada de dados ( 78 e 65 ), um em cada linha. 
 
 
 
 
 
 
entrada de dados: 78 LEIA A 
 65 
e armazena na variável definida. 
 
NOME TIPO VALOR 
A INTEIRO 78 
B INTEIRO 
 
 27
 
ESCREVA ‘O VALOR LIDO = ‘, A 
 
NOME TIPO VALOR 
A INTEIRO 78 
B INTEIRO 
 
 
 
 O VALOR LIDO = 78 
 
 
 
LEIA B 
 
Lê um valor da entrada de dados. Observe que o segundo valor será lido, o primeiro já foi utilizado 
pela primeira leitura. 
 
 
 
 
 
 
entrada de dados: 65 LEIA B 
 
e armazena na variável definida. 
 
NOME TIPO VALOR 
A INTEIRO 78 
B INTEIRO 65 
 
 
 
ESCREVA ‘O VALOR LIDO = ‘, B 
 
NOME TIPO VALOR 
A INTEIRO 78 
B INTEIRO 65 
 
 
 
 O VALOR LIDO = 78 
 O VALOR LIDO = 65 
 
 28
3) Leia dois valores e escreva um algoritmo para escrevê-los (variação da solução do exercício 
anterior). 
 
A modificação aqui apresentada está na utilização de apenas uma variável que armazenará os 
valores lidos. Anteriormente os dois valores eram lidos através de duas variáveis ( A e B ). Isso 
pode ser feito pelo seguinte motivo: após a escrita do valor contido em A, não há necessidade de 
conservar esse valor em A, podendo ser substituído por outro. 
 
 
 
 
DECLARE A COMO INTEIRO 
Cria a variável que 
armazenará os valores 
lidos 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
Lê da entrada de dados o 
primeiro valor 
Escreve o primeiro valor lido, 
acompanhado de uma mensagem 
Lê da entrada de dados 
o segundo valor Escreve o segundo valor lido, 
acompanhado de uma mensagem 
 
 
 
 
 
 
 
Simulação do algoritmo 
 
DECLARE A COMO INTEIRO 
 
NOME TIPO VALOR 
A INTEIRO 
 
 
LEIA A 
 
Lê um valor da entrada de dados. Observe que dois valores são colocados na entrada de dados ( 78 
e 65 ) 
 
 
 
 
 
 
entrada de dados: 78 LEIA A 
 65 
e armazena na variável definida. 
 
NOME TIPO VALOR 
A INTEIRO 78 
 29
ESCREVA ‘O VALOR LIDO = ‘, A 
 
NOME TIPO VALOR 
A INTEIRO 78 
 
 
 
 O VALOR LIDO = 78 
 
 
 
LEIA A 
 
Lê um valor da entrada de dados. Observe que o segundo valor será lido, o primeiro já foi utilizado 
pela primeira leitura. 
 
 
 
 
 
 
entrada de dados: 65 LEIA A 
 
e armazena na variável definida. Observe que o valor armazenado em A ( 78 ) é “perdido”, 
substituído pelo novo valor obtido através da leitura. 
 
NOME TIPO VALOR 
A INTEIRO 65 
 
 
 
ESCREVA ‘O VALOR LIDO = ‘, A 
 
NOME TIPO VALOR 
A INTEIRO 65 
 
 
 
 O VALOR LIDO = 78 
 O VALOR LIDO = 65 
 
 
 
 
 
 30
 
4) Leia dois valores inteiros e calcule a soma. 
 
 
 
 
 
 
 
 
DECLARE V1, V2, RESULTADO COMO INTEIRO 
LEIA V1, V2 
RESULTADO ← V1 + V2 
ESCREVA ‘ VALORES LIDOS =’, V1, V2 
ESCREVA ‘A SOMA DOS VALORES = ‘, RESULTADO 
Escreve os valores lidos, 
acompanhados de uma mensagem 
Cria as áreas (V1, V2) que 
armazenarão os valores a serem lidos. 
E a área que armazenará a soma 
(RESULTADO) 
Escreve a soma (RESULTADO) 
calculada 
Lê da entrada de dados os 
valores que serão somados 
Cria a atribuição, onde a expressão é 
justamente a soma entre os dois valores 
lidos, representados por V1 e V2 e 
quando avaliada a expressão o valor 
resultante será armazenado em 
RESULTADO 
 
 
 
 
 
 
Simulação do algoritmo 
 
DECLARE V1, V2, RESULTADO COMO INTEIRO 
 
NOME TIPO VALOR 
V1 INTEIRO 
V2 INTEIRO 
RESULTADO INTEIRO 
 
 
LEIA V1, V2 
 
Lê dois valores da entrada de dados. Para testar o algoritmo utilizamos dois valores numéricos 
aleatórios, porém, o algoritmo deve funcionar para qualquer valor. 
 
 
 
 
 
 
entrada de dados: 3 5 LEIA V1, V2 
e armazena na variável definida. 
 
 
 31
 
NOME TIPO VALOR 
V1 INTEIRO 3 
V2 INTEIRO 5 
RESULTADO INTEIRO 
 
 
RESULTADO ← V1 + V2 
 
Avalia-se, em primeiro lugar, a “expressão” à direita do sinal de atribuição (←); 
 
 V1 V2 
 
 
 
 
 
 
RESULTADO ← 
3 
 + 
8
5
 
e em segundo lugar, o valor computado da expressão é atribuído ao identificador. 
 
NOME TIPO VALOR 
V1 INTEIRO 3 
V2 INTEIRO 5 
RESULTADO INTEIRO 8 
 
 
ESCREVA ‘ VALORES LIDOS =’, V1, V2 
 
NOME TIPO VALOR 
V1 INTEIRO 3 
V2 INTEIRO 5 
RESULTADO INTEIRO 8 
 
 
 
 VALORES LIDOS = 3 5 
 
 32
ESCREVA ‘A SOMA DOS VALORES = ‘, RESULTADO 
 
 
NOME TIPO VALOR 
V1 INTEIRO 3 
V2 INTEIRO 5 
RESULTADO INTEIRO 8 
 
 
 
 VALORES LIDOS = 3 5 
A SOMA DOS VALORES = 8 
 
 
 
5) Leia dois valores inteiros e calcule a soma (variação da solução do exercício anterior). 
 
DECLARE V1, V2, RESULTADO COMO INTEIRO 
LEIA V1 
LEIA V2 
RESULTADO ← V1 + V2 
ESCREVA ‘ VALORES LIDOS =’, V1, V2 
ESCREVA ‘A SOMA DOS VALORES = ‘, RESULTADO 
 
A modificação aqui apresentada está na maneira como os valores são agora lidos. 
Anteriormente os dois valores eram lidos através de uma única leitura ( LEIA V1, V2 ). Nessa 
versão cada valor é lido através de uma leitura, isso provoca alteração na maneira de organizar os 
dados na entrada de dados. 
 
ANTES: os dados eram colocados na mesma linha ( uma leitura ) 
 
 
 
 
 
 
Entrada de dados: 3 5 LEIA V1, V2 
 
 
AGORA: cada dado é colocado em uma linha ( duas leituras → duas linhas ) 
 
Entrada de dados: 3 
 5 
 
 
 
 
 
 33
 
 
 
 
 
Entrada de dados: 3 LEIA V1 
 
 
 
 
 
 
 5 LEIA V2 
 
6) Leia dois valores inteiros e calcule a soma (variação da solução do exercício anterior). 
 
DECLARE V1, V2, RESULTADO COMO INTEIRO 
LEIA V1 
LEIA V2 
RESULTADO ← V1 + V2 
ESCREVA ‘ PRIMEIRO VALOR LIDO =’, V1 
ESCREVA ‘ SEGUNDO VALOR LIDO =’, V2 
ESCREVA ‘A SOMA DOS VALORES = ‘, RESULTADO 
A modificação aqui apresentada está na maneira como os valores são agora escritos. 
Anteriormente os dois valores eram escritos através de uma única escrita (ESCREVA ‘ VALORES 
LIDOS =’, V1, V2). Nessa versão cada valor é apresentado através de uma escrita, isso provoca 
alteração na maneira de apresentar os dados na saída. 
 
ANTES 
 
ESCREVA ‘ VALORES LIDOS =’, V1, V2 
 
NOME TIPO VALOR 
V1 INTEIRO 3 
V2 INTEIRO 5 
RESULTADO INTEIRO 8 
 
 
 
 VALORES LIDOS = 3 5 
 
 34
AGORA 
 
ESCREVA ‘ PRIMEIRO VALOR LIDO =’, V1 
 
NOME TIPO VALOR 
V1 INTEIRO 3 
V2 INTEIRO 5 
RESULTADO INTEIRO 8 
 
 
 
 PRIMEIRO VALOR LIDO = 3 
 
 
 
 
ESCREVA ‘ SEGUNDO VALOR LIDO =’, V2 
 
NOME TIPO VALOR 
V1 INTEIRO 3V2 INTEIRO 5 
RESULTADO INTEIRO 8 
 
 
 
 PRIMEIRO VALOR LIDO = 3 
SEGUNDO VALOR LIDO = 8 
 
 
7) Escreva um algoritmo para calcular a área de um círculo, onde o valor do raio é lido. 
 
Etapas para construção do algoritmo: 
1- criar as variáveis; 
2- calcular a área utilizando a fórmula: área = π * raio2, onde π = 3.1415 
3- apresentar a área calculada. 
 
Solução: 
 
DECLARE RAIO, AREA COMO REAIS 
LEIA RAIO 
AREA ← 3.1415 * RAIO * RAIO 
ESCREVA AREA 
 
 
Variação da Solução 
 
A solução acima pode ser alterada criando um nome ( PI ) que conterá o valor de π. 
 
DECLARE RAIO, AREA, PI COMO REAIS 
 35
LEIA RAIO 
PI ← 3.1415 
AREA ← PI * RAIO * RAIO 
ESCREVA AREA 
A.4) EXERCÍCIOS PROPOSTOS 
 
1. Como deveria estar organizados os dados, na entrada de dados, se no algoritmo as leituras 
fossem: 
 
a) LEIA K, MM, T 
 LEIA Y, I 
 
b) LEIA J 
LEIA T, O 
 
c) LEIA NOME, SEXO, SALARIO 
 
d) LEIA A 
 LEIA A 
 
e) LEIA A, B 
LEIA C 
LEIA A,B 
 
2. Como seriam impressos os dados, na saída de dados, se no algoritmo as impressões fossem: 
 
a) ESCREVA A 
ESCREVA B 
 
b) ESCREVA ‘NAO SEI’ 
 
c) ESCREVA A, B, C 
 
 
3. Com base nos dados abaixo, qual o valor final de cada variável: 
 
a) LEIA K, MM, T ENTRADA DE DADOS: 1 2 3 4 
 LEIA Y, I 5 6 
 
b) LEIA J ENTRADA DE DADOS: 1 2 3 4 
LEIA T, O, R 5 6 7 
 
c) LEIA NOME, SEXO, SALARIO ENTRADA DE DADOS: 1 2 3 4 5 
 
d) LEIA A ENTRADA DE DADOS: 1 2 3 4 
 LEIA A 
 
f) LEIA A ENTRADA DE DADOS: 1 
 36
LEIA A 2 
LEIA A, B 3 4 
 
g) LEIA A, B ENTRADA DE DADOS: 1 5 
LEIA A 2 
LEIA A, B 3 4 
LEIA A,B 1 5 
 
 
4. Simular a execução do seguinte algoritmo, como os valores de entrada apresentados abaixo: 
 
DECLARE A, B, C COMO INTEIROS 
DECLARE MEDIA COMO REAL ENTRADA 
LEIA A, B, C 4 2 6 
ESCREVA A, B, C 10 6 0 
MEDIA ← ( A + B + C ) /3 7 8 7 
ESCREVA MEDIA 
LEIA A, B, C 
ESCREVA A, B, C 
MEDIA ← ( A + B + C ) /3 
ESCREVA MEDIA 
 
5. Escreva um algoritmo que leia uma temperatura em graus Celsius e converta para graus 
Fahrenheit, cuja fórmula de conversão é: ( 9 * graus Celsius + 160 ) /5. 
 
6. Escreva um algoritmo que leia uma temperatura em graus Fahrenheit e converta para graus 
Celsius, cuja fórmula de conversão é: ( graus Fahrenheit – 32) * (5/9). 
 
7. Escreva um algoritmo que leia três valores, representando o comprimento, largura e altura 
de uma caixa retangular e calcule o seu volume, cuja fórmula é: VOLUME = 
COMPRIMENTO * LARGURA * ALTURA 
 
8. Escreva um algoritmo que leia dois valores A e B, e efetue a troca dos valores de forma que 
A passe a possuir o valor de B e B passa a possuir o valor de A. Apresente os valores antes e 
depois da troca. 
 
9. Escreva um algoritmo que leia dois valores PRESTAÇÂO e TAXA, representando o valor 
de uma prestação e a taxa de juros cobrada pelo atraso. Calcule a prestação atrasada pela 
fórmula: ATRASO = PRESTAÇÂO + ( PRESTAÇÂO * TAXA /100). 
 
10. Escreva um algoritmo que leia dois valores, representando o raio e altura de uma lata e 
calcule o seu volume, cuja fórmula é: VOLUME = 3.1415 * RAIO2 * ALTURA 
 
 
11. Escreva um algoritmo para ler, calcular e escrever a média aritmética entre quatro números. 
 
12. Escrever um algoritmo que lê 3 valores a, b, c que são lados de um triângulo e calcule a 
área deste triângulo. 
 s s a s b s c( )( )(− − − ) , onde S = (A+B+C)/2 
 37
13. O custo ao consumidor de um carro novo é a soma do custo de fábrica com a percentagem 
do distribuidor e dos impostos ( aplicados ao custo de fábrica). Supondo que a percentagem 
do distribuidor seja de 12% e os impostos de 45%, escrever um algoritmo para ler o custo de 
fábrica do carro e escrever o custo ao consumidor. 
 
14. Num curso, a nota final de um estudante é calculada a partir de seu desempenho em três 
aspectos. Existe um exame que vale 30% da nota final, nota de trabalho que vale 20% da 
nota final e o exame final que vale 50% da nota final. Escreva um algoritmo que leia as três 
notas de um aluno e calcule sua nota final. 
 
15. Escreva um algoritmo que calcule o valor da conversão em dólar de um valor lido em real. 
O algoritmo deverá ler o valor da cotação do dólar e a quantidade de reais. 
 
16. Escreva um algoritmo que dados os litros gastos, os quilômetros percorridos por um 
automóvel e o valor do litro de combustível, calcule os gastos de combustível em Reais/km. 
 
17. Escreva um algoritmo para ler o número de eleitores de um município, o número de votos 
brancos, nulos e válidos. Calcular e escrever o percentual que cada um representa em 
relação ao total de eleitores. 
 
18. Escreva um algoritmo para ler o salário mensal de um funcionário e o percentual de reajuste. 
Calcular e escrever o valor do novo salário. 
 
19. Uma revendedora de carros usados, paga a seus funcionários vendedores, um salário fixo 
por mês, mais uma comissão também fixa para cada carro vendido e mais 5% do valor das 
vendas por ele efetuadas. Escrever um algoritmo que leia o número de carros por ele 
vendidos, o valor total de suas vendas, o salário fixo e a comissão que recebe por carro 
vendido. Escreva um algoritmo que calcule e escreva o salário mensal do vendedor. 
 
20. Escreva um algoritmo que leia dois lados de um triângulo retângulo e calcula a hipotenusa. 
 
21. Uma criança quer saber qual é a soma de todas as idades que ela já teve. Elaborar algoritmo 
que lê uma idade qualquer e responde rapidamente a essa pergunta [fórmula para calcular a 
soma dos N primeiros números inteiros: N (N+1)/2]. 
 
22. Uma conta telefônica é composta dos seguintes custos: 
assinatura: R$ 21,40 
impulsos: R$ 0,03 por impulso que exceder a 90 
interurbanos 
chamadas p/ celular: R$0,40 por impulso 
elabore um algoritmo que lê os impulsos excedentes, valor de interurbanos e quantidade de 
chamadas para celular e calcula o valor da conta. 
B) SELEÇÃO 
 
Também chamada de estrutura de decisão, a seleção é utilizada quando a execução de uma 
seqüência de passos depende do valor de uma condição (trechos alternativos que são ou não 
processados de acordo com o resultado da condição). A seleção pode ser de um ramo ou de dois 
ramos. 
 38
B.1) SELEÇÃO DE UM RAMO 
 
 É utilizada quando uma seqüência de passos depender de uma condição verdadeira, e não há 
seqüência a executar ser executada quando a condição for falsa. Forma geral: 
 
 SE <condição> ENTÃO 
 <seqüência de passos> 
 FIM-SE 
 
Esquema de Funcionamento da Seleção de um Ramo 
 
Exemplo: 
 
1) Escreva um algoritmo que leia um valor e escreva-o caso seja maior que 10. 
 
DECLARE A COMO INTEIRO A > 10 ? 
LEIA A 
SE A > 10 ENTÃO SIM 
 ESCREVA A 
FIM-SE 
 ESCREVA A 
 
 
 NÃO 
 
 
 
Simulação do algoritmo 
 
DECLARE A COMO INTEIRO 
 
NOME TIPO VALOR 
A INTEIRO 
 
 39
 
LEIA A 
 
Lê um valor da entrada de dados. 
 
 
 
 
 
 
entrada de dados: 78 LEIA A 
e armazena na variável definida. 
 
NOME TIPO VALOR 
A INTEIRO 78 
 
SE A > 10 ENTÃO 
verifica se o valor contido em A é maior que 10, caso seja verdadeiro executa os comandos contidos 
na seleção, neste caso: ESCREVA A. Caso contrário ignora os comandos contidos na seleção.B.2) SELEÇÃO DE DOIS RAMOS 
 
Utiliza-se quando se deseja executar uma seqüência de passos se uma condição é verdadeira, 
e se executa uma outra seqüência se a condição é falsa. 
Forma geral: 
 
 SE <condição> ENTÃO 
 <seqüência de passos1> 
 SENÃO 
 <seqüência de passos2> 
 FIM-SE 
 
 
 
 
 
 
 
Esquema de Funcionamento da Seleção de dois Ramos 
 40
 
 
Exemplo: 
 
1) Escreva um algoritmo que leia um valor e escreva-o indicando se ele é maior ou igual a 10 e 
menor que 10. 
 
DECLARE A COMO INTEIRO 
LEIA A 
SE A >= 10 ENTÃO 
 ESCREVA 'VALOR MAIOR OU IGUAL A 10' , A 
SENÃO 
 ESCREVA 'VALOR MENOR QUE 10' , A 
FIM-SE 
 
 NÃO A >= 10 ? SIM 
 
 
 
 
 
 ESCREVA 'VALOR ESCREVA 'VALOR 
 MENOR QUE 10' , A MAIOR OU IGUAL 
 A 10', A 
 
 41
 
B.3) EXEMPLOS DE ALGORITMOS 
 
1) Faça um algoritmo que leia um numero inteiro e o imprima se ele for menor que 5. 
 
 DECLARE NUMERO COMO INTEIRO 
 LEIA NUMERO 
 SE (NUMERO < 5 ) ENTÃO 
 ESCREVA NUMERO 
 FIM-SE 
 
2) Elaborar um algoritmo que lê uma nota e indique a situação do aluno. Se a nota obtida for de 6 a 
10, aprovado; caso contrário, reprovado. 
 
 DECLARE NOTA COMO INTEIRO 
 LEIA NOTA 
 SE (NOTA < 6 ) ENTÃO 
 ESCREVA ‘ALUNO REPROVADO’ 
 SENÂO 
 ESCREVA ‘ALUNO APROVADO’ 
 FIM-SE 
 
3) Elaborar um algoritmo que lê uma nota e indique a situação do aluno. Se a nota obtida for de 6 a 
10, aprovado; se 4 ou 5.9 vs e menor que 4 reprovado. 
 
 DECLARE NOTA COMO INTEIRO 
 LEIA NOTA 
 SE (NOTA > 6 ) ENTÃO 
 ESCREVA ‘ALUNO APROVADO’ 
 SENÂO 
 SE ( ( NOTA < 6 ) E ( NOTA >= 4) ENTÃO 
 ESCREVA ‘ALUNO EM VS’ 
 SENÂO 
 ESCREVA ‘ALUNO REPROVADO’ 
 FIM_SE 
 FIM-SE 
 
4) Faça um algoritmo que leia dois números inteiros e descubra o maior. 
 
DECLARE VALOR1, VALOR2 COMO INTEIRO 
LEIA VALOR1, VALOR2 
SE VALOR1> VALOR2 ENTÃO 
 ESCREVA VALOR1 
SENÃO 
 ESCREVA VALOR2 
FIM-SE 
 
 42
Variação da solução 
 
 
DECLARE VALOR1, VALOR2, MAIOR COMO INTEIRO 
LEIA VALOR1, VALOR2 
SE VALOR1> VALOR2 ENTÃO 
 MAIOR← VALOR1 
SENÃO 
 MAIOR← VALOR2 
FIM-SE 
ESCREVA MAIOR 
 
5) Faça um algoritmo que obtenha três números reais e informe o maior deles. 
 
DECLARE NUMA, NUMB, NUMC, MAIOR COMO REAL 
LEIA (NUMA, NUMB, NUMC 
SE NUMA > NUMB ENTÃO 
 MAIOR ← NUMA 
SENÃO 
 MAIOR ← NUMB 
FIM-SE 
SE NUNC > MAIOR ENTÃO 
 MAIOR ←NUMC 
FIM-SE 
ESCREVA MAIOR 
 
Variação da solução 
 
 DECLARE NUMA, NUMB, NUMC, MAIOR COMO REAL 
LEIA NUMA, NUMB, NUMC 
SE ((NUMA > NUMB) and (NUMA > NUMC)) ENTÃO 
 MAIOR ← NUMA 
SENÃO 
 SE ((NUMB > NUMA) and (NUMB > NUMC)) ENTÃO 
 MAIOR ← NUMB 
 SENÃO 
 MAIOR ← NUMC 
 FIM-SE 
FIM-SE 
ESCREVA MAIOR 
 43
Aninhamentos 
Um aninhamento é o fato de se ter qualquer uma seleção dentro de outra seleção. Para que 
o aninhamento esteja correto é necessário que a construção interna esteja completamente 
embutida na construção externa. Exemplo: 
 
Aninhamento correto 
 
SE < condição 1 > ENTÃO 
 SE < condição 2 > ENTÃO 
 SE < condição 3 > ENTÃO 
 <seqüência de passos 3 > 
 SENÃO 
 <seqüência de passos 4 > 
 FIM-SE 
 SENÃO 
 SE < condição 4 > ENTÃO 
 <seqüência de passos 5 > 
 SENÃO 
 SE < condição 5 > ENTÃO 
 <seqüência de passos 6 > 
 SENÃO 
 <seqüência de passos 7 > 
 FIM-SE 
 FIM-SE 
 FIM-SE 
SENÃO 
 SE < condição 6 > ENTÃO 
 <seqüência de passos 8 > 
 SENÃO 
 SE < condição 7 > ENTÃO 
 <seqüência de passos 9 > 
 SENÃO 
 SE < condição 8 > ENTÃO 
 <seqüência de passos 10 > 
 SENÃO 
 <seqüência de passos 11 > 
 FIM-SE 
 FIM-SE 
 FIM-SE 
 FIM-SE 
 44
Aninhamento incorreto 
 
SE < condição 1 > ENTÃO 
 SE < condição 2 > ENTÃO 
 SE < condição 3 > ENTÃO 
 < seqüência de passos 3 > 
 SENÃO 
 <seqüência de passos 4 > 
 SENÃO 
 SE < condição 4 > ENTÃO 
 <seqüência de passos 5 > 
 SENÃO 
 SE < condição 5 > ENTÃO 
 <seqüência de passos 6 > 
 SENÃO 
 <seqüência de passos 7 > 
 FIM-SE 
 FIM-SE 
 FIM-SE 
 FIM-SE 
 FIM-SE 
O FIM-SE que deveria 
estar nessa posição e foi 
colocado erradamente em 
outra posição 
Aninhamento 
errado. 
Observe as 
linhas se 
cruzando 
 
 
1) Fazer um algoritmo que leia três valores inteiros, distintos entre si, determine e imprima o menor 
deles: 
 
 
DECLARE A,B,C, MENOR COMO INTEIRO 
 
LEIA A, B,C 
 
determine o menor número 
SE A<B e A<C ENTÃO 
 MENOR ←A 
SENÃO 
 determine o menor dentre B e C 
FIM-SE 
SE B < C ENTÃO 
 MENOR ← B 
SENÃO 
 MENOR ←C 
FIM-SE
 
ESCREVA MENOR 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 45
 
2) Dados três valores inteiros X,Y,Z, verificar se eles podem ser os comprimentos dos lados de um 
triângulo e, se forem , verificar se é um triângulo eqüilátero, isósceles ou escalenos. Se eles não 
formarem um triângulo, escrever uma mensagem. Sabe-se que o comprimento de cada lado de um 
triângulo é menor do que a soma dos comprimentos dos outros dois lados. 
 
 
DECLARE X,Y,Z COMO INTEIRO 
LEIA X,Y,Z 
SE ((X<Y+Z) e (Y <X+Z) e (Z<X+Y)) ENTÃO 
 verifique o tipo do triângulo 
SENÃO 
 Escreva ‘Não Existe Triângulo’ 
FIM-SE 
SE X=Y E X = Z ENTÃO 
 ESCREVA ‘TRIANG. QUILATERO’ 
SENÃO 
 Verifique se ele é escaleno ou isóscele 
 
FIM-SE 
SE X=Y OU X = Z OU Y = Z ENTÃO 
 ESCREVA ‘TRIANG. ISOSCELES’ 
SENÃO 
 ESCREVA ‘TRIANG. ISCALENO’ 
FIM-SE 
 
 
 
 
 
 
 
 
 
 
 
 
 
3) Dados três valores distintos, coloca-los em ordem crescente: 
 
 
DECLARE L, M, N, AUXILIAR COMO INTEIRO 
LEIA L, M, N 
Armazene em L o menor valor 
Armazene em M o valor intermediário e em N o maior valor 
ESCREVA L,M,N 
SE L > M ou L > N ENTÃO 
 SE M < N ENTÃO 
 troque L com M 
 SENÃO 
 troque L com N 
 FIM-SE 
FIM-SE 
AUXILIAR ← L 
L ← M 
M ←AUXILIAR 
AUXILIAR ← L 
L ← N 
N ← AUXILIAR 
SE M > N ENTÃO 
 AUXILIAR – M 
 M ← N 
 N ← AUXILIAR 
FIM-SE 
 
 
 
 
 
 
 
 
 
 
 
 
 46
B.4) EXERCÍCIOS PROPOSTOS 
 
1. Escreva um algoritmo que leia um valor verifique se ele se encontra no intervalo entre (5 ,20]. 
2.Elaborar um algoritmo que leia uma letra que pode ser ‘F’ ou ‘J’ e mostra a mensagem “pessoa 
física”, “pessoa jurídica” ou "tipo de pessoa inválido", conforme o caso. 
3. Elaborar um algoritmo que lê 2 valores a e b e os escreve com a mensagem: ‘São múltiplos’ ou 
‘Não são múltiplos’. 
4. Tendo como dados de entrada a altura e o sexo de uma pessoa (‘M’ masculino e ‘F’ feminino), 
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 
5. 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 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 500 nenhum crédito 
de 501 a 1000 20% do valor do saldo médio 
de 1001 a 1600 30% do valor do saldo médio 
acima de 1601 40% do valor do saldo médio 
6. Elabore um algoritmo que lê um número que representa uma senha, verifica se a senha está 
correta ou não, comparando-a com a senha 34567, e informa "Acesso autorizado" ou "Acesso 
negado", conforme o caso. 
7. O departamento que controla o índice de poluição do meio ambiente 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 1o grupo são intimadas a suspenderem 
suas atividades, se o índice cresce para 0,4 as do 1o e 2o grupo são intimadas a suspenderem 
suas atividades e se o índice atingir 0,5 todos os 3 grupos devem ser notificados a paralisarem 
suas atividades. Escrever um algoritmo que lê o índice de poluição medido e emite a notificação 
adequada aos diferentes grupos de empresas. 
8. Um sistema de equações lineares da forma : 
 Ax + By = C 
 Dx + Ey = F 
 
pode ser resolvido utilizando-se as seguintes fórmulas. 
 
 EC - BF AF - CD 
 X = ------------------ e Y = --------------------------- 
 AE - BD AE - BD 
 
 47
Escreva um algoritmo para ler o conjunto de coeficientes (A, B, C, D, E, F) e imprimir a solução, 
ou seja, X e Y. Verifique as situações onde X e Y não podem ser determinados. 
9. Elaborar um algoritmo que lê uma altura e mostra uma mensagem conforme a faixa de altura: 
 menos que 1,60 “baixa estatura” 
 de 1,60 a 1,85 “estatura normal” 
mais que 1,85 “alta estatura” 
10.Uma faculdade atribui menções aos alunos conforme a faixa de notas que tenha atingido: 
9,0 a 10: SS (superior) 
7,0 a 8,9: MS (médio superior) 
5, 0 a 6,9: MM (médio) 
3,0 a 4,9: MI (médio inferior) 
0,1 a 2,9: II (inferior) 
0 : SR (sem rendimento). 
Faça um algoritmo que lê a nota e informa a menção. 
11.Um imposto é calculado com base na seguinte tabela: 
 
 Até 1.200,00 isento 
 de 1.201,00 a 2.500,00 10% 
 de 2.501,00 a 5.000,00 15% 
 acima de 5.000,00 20%. 
Escreva um algoritmo que leia o valor base e calcule o imposto a pagar. 
12.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. Se a nota 
obtida for de 6 a 10, aprovado; se 4 ou 5.9, vs e menor que 4 reprovado. 
13.Um ano é bissexto se for divisível por 4 exceto os séculos, que são bissextos se forem múltiplos 
de 400. Escreva um algoritmo que determina se um ano é bissexto. 
14.Escrever um algoritmo que lê três valores representado o dia, mês e ano de uma data e verifica 
se ela está correta. Supor que o mês de fevereiro tem 29 dias. 
15.Escrever um algoritmo que lê um valor em reais e calcula qual o menor número possível de 
notas de 100, 50, 10, 5 e 1 em que o valor lido pode ser decomposto. Escrever o valor lido e a 
relação de notas necessárias. 
16.Dadas 8 bolas tendo uma deles peso diferente das demais. Dizer qual é essa bola e se ela é mais 
pesada ou mais leve que as outras e qual o seu peso. Imprimir também o peso de todas as bolas. 
 
 
 
 48
C) OPERAÇÕES DE REPETIÇÃO 
 
 
1) Leia 5 valores e escreva um algoritmo para escrevê-los. 
 
O algoritmo é construído criando apenas uma variável cujos valores são lidos, escritos e 
descartados pela leitura do próximo valor. 
 
DECLARE A COMO INTEIRO ENTRADA DE DADOS 
LEIA A 17 
ESCREVA ‘O VALOR LIDO = ‘, A 34 
LEIA A 1 
ESCREVA ‘O VALOR LIDO = ‘, A 23 
LEIA A 78 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
 
O problema com a solução anterior, é que se a quantidade de valores a serem lidos crescer, o 
número de passos do algoritmo também crescerá. Por exemplo: Leia 10 valores e escreva um 
algoritmo para escrevê-los. 
 
DECLARE A COMO INTEIRO ENTRADA DE DADOS 
LEIA A 17 
ESCREVA ‘O VALOR LIDO = ‘, A 34 
LEIA A 1 
ESCREVA ‘O VALOR LIDO = ‘, A 23 
LEIA A 78 
ESCREVA ‘O VALOR LIDO = ‘, A 90 
LEIA A 2 
ESCREVA ‘O VALOR LIDO = ‘, A 5 
LEIA A 8 
ESCREVA ‘O VALOR LIDO = ‘, A 15 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
Observe no algoritmo anterior que um conjunto de passos se repete várias vezes: 
 
 49
DECLARE A COMO INTEIRO 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
 
Quando isso acontecer, isso é, uma seqüência de passos repetida, podemos utilizar as 
estruturas de repetição, que podem ser de 2 tipos: Número conhecido de repetição e número não 
conhecido de repetição. 
C.2) NÚMERO CONHECIDO DE REPETIÇÕES 
 
 Essa estrutura de repetição é utilizada quando se conhece exatamente o número de vezes que 
a seqüência será repetida. Forma geral: 
 
 REPETIR <especificação de vezes> 
 <seqüência de passos a ser repetida > 
 FIM-REPETIR 
 
No exemplo anterior, colocamos a seqüência de passos a ser repetida dentro da repetição: 
 
 DECLARE A COMO INTEIRO 
REPETIR <especificação de vezes> 
 
 LEIA A 
 ESCREVA ‘O VALOR LIDO = ‘, A CORPO DA REPETIÇÃO 
 
 FIM-REPETIR 
e especificamos o número de vezes que a seqüência deverá ser repetida: 
 
<especificação de vezes> <variável> = < valor inicial >, <valor final>, 
<incremento> 
 
 50
< variável > é um identificador ( nome ) que deve ser criado pelo programador. Essa variável 
também é chamada de controle de repetição. 
< valor inicial > é um valor inteiro. É o primeiro valor que a variável de controle de repetição 
assumirá. 
< valor final > é um valor inteiro. É o valor limite que a variável de controle de repetição assumirá. 
<incremento> é um valor inteiro. É valor que será adicionado ao valor variável de controle de 
repetição. 
 
Exemplos: 
 
a) I = 1, 10, 1 valores de I = 1 2 3 4 5 6 7 8 9 10 
 
Quantidade de valores de I ( 10 valores ), logo uma repetição seria executada 10 vezes. 
 
b) I = 10, 20, 1 valores de I = 10 11 12 13 14 15 16 17 18 19 20 
 
Quantidade de valores deI ( 11 valores ), logo uma repetição seria executada 11 vezes. 
 
c) I = 11, 20, 1 valores de I = 11 12 13 14 15 16 17 18 19 20 
 
Quantidade de valores de I ( 10 valores ), logo uma repetição seria executada 10 vezes. 
 
d) K = 1, 10, 2 valores de K = 1 3 5 7 9 
 
Quantidade de valores de K ( 5 valores ), logo uma repetição seria executada 5 vezes. 
 
e) JL = 1, 3, 1 valores de JL = 1 2 3 
 
Quantidade de valores de JL ( 3 valores ), logo uma repetição seria executada 3 vezes. 
 
f) JL = 1011, 1013, 1 valores de JL = 1011 1012 1013 
 
Quantidade de valores de JL ( 3 valores ), logo uma repetição seria executada 3 vezes. 
 
g) JL = 100, 102, 1 valores de JL = 100 101 102 
 
Quantidade de valores de JL ( 3 valores ), logo uma repetição seria executada 3 vezes. 
 
h) P = N, J, K A especificação dos valores de P e consequentemente o número de 
repetições dependerá de: 
1. É necessário que todas as variáveis (N, J, K) estejam declaradas como inteiras; 
2. Que tenham valores inteiros na TS. 
 
Obs.: O número de repetição está em função do número de valores que a variável de controle 
assumir. 
 51
No exemplo do algoritmo anterior: 
 
DECLARE A COMO INTEIRO 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A DECLARE A, I COMO INTEIRO 
ESCREVA ‘O VALOR LIDO = ‘, A EQUIVALE REPETIR I = 1, 10, 1 
LEIA A AO LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A ALGORITMO ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A FIM-REPETIR 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
 
 
Esquema de Funcionamento da Repetição Repetir 
 
 
 
 52
A partir do esquema de funcionamento anterior podemos simular o algoritmo abaixo: 
 
DECLARE A, I COMO INTEIRO 
REPETIR I = 1 ,10, 1 
 LEIA A 
 ESCREVA ‘O VALOR LIDO = ‘, A 
 FIM-REPETIR REPETIR I = 1 , 10, 1 
 
 Inicializa a variável de controle 
 
 I ← 1 
 
 
 
 Executa a seqüência de passos 
 
 LEIA A 
 ESCREVA ‘O VALOR LIDO = ‘, A 
 
 
 REPETIR I = 1 , 10, 1 
 
 Incrementa a variável de controle 
 
 I ← I + 1 
 
 
 
 Verifica se o novo valor da variável 
 de controle ultrapassou o valor 
 do limite 
 
 
 Sim 
 Sair da Repetição 
 
 
Simulação do algoritmo 
 
DECLARE A, I COMO INTEIRO 
 
NOME TIPO VALOR 
A INTEIRO 
I INTEIRO 
 
 
 
 
 
 53
 
REPETIR I = 1 ,10, 1 
Inicializa variável de controle ( passo vindo do esquema de func. da repetição), com valor inicial 
 
 I = 1, 10, 1 I ← 1 
 
NOME TIPO VALOR 
A INTEIRO 
I INTEIRO 1 
 
 
LEIA A 
 
Lê um valor da entrada de dados. Observe que os dez valores são colocados na entrada de dados ( 
17 34 1 23 78 90 2 5 8 15 ) 
 
 
 
 
entrada de dados: 17 LEIA A 
 34 
 1 
 23 
 78 
 90 
 2 
 5 
 8 
 15 
 
NOME TIPO VALOR 
A INTEIRO 17 
I INTEIRO 1 
 
 
ESCREVA ‘O VALOR LIDO = ‘, A 
 
NOME TIPO VALOR 
A INTEIRO 78 
 
 
 
 O VALOR LIDO = 17 
 
 
 
 
 
 54
FIM-REPETIR retorna ao passo REPETIR I = 1 ,10, 1 
 
REPETIR I = 1 ,10, 1 
incrementa a variável de controle ( passo vindo do esquema de func. da repetição), com valor de 
incremento. 
 
 I ← I + 1 I ← 1 + 1 2 
 
NOME TIPO VALOR 
A INTEIRO 17 
I INTEIRO 2 
 
 
 
Verifica se o novo valor de I ( 2 ) ultrapassa o valor do limite ( 10 ), caso ultrapasse para a 
repetição, caso negativo continue executando a repetição, no primeiro passo dentro da repetição. 
 
LEIA A 
 
 
 
 
entrada de dados: 34 LEIA A 
 1 
 23 
 78 
 90 
 2 
 5 
 8 
 15 
 
NOME TIPO VALOR 
A INTEIRO 34 
I INTEIRO 2 
 
ESCREVA ‘O VALOR LIDO = ‘, A 
 
NOME TIPO VALOR 
A INTEIRO 34 
I INTEIRO 2 
 
 
 O VALOR LIDO = 17 
 O VALOR LIDO = 34 
 
 
FIM-REPETIR retorna ao passo REPETIR I = 1 ,10, 1 
 
 55
REPETIR I = 1 ,10, 1 
incrementa a variável de controle ( passo vindo do esquema de func. da repetição), com valor de 
incremento. 
 
 I ← I + 1 I ← 2 + 1 3 
 
NOME TIPO VALOR 
A INTEIRO 17 
I INTEIRO 3 
 
 
Verifica se o novo valor de I ( 3 ) ultrapassa o valor do limite ( 10 ), caso ultrapasse, parar a 
repetição, caso negativo continue executando a repetição, no primeiro passo dentro da repetição 
(LEIA A). 
 
Assim, a repetição será executada ... 
 
Pularemos os passos intermediários e apresentamos a finalização da repetição ( I está com o valor 9, 
penúltima repetição e já foram lidos os 9 valores da entrada). 
 
REPETIR I = 1 ,10, 1 
incrementa a variável de controle ( passo vindo do esquema de func. da repetição), com valor de 
incremento. 
 
 I ← I + 1 I ← 9 + 1 10 
 
NOME TIPO VALOR 
A INTEIRO 8 
I INTEIRO 10 
 
Verifica se o novo valor de I ( 10 ) ultrapassa o valor do limite ( 10 ), caso ultrapasse, parar 
a repetição, caso negativo continue executando a repetição, no primeiro passo dentro da repetição. 
 
LEIA A 
(último valor a ser lido, observe que todos os valores da entrada de dados foram utilizados, lidos 
através das leituras ) 
 
 
 
entrada de dados: 15 LEIA A 
 
NOME TIPO VALOR 
A INTEIRO 15 
I INTEIRO 10 
 
ESCREVA ‘O VALOR LIDO = ‘, A 
 
NOME TIPO VALOR 
A INTEIRO 15 
 56
I INTEIRO 10 
 
 
 
 O VALOR LIDO = 17 
 O VALOR LIDO = 34 
 O VALOR LIDO = 1 
 O VALOR LIDO = 23 
 O VALOR LIDO = 78 
 O VALOR LIDO = 90 
 O VALOR LIDO = 2 
 O VALOR LIDO = 5 
 O VALOR LIDO = 8 
 O VALOR LIDO = 15 
 
 
 
 
FIM-REPETIR retorna ao passo REPETIR I = 1 ,10, 1 
 
REPETIR I = 1 ,10, 1 
incrementa a variável de controle ( passo vindo do esquema de func. da repetição), com valor de 
incremento. 
 
 I ← I + 1 I ← 10 + 1 11 
NOME TIPO VALOR 
A INTEIRO 17 
I INTEIRO 11 
 
 
Verifica se o novo valor de I ( 11 ) ultrapassa o valor do limite ( 10 ), caso ultrapasse para a 
repetição, caso negativo continue executando a repetição. Como ultrapassa encerra a repetição e 
continua executando o algoritmo no próximo passo. Como este não existe passo após a repetição, o 
algoritmo é encerrado. 
 
 
 
 
 
 
 
 
 
C.2.1) LEITURA DE DADOS X REPETIÇÂO 
 
 
 
 57
DECLARE A COMO INTEIRO ENTRADA DE DADOS 
LEIA A 17 ( 1ª leitura ) 
ESCREVA ‘O VALOR LIDO = ‘, A 34 ( 2ª leitura ) 
LEIA A 1 ( 3ª leitura ) 
ESCREVA ‘O VALOR LIDO = ‘, A 23 ( 4ª leitura) 
LEIA A 78 ( 5ª leitura ) 
ESCREVA ‘O VALOR LIDO = ‘, A 90 ( 6ª leitura) 
LEIA A 2 ( 7ª leitura ) 
ESCREVA ‘O VALOR LIDO = ‘, A 5 ( 8ª leitura ) 
LEIA A 8 ( 9ª leitura ) 
ESCREVA ‘O VALOR LIDO = ‘, A 15 ( 10ª leitura ) 
LEIAA 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
 
 
DECLARE A, I COMO INTEIRO 
REPETIR I = 1 ,10, 1 
 
 LEIA A 
 REPETIÇÃO 1ª 2ª 3ª 4ª 5ª 6ª 7ª 8ª 9ª 10ª 
 VALOR DO I 1 2 3 4 5 6 7 8 9 10 
 
 ESCREVA ‘O VALOR LIDO = ‘, A 
 
FIM-REPETIR 
 58
DECLARE A COMO INTEIRO ENTRADA DE DADOS 
LEIA A 17 ( 1ª leitura ) 
ESCREVA ‘O VALOR LIDO = ‘, A 34 ( 2ª leitura ) 
LEIA A 1 ( 3ª leitura ) 
ESCREVA ‘O VALOR LIDO = ‘, A 23 ( 4ª leitura) 
LEIA A 78 ( 5ª leitura ) 
ESCREVA ‘O VALOR LIDO = ‘, A 90 ( 6ª leitura) 
LEIA A 2 ( 7ª leitura ) 
ESCREVA ‘O VALOR LIDO = ‘, A 5 ( 8ª leitura ) 
LEIA A 8 ( 9ª leitura ) 
ESCREVA ‘O VALOR LIDO = ‘, A 15 ( 10ª leitura ) 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
 
 
DECLARE A, I COMO INTEIRO 
REPETIR I = 11 ,20, 1 
 
 LEIA A 
 REPETIÇÃO 1ª 2ª 3ª 4ª 5ª 6ª 7ª 8ª 9ª 10ª 
 VALOR DO I 11 12 13 14 15 16 17 18 19 20 
 
 ESCREVA ‘O VALOR LIDO = ‘, A 
 
FIM-REPETIR 
 
 
Observe que o valor do I não influência no valor que será lido. 
 
O primeiro valor lido será obtido pela primeira leitura (no primeiro algoritmo ) que é também 
obtido através da leitura quando a repetição executa pela primeira vez (segundo algoritmo) . 
 
 
 
 
 
 
 
 
 
 
 59
 
C.2.2) Exercícios Resolvidos 
 
1. Faça um algoritmo que obtenha 15 números inteiros e calcule o somatório. 
 
DECLARE VALOR, SOMA COMO INTEIRO 
SOMA ← 0 
REPETIR J = 1, 15 , 1 
 LEIA VALOR 
 SOMA ← SOMA + VALOR 
FIM-REPETIR 
ESCREVA SOMA 
 
 
2. Faça um algoritmo que leia 25 números inteiros e calcule o somatório dos números pares. 
 
DECLARE VALOR, SOMA COMO INTEIRO 
SOMA ← 0 
REPETIR J = 1, 25 , 1 
 LEIA VALOR 
 SE ( MOD( VALOR , 2) = 0 ENTÃO 
 SOMA ← SOMA + VALOR 
 FIM-SE 
FIM-REPETIR 
ESCREVA SOMA 
 
 
3. Faça um algoritmo que obtenha 5 números inteiros e informe o maior deles. 
 
DECLARE VALOR, MAIOR COMO INTEIRO 
LEIA VALOR 
MAIOR ← VALOR 
REPETIR J = 1,4, 1 
 LEIA VALOR 
 SE VALOR > MAIOR ENTÃO 
 MAIOR ← VALOR 
 FIM-SE 
FIM-REPETIR 
ESCREVA MAIOR 
 
 
 
 
 
 
 
 
 
 60
C.2.3) EXERCÍCIOS PROPOSTOS 
 
1. Dizer quantas repetições são especificadas e que valores as variáveis de controle de repetição 
assumirão, pelos seguintes comandos: 
 
a) REPETIR I = 8, 10, 2 
b) REPETIR J = 1, 2, 100 
c) REPETIR K = 2, 2, 2 
d) REPETIR A = 15, 11, 1 
e) REPETIR O = 1, 12, 3 
 
2. Para os algoritmos a seguir : 
 
DECLARE I, V1, V2, V3 COMO INTEIROS 
LEIA V1 
LEIA V2, V3 
REPETIR I = 1, 5, 2 
 LEIA V1, V2 , V3 
 ESCREVA V1, V2, V3 
FIM-REPETIR 
 
DECLARE I, V1, V2 COMO INTEIROS 
REPETIR I = 1, 5, 1 
 LEIA V1, V2 
 ESCREVA V1, V2 
FIM-REPETIR 
 
DECLARE I, V1, V2 COMO INTEIROS 
LEIA V1 
REPETIR I = 2, 1, 1 
 LEIA V1, V2 
 ESCREVA V1, V2 
FIM-REPETIR 
 
DECLARE I, V1, V2 COMO INTEIROS 
LEIA V1 
REPETIR I = 2, 4, 1 
 LEIA V1, V2 
FIM-REPETIR 
ESCREVA V1, V2 
 
DECLARE I, V1, V2 COMO INTEIROS 
LEIA V1, V2 
ESCREVA V1, V2 
REPETIR I = 1, 4, 1 
 LEIA V1, V2 
 ESCREVA V1, V2 
FIM-REPETIR 
ESCREVA V1, V2 
 61
 
Responda 
 
a) Quantos valores são lidos para V1 ? 
b) Qual o total de valores lidos ? 
c) Quantas linhas são impressas ? 
d) Que valores I possuirá ? 
e) Qual deve ser a organização dos dados de entrada ? 
 
3. Considerando os algoritmos do exercício anterior e com a seguinte organização de entrada: 
 
ENTRADA DE DADOS 
1 2 
2 4 
5 6 
7 8 
8 10 
 
Responda: 
a) Quais os valores são lidos para V1, V2, V3 ? 
b) Quais os valores impressos ? 
c) Verificar a validade das situações seguintes 
c.1) 
TS 
V1 INTEIRO 3 
V2 INTEIRO 4 
I INTEIRO 2 
 
 
1 2 
3 4 
 
 
 
 c.2) 
TS 
V1 INTEIRO 9 
V2 INTEIRO 10 
I INTEIRO 6 
 
 
1 2 
 3 4 
5 6 
7 8 
 
 
 
 
 62
4. Para o algoritmo abaixo e a entrada de a complete as informações: 
 
DECLARE I, V1, V2 COMO INTEIROS 
REPETIR I = 1, 5, 1 
 LEIA V1, V2 
 ESCREVA V1, V2 
FIM-REPETIR 
 
ENTRADA DE DADOS 
1 2 
3 4 
5 6 
7 8 
9 10 
 
TS 
V1 INTEIRO 5 
V2 INTEIRO ? 
I INTEIRO ? 
 
 
1 2 
3 4 
 
 
 
 
5. Escreva um algoritmo que leia cinco temperaturas em graus Celsius e converta cada uma para 
grau Fahrenheit, cuja fórmula de conversão é: ( 9 * graus Celsius + 160 ) /5. 
 
6. Escreva um algoritmo que leia três temperaturas em grau Fahrenheit e converta cada uma para 
graus Celsius, cuja fórmula de conversão é: ( graus Fahrenheit – 32) * (5/9). 
 
7. Escreva um algoritmo que leia seis conjuntos de três valores, representando o comprimento, 
largura e altura de caixas retangulares e calcule o volume de cada uma, cuja fórmula é: 
VOLUME = COMPRIMENTO * LARGURA * ALTURA 
 
8. Escreva um algoritmo que leia oito conjuntos de dois valores A e B, e efetue a troca dos valores 
de forma que A passe a possuir o valor de B e B passa a possuir o valor de A. Apresente os 
valores antes e depois da troca, para cada conjunto. 
 
9. Escreva um algoritmo que leia quinze conjuntos de dois valores PRESTAÇÂO e TAXA, 
representando o valor de uma prestação e a taxa de juros cobrada pelo atraso. Calcule cada 
prestação atrasada pela fórmula: ATRASO = PRESTAÇÂO + ( PRESTAÇÂO* TAXA /100) 
 
10. Escreva um algoritmo que leia cem conjuntos de dois valores, representando o raio e altura de 
cem latas e calcule cada volume, cuja fórmula é: VOLUME = 3.1415 * RAIO2 * ALTURA 
 
 63
11. Escreva um algoritmo que leia 32 conjuntos de três valores, representando as duas bases e a 
altura de 32 trapézios e calcule cada área, cuja fórmula é: ÁREA = (BASE1 + BASE2) /2 * 
ALTURA 
 
12. Escreva um algoritmo para ler 40 valores lidos dois a dois, calcular e escrever a média 
aritmética entre cada par de números. 
 
13. Escrever um algoritmo que lê 3 valores a, b, c que são lados de um triângulo e calcule a área 
deste triângulo. O total de triângulos é igual 55. 
 s s a s b s c( )( )(− − − ) 
onde s = semiperímetro 
 
14. Para A e B inteiros e maiores que zero, fazer um algoritmo para o cálculo de A elevado à 
potência de B usando multiplicações sucessivas. 
 
C.3) OUTRA UTILIZAÇÃO DA INSTRUÇÂO REPETIR 
 
Além de utilizar a instrução REPETIR para produzir repetições de conjuntos de passos é 
possível utilizá-la para outros fins, graças a uma característica bastante interessante; ao definir uma 
repetição o programador deve especificar o número de repetições (por exemplo: I = 1,3,1). A partir 
dessa especificação a instrução produz os valores automaticamente. Essa característica pode ser 
utilizada para resolver certos tipos de problema. 
 
Exemplo 1: Escrever um algoritmo que gere e imprima os números de 1 até 10. 
 
DECLARE I COMO INTEIRO 
REPETIR I = 1 ,10, 1 
 ESCREVA ‘O VALOR I = ‘, I 
FIM-REPETIR 
 
 O VALOR I = 1 
 O VALOR I = 2 
 O VALOR I = 3 
O VALOR I = 4 
 O VALOR I = 5 
O VALOR I = 6 
 O VALOR I = 7 
 O VALOR I = 8 
 O VALOR I = 9 
 O VALOR I = 10 
 
 
 
 
Observe que não há leitura de dados 
 
 
Exemplo 2: Escrever um algoritmo que gere e imprima os números pares de 1 até 10. 
 64
 
DECLARE I COMO INTEIRO 
REPETIR I = 2 ,10, 2

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes