Logo Passei Direto
Buscar

Introdução à Construção de Algoritmos

Capítulo introdutório sobre construção de algoritmos. Apresenta exemplos de roteiros (receita, rota, instalação), detalhamento e refinamento de procedimentos (ex.: trocar lâmpada), exercícios práticos (trocar pneu; travessia lobo/cabra/alfafa) e definição inicial de algoritmo.

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 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, 2ESCREVA ‘O VALOR I = ‘, I 
FIM-REPETIR 
 
Valores de I que serão impressos 2 4 6 8 10 
 
Exemplo 3: Escrever um algoritmo que gere e imprima os números impares de 1 até 10. 
 
DECLARE I COMO INTEIRO 
REPETIR I = 1 ,10, 2 
 ESCREVA ‘O VALOR I = ‘, I 
FIM-REPETIR 
 
Valores de I que serão impressos 1 3 5 7 9 
 
Exemplo 4: Escrever um algoritmo que gere e imprima o somatório de 1 até 10. 
 
DECLARE I , S COMO INTEIRO 
S ← 0 
REPETIR I = 1 ,10, 1 
 S ← S + I 
FIM-REPETIR 
ESCREVA S 
 
REPETIÇÃO 1ª 2ª 3ª 4ª 5ª 6ª 7ª 8ª 9ª 10ª 
I 1 2 3 4 5 6 7 8 9 10 
S 0 1 3 6 10 15 21 28 36 45 55 
 
Valor de S que será impresso 55 
 
Exemplo 5: Escrever um algoritmo que gere e imprima o fatorial de 5. 
 
DECLARE I , S COMO INTEIRO 
S ← 1 
REPETIR I = 1 , 5 , 1 
 S ← S * I 
FIM-REPETIR 
ESCREVA S 
 
REPETIÇÃO 1ª 2ª 3ª 4ª 5ª 
I 1 2 3 4 5 
S 1 1 2 6 24 120 
 
Valor de S que será impresso 120 
 
 
Exemplo 6: Escrever um algoritmo que gere e imprima o fatorial de N (considere N > 1). 
 65
 
DECLARE I , S, N COMO INTEIRO 
LEIA N 
 
S ← 1 ENTRADA DE DADOS 
REPETIR I = 1 , N , 1 5 
 S ← S * I 
FIM-REPETIR Observe: que o valor de N está sendo lido e usado como limite 
ESCREVA S da repetição 
 
REPETIÇÃO 1ª 2ª 3ª 4ª 5ª 
I 1 2 3 4 5 
S 1 1 2 6 24 120 
N 5 
 
Valor de S que será impresso 120 
 
C.3.1) EXERCÍCIOS PROPOSTOS 
 
1. Para o algoritmo e a entrada de dados a seguir : 
DECLARE I, SI, SV, V COMO INTEIROS 
SI ←0 ENTRADA DE DADOS 
SV ← 0 10 
REPETIR I = 1,10,1 9 
 LEIA V 8 
 SI ← SI + I 7 
 SV ← SV + V 6 
FIM-REPETIR 5 
ESCREVA SI 4 
ESCREVA SV 3 
 2 
 1 
Responda: 
 
a) Quantos valores são lidos para V ? 
b) Em que momentos é verdadeira a igualdade SI = SV 
c) Para que valores de I é verdade que SV é múltiplo SI ? 
 
2. Escrever um algoritmo que escreve os números pares entre 100 e 200. 
3. Escrever um algoritmo que escreve a soma dos números pares entre 0 e 100. 
4. Escrever um algoritmo que escreve a soma dos números que não são múltiplos de 13 entre 100 e 
200. 
 66
5. Escrever um algoritmo que escreve a soma dos números múltiplos de 7 entre 100 e 200. 
6. Escrever um algoritmo que gera os números de 1000 a 1999 e escreve aqueles que divididos por 
11 dão um resto igual a 5. 
7. Escrever um algoritmo que lê 10 valores para n, um de cada vez, todos inteiros e positivos, e 
para cada n lido, escreva a tabuada de 1 até n de n. 
 1 x n = n 
 2 x n = 2n 
 ... 
 n x n = n2
8. Escrever um algoritmo que lê 5 valores para a, um de cada vez, e conta quantos destes valores 
são negativos, escrevendo esta informação. 
9. Escrever um algoritmo que lê 150 valores, um de cada vez, e conta quantos deles estão em cada 
um dos intervalos [0, 25], (25, [50] , (50, 75], (75, 100]. 
10. Escrever um algoritmo semelhante ao anterior que calcula as médias aritméticas de cada 
intervalo e as escreve, juntamente com o número de valores de cada intervalo. 
11. Escrever um algoritmo que lê um número não determinado de valores, todos inteiros e 
positivos, um de cada vez, e calcule e escreva a média aritmética dos valores lidos, a quantidade 
de valores pares, a quantidade de valores impares, a percentagem de valores pares e a 
percentagem de valores ímpares. 
12. Escrever um algoritmo que lê 5 conjuntos de 3 valores a, b, c, um conjunto por vez e os escreve 
assim como foram lidos. Em seguida, ordene-os em ordem decrescente e escreva-os novamente. 
13. Escreva um algoritmo para calcular o valor de S, onde os valores de N e P são lidos e S é 
calculada pela formula : 
 N! 
 S = ----------------------- 
 P! ( N - P) ! 
 
14. Escreva um algoritmo para calcular o valor de X, onde X é calculado da seguinte forma : 
 
X = N! + (N-1)! / 2 + (N-2)!/ 3 + (N-3)!/4 + ... + 1 / N 
 
 
 
15. Calcular e imprimir a série 
 
S
X X X= + + + +37 38
1
36 37
2
35 36
3
1 2
37
. . .
X
 
 
 
16. Escrever um algoritmo que lê um valor N e calcula e escreve os 20 primeiros termos da série: 
 67
 
1 + 1/x2 + 1/x3 + 1/x4 + ... 
 
17. Dada a série: 
 
2 3 4 9 16 29 54 99 …. 
 
Escreva um algoritmo para calcular o n-ésimo termo da série 
 
18. Dada a série: 
 
-2 0 6 8 14 16 22 24 30 32 …. 
 
Escreva um algoritmo para calcular o n-ésimo termo da série. 
 
19. Escreva um algoritmo para calcular o valor de Sen x, obtido pela série de Mac-Laurin. 
 
Sen x = x - x3 / 6 + x5 / 120 - x7/5040 + … + xn / n! 
 
20. Fazer um algoritmo que leia um número real X e calcule o seguinte somatório : 
 
 X X X 
 S = X - ------- + --------- - --------- + ... 
 1! 2! 3! 
 
, usando os 20 primeiros termos da série. 
 
21. Calcular a série : 
 
 
S = − + − + −
1
1
2
4
3
9
4
16
10
100
. . .
 
 
22. Calcular e imprimir a série : 
 
P = − + − + −1
1
2
3
3
7
4
15
5
31
! ! ! ! !
. . . 
 
, usando os 20 primeiros termos da série. 
 
23. Escrever um algoritmo para calcular, para N lido, o valor de S, dado por: 
 
S
N N N
N N= + − + − + +
− + +1 2
1
3
2
1
2 1
... 
 
 
 68
24. Um número perfeito é aquele que é igual a soma dos seus divisores. (Ex.: 6 = l + 2 + 3; 28 = 1 + 
2 + 4 + 7 + 14 etc..). Escreva um algoritmo para ler um valor e verificar se ele é um número 
perfeito. 
 
B.3) NÚMERO NÃO CONHECIDO DE REPETIÇÕES 
 
Suponha que se deseja escrever um algoritmo para ler valores e escrevê-los. 
 
Quantos valores serão lidos ? Existe algum valor para processar ? 
 
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 . finito 
ESCREVA ‘O VALOR LIDO = ‘, A . 
LEIA A 
ESCREVA ‘O VALOR LIDO = ‘, A 
. 
. Isso não pode ser feito (um algoritmo deve possuir um número finito de passos) 
. 
 
É necessária uma estrutura de repetição quando não conhece precisamente o número de 
vezes que a seqüência de passos deve ser repetida. Forma geral: 
 
ENQUANTO <condição> FAÇA 
 <seqüência de passos> 
FIM-ENQUANTO 
 
A estrutura de repetição enquanto-faça é utilizada quando um conjunto de passos deve ser 
executado repetidamente, enquanto uma determinada condição (expressão lógica) permanecer 
verdadeira. 
 
Dependendo do resultado do teste da condição, o conjunto de comandos poderá não ser 
executado nem uma vez ( se for falsa no primeiro teste), ou será executado varias vezes (enquanto 
for verdadeira). Chama-se a isso um laço (“loop”). 
 
 Ao criar estruturas de repetição enquanto: 
 
• inicializar a(s) variável(eis) que controla(m) o loop antes de iniciá-lo; 
• modificar a(s) variável(eis) que controla(m) o loop dentro dele (seja por leitura ou 
por atribuição), pois se isto não for feito cairemos no que chamamos um loop infinito. 
 
 69
Essa estrutura resolve o problema de ter um número finito de passos no algoritmo. Como 
resolver o problema de garantir que o conjunto de dados é finito (conjunto de dado infinito = leitura 
infinita = algoritmo infinito), sem contá-los ? 
 
Como o número de dados depositados na entrada de dados é ignorado, utilizamos um 
expediente para contornaressa situação. Adicionamos um dado especial ( flag ) que indicará o final 
dos dados. Embora a quantidade de dados seja ignorada, podemos agora afirmar que o último é o 
flag. O flag é um dado que não será processado, ele só indica que os dados terminaram. O flag 
normalmente é constituído de valores inconsistentes ou valores assumidos por decisão do 
programador. Por exemplo: 
 
1. Se o dado a ser lido: idade - escolheria um valor negativo para ser o flag, pois não há 
idade negativa; 
2. Se o dado a ser lido: sexo - escolheria um caracter diferente ‘M’ ou ‘F’ (‘M’ ou ‘F’ são 
os caracteres que normalmente representam os sexos masculino e feminino respectivamente); 
3. Se o dado a ser lido: salário - escolheria um valor negativo para ser o flag, pois 
normalmente salário é positivo ou zero; 
4. Se o dado a ser lido: nome - escolheria uma seqüência de caracteres que não representasse 
o nome de uma pessoa, por exemplo ‘ZZZZZZZZ’ ou ‘AAAAAAAA’; 
5. Se o dado a ser lido: números inteiros - escolheria um valor (por exemplo zero) para ser o 
flag; 
6. Se o dado a ser lido: coeficientes da equação do 2º grau – escolheria os valores 0 0 0 ( 
pois não existe equação do 2º grau com coeficientes 0 0 0 ); 
7. Se o dado a ser lido: nome, sexo, salário, idade – escolheria os valores ‘ZZZ’ ‘Z’ –1 –1 
 
ENTRADA DE DADOS 
 17 
 34 
 1 
 23 
 78 
 . 
 . 
 . 
 
 FLAG 
0 
 
Observe que se o programador erradamente colocar entre os valores que devem ser 
processados o valor zero ( 0 ), nem todos os valores colocados na entrada de dados serão 
processados. 
 
ENTRADA DE DADOS 
 17 
 34 
 1 Apenas os valores 17, 34 e 1 serão processados 
 0 
 23 
 78 
 . 
Valor 
colocado 
erradamente
 . 
 . 
 70
 
 FLAG 
0 
 
 
Vimos anteriormente que para criar estruturas de repetição enquanto, o programador deve 
ter sua atenção voltada para os seguintes aspectos: 
 
• inicializar a(s) variável(eis) que controla(m) o loop antes de iniciá-lo; 
• modificar a(s) variável(eis) que controla(m) o loop dentro dele (seja por leitura ou 
por atribuição), pois se isto não for feito cairemos no que chamamos um loop infinito. 
 
Isso é devido a forma como a repetição funciona. 
 
 
 
Retornando ao problema: escrever um algoritmo para ler valores e escrevê-los. 
 
Etapas para construção do algoritmo: 
1. criar a variável; 
2. inicializar a(s) variável(eis) que controla(m) o loop antes de iniciá-lo 
3. escrever a condição de repetição de acordo com o flag definido 
4. escrever o valor lido 
5. modificar a(s) variável(eis) que controla(m) o loop dentro dele 
 
 
DECLARE A COMO INTEIRO 
LEIA A 
ENQUANTO A # 0 FAÇA 
 ESCREVA ‘O VALOR LIDO = ‘, A 
inicializar a variável que controla o 
loop antes de iniciá-lo. Isso será 
realizado por leitura
 LEIA A 
 71
FIM-ENQUANTO 
 
 
 
 
 
 
 
 
 
Simulação do algoritmo 
 
DECLARE A COMO INTEIRO 
 
NOME TIPO VALOR 
A INTEIRO 
 
LEIA A 
Lê um (primeiro) valor da entrada de dados. Essa leitura tem por objetivo inicializar a variável de 
controle da repetição ( A ) 
 
 
 
 
entrada de dados: 17 LEIA A 
 34 
 1 
 23 
 78 
 . 
 . 
 . 
 42 
 0 
 
NOME TIPO VALOR 
A INTEIRO 17 
 
 
ENQUANTO A # 0 FAÇA 
Verifica a condição de repetição A # 0 ( A possui o valor 17 que é diferente de 0) logo a condição é 
verdadeira 
 
 Observe que se o valor lido anteriormente fosse zero ( 0), a condição seria falsa, logo não entraria 
na repetição (nenhuma repetição seria realizada). 
 
ESCREVA ‘O VALOR LIDO = ‘, A 
 
NOME TIPO VALOR 
Modificar o valor da variável 
que controla a repetição dentro 
dele. Isso será feito através da 
leitura do próximo valor que 
poderá ser o valor flag ou não. 
A condição A # 0, pois o flag 
escolhido é zero, então a repetição 
deve ser feita enquanto o valor lido 
seja diferente de zero 
 72
A INTEIRO 78 
 
 
 
 O VALOR LIDO = 17 
 
 
 
LEIA A 
 
Lê um novo valor da entrada de dados. ( Modificar a(s) variável(eis) que controla(m) o loop dentro 
dele, se isso não fosse feito A estaria com o valor 17 e a próxima repetição processaria novamente o 
valor 17 ) 
 
 
 
 
entrada de dados: 34 LEIA A 
 1 
 23 
 78 
 . 
 . 
 . 
 42 
 0 
 
 
NOME TIPO VALOR 
A INTEIRO 34 
 
 
FIM-ENQUANTO retorna ao passo ENQUANTO A # 0 FAÇA 
 
Verifica a condição de repetição A # 0 ( A possui o valor 34 que é diferente de 0) logo a condição é 
verdadeira. O valor 34 foi lido, ainda não processado, isso acontecerá quando a execução começar 
no início do corpo da repetição. 
 
 Observe, se o valor lido anteriormente fosse zero ( 0), a condição seria falsa, logo não entraria na 
repetição (repetição seria finalizada). 
 
 
ESCREVA ‘O VALOR LIDO = ‘, A (processamento do valor lido, que sabemos ser diferente de 
zero) 
 
NOME TIPO VALOR 
A INTEIRO 34 
 
 
 73
 
 O VALOR LIDO = 17 
 O VALOR LIDO = 34 
 
 
 
Assim, a repetição será executada ... 
 
Pularemos os passos intermediários e apresentamos a finalização da repetição ( A está com o valor 
42, penúltimo valor lido). 
 
FIM-ENQUANTO retorna ao passo ENQUANTO A # 0 FAÇA 
 
Verifica a condição de repetição A # 0 ( A possui o valor 42 que é diferente de 0) logo a condição é 
verdadeira. O valor 42 foi lido, ainda não processado, isso acontecerá, quando a execução começar 
no início do corpo da repetição. 
 
 Observe, se o valor lido anteriormente fosse zero ( 0), a condição seria falsa, logo não entraria na 
repetição (repetição seria finalizada). 
 
ESCREVA ‘O VALOR LIDO = ‘, A (processamento do valor lido, que sabemos ser diferente de 
zero) 
 
NOME TIPO VALOR 
A INTEIRO 42 
 
 O VALOR LIDO = 17 
 O VALOR LIDO = 34 
 O VALOR LIDO = 1 
 O VALOR LIDO = 23 
 . 
 
 O VALOR LIDO = 42 
 
 
 
 
 
 
 
 
LEIA A 
 
Lê um novo valor da entrada de dados. ( Modificar a(s) variável(eis) que controla(m) o loop dentro 
dele) 
 
 
 
 
 74
entrada de dados: 0 LEIA A 
 
FIM-ENQUANTO retorna ao passo ENQUANTO A # 0 FAÇA 
 
Verifica a condição de repetição A # 0 ( A possui o valor 0 que é igual a 0) logo a condição é falsa. 
A repetição é finalizada. 
 
B.3.1) Exercícios Propostos 
 
1) Para o algoritmo e a entrada de dados abaixo, responda as questões: 
 
DECLARE S, A COMO INTEIROS ENTRADA DE DADOS 
S ← 0 1 
LEIA A 3 
ENQUANTO ( A # -1 ) FAÇA 0 
 S ← S + A 4 
 LEIA A 2 
FIM-ENQUANTO - 1 
ESCREVA S 
 
a) Quais os valores lidos ? 
b) Que valor seria impresso ? 
c) Quantas repetições seriam realizadas ? 
d) O que aconteceria se a condição de controle fosse A # 0 ? 
 
2) Refazer os exercícios de 5 até 15 da seção B.2.2, considerando a existência de vários valores na 
entrada de dados. 
 
3) Um vendedor necessita de um algoritmo que calcule o preço total devido por um cliente. O 
algoritmo deve ler o código de um produto, a quantidade comprada, valor unitário e calcular o 
preço total de cada produto e o débito total. Considere o último produto com o código igual a 
zero. 
 75
B.4) REPETIR X ENQUANTO 
 
Como vimos, a estrutura de repetição enquanto-faça é usada quando não conhece 
precisamente o número de vezes que a seqüência de passos deve ser repetida. Podemos então 
afirmarque a estrutura enquanto-faça é mais genérica que a estrutura repetir. É possível dessa 
forma simular a estrutura repetir usando a estrutura enquanto-faça. Verifique o exemplo abaixo: 
 
Escrever um algoritmo que gere e imprima o somatório dos números impares 1 até 10. 
 
DECLARE I , S COMO INTEIRO 
S ← 0 
REPETIR I = 1 ,10, 2 
 S ← S + I 
FIM-REPETIR 
ESCREVA S 
 
Analisando a repetição do algoritmo anterior : 
 
Pelo esquema de funcionamento do REPETIR apresentado na seção B.2, a variável de controle ( I ) 
é iniciada com o valor inicial ( 1 ), em seguida o corpo da repetição é executado ( seqüência de 
passos definida dentro da repetição ), ao terminar de executar os passos do corpo da repetição, o 
valor da variável de controle é adicionado do valor do incremento ( 2 ) e logo em seguida é testado 
se o novo valor da variável de controle ainda é menor ou igual que o limite (10), caso afirmativo 
continua a executar o corpo da repetição, caso negativo para a repetição. 
 
 Assim a repetição REPETIR I = 1 ,10, 2 pode ser interpretada como: 
 
começando em 1 e enquanto o valor a variável de controle for menor ou igual que 10 execute o 
corpo da repetição e em seguida incremente de 2 a variável de controle. 
 
 
DECLARE I , S COMO INTEIRO DECLARE I , S COMO INTEIRO 
S ← 0 S ← 0 
REPETIR I = 1 ,10, 2 I ← 1 
S ← S + I algoritmo ENQUANTO ( I < 10 OR I = 10 ) FAÇA 
FIM-REPETIR equivalente S ← S + I 
ESCREVA S I ← I + 2 
FIM-ENQUANTO 
ESCREVA S 
OBS.: o algoritmo anterior, utilizando enquanto, não faz uso de flag, 
pois não há leitura de dados. Porém, a regra apresentada 
anteriormente: 
 
• inicializar a(s) variável(eis) que controla(m) o loop antes de iniciá-lo; 
• modificar a(s) variável(eis) que controla(m) o loop dentro dele (seja por leitura ou por 
atribuição), pois se isto não for feito cairemos no que chamamos um loop infinito. 
 76
é respeitada. 
 
DECLARE I, S COMO INTEIRO 
S ← 0 
I ← 1 
ENQUANTO ( I < 10 OR I = 10 ) FAÇA 
 S ← S + I 
 I ← I + 2 
FIM-ENQUANTO 
ESCREVA S 
inicializar a variável que controla o 
loop antes de iniciá-lo. Isso será 
realizado pela atribuição do valor 1 
(valor inicial da repetição REPETIR I = 
1 ,10, 2 ) a variável I (variável de 
controle da repetição) 
Modificar o valor da variável 
que controla a repetição dentro 
dele. Isso será feito através do 
incremento da variável I de 
duas unidades 
A condição ( I < 10 OR I = 10 ), pois 
o limite estabelecido é o valor 10, na 
repetição REPETIR I = 1 ,10, 2 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
B.4) EXERCÍCIOS PROPOSTOS 
 
1. Para A e B inteiros e maiores que zero, fazer um algoritmo para o cálculo A dividido por B 
usando subtrações sucessivas. 
 
2. Considerando a igualdade 
 
Soma = 13 + 23 + 33 + ...+ N3 
 
Fazer um algoritmo para ler um valor X inteiro, positivo e maior que zero e obter o menor valor de 
N que satisfaça a relação SOMA > X. 
 
3. Chico tem 1,50 metro e cresce 2 centímetros por ano, enquanto Zé tem 1,10 metro e cresce 3 
centímetros por ano. Construa um algoritmo que calcule e imprima quantos anos serão 
necessários para que Zé seja maior que Chico. 
 
 
 
 
 
 77
 
Capítulo III - ARQUIVOS 
 
 
 Quando se deseja manter e/ou obter informações sobre objetos de raciocínio pode-se chamar 
estes objetos de classes de entidade, como por exemplo: Alunos, Professores, equipes de futebol, 
peças de um estoque, empregados de uma fábrica, etc.. A seleção de um elemento de uma classe de 
entidade constitui uma entidade. As características que interessam no contexto constitui os 
atributos da classe de entidade. 
 
Exemplo: Aluno Nome 
 Filiação 
 Endereço 
 Matrícula 
 
 As características de uma classe de entidade podem assumir valores que denominamos de 
valor de atributo. 
 
Exemplo: Aluno Nome - Maria 
 Filiação - Pedro e Ana 
 Endereço - Rua Pres. Vargas, 15 
 Matrícula - 1509 
 
Considerando a classe de entidade empregados de uma empresa pode-se visualizar o 
seguinte: 
 
Empregados = { João, Carlos, Maria, Pedro, Ana, ... } 
 
Empregado = { Carlos } 
 
Atributos = { Nome, Departamento, Idade, Cargo, Tempo de Serviço } 
 
Valores de Atributo = { Carlos, Computação, 30, Programador, 5 } 
 
A perfeita individualização de uma entidade é feita pela justaposição de um conjunto de 
pares < atributos - valores de atributo > que recebe o nome de registro. 
 
Registro = {{nome, Carlos}, {Departamento, Computação}, {Idade, 30}, 
{Cargo,Programação}, {Tempo de Serviço, 5}} 
 
Certamente um registro pode ser constituído tornando-se implícita a existência dos atributos 
e trabalhando apenas com os valores de atributo: { Carlos, Computação, 30, Programador, 5 }. Em 
termos computacionais (jargão técnico) os atributos são também chamados de campos do registro. 
 
Um conjunto de registros que caracterizam uma classe de entidade é chamado de arquivo. 
 
 78
III.1) EXERCÍCIOS RESOLVIDOS 
 
1. Escreva um algoritmo que leia o nome, sexo, idade de uma pessoa e escreva os dados lidos. 
 
DECLARE NOME, SEXO CARACTER 
DECLARE IDADE COMO INTEIRO 
LEIA NOME, SEXO, IDADE 
ESCREVA NOME, SEXO, IDADE 
 
2. Escreva um algoritmo que leia um arquivo contendo o nome, sexo, idade de várias pessoas e 
escreva os dados lidos. O total de registro é igual a 100. 
 
DECLARE NOME, SEXO CARACTER 
DECLARE IDADE COMO INTEIRO 
REPETIR I = 1 , 100, 1 
 LEIA NOME, SEXO, IDADE 
 ESCREVA NOME, SEXO, IDADE 
FIM-REPETIR 
 
3. Escreva um algoritmo que leia um arquivo contendo o nome, sexo, idade de várias pessoas e 
escreva os dados lidos. 
 
DECLARE NOME, SEXO CARACTER 
DECLARE IDADE COMO INTEIRO 
LEIA NOME, SEXO, IDADE 
ENQUANTO IDADE # -1 FAÇA 
 ESCREVA NOME, SEXO, IDADE 
 LEIA NOME, SEXO, IDADE 
FIM-ENQUANTO 
 
 
4. Escreva um algoritmo que leia um arquivo contendo o nome, sexo, idade de várias pessoas e 
escreva os dados lidos das pessoas de sexo feminino. 
 
DECLARE NOME, SEXO CARACTER 
DECLARE IDADE COMO INTEIRO 
LEIA NOME, SEXO, IDADE 
ENQUANTO IDADE # -1 FAÇA 
 SE SEXO = 'F' ENTÃO 
 ESCREVA NOME, SEXO, IDADE 
 FIM-SE 
 LEIA NOME, SEXO, IDADE 
FIM-ENQUANTO 
 
 
 
 
 
 
 79
5. Escreva um algoritmo que leia um arquivo contendo o nome, sexo, idade de várias pessoas e 
escreva o total de mulheres. 
 
DECLARE NOME, SEXO CARACTER 
DECLARE IDADE, TOTALMULHER COMO INTEIRO 
LEIA NOME, SEXO, IDADE 
TOTALMULHER ← 0 
ENQUANTO NOME # 'ZZZ' FAÇA 
 SE SEXO = 'F' ENTÃO 
 TOTALMULHER ← TOTALMULHER + 1 
 FIM-SE 
 LEIA NOME, SEXO, IDADE 
FIM-ENQUANTO 
ESCREVA 'TOTAL DE MULHERES =', TOTALMULHER 
 
6. Escrever um algoritmo que leia um arquivo contendo o nome, sexo, idade e o total de horas 
trabalhadas de várias pessoas. Considerando que a hora de trabalho custa R$ 3,45 calcule e 
escreva o salário bruto de cada pessoa. 
 
DECLARE NOME, SEXO CARACTER 
DECLARE IDADE, TOTALMULHER COMO INTEIRO 
DECLARE TOTALH, SALBRUTO COMO REAL 
LEIA NOME, SEXO, IDADE 
ENQUANTO IDADE # -1 FAÇA 
 SALBRUTO ←TOTH * 3.45 
 ESCREVA SALBRUTO 
 LEIA NOME, SEXO, IDADE 
FIM-ENQUANTO 
 
7. Fazer um algoritmo que leia o sexo e a idade de várias pessoas. Escreva o total de homens 
menor de idade e o total de mulheres maior de idade. 
 
DECLARE SEXO CARACTER 
DECLARE IDADE, HMENOR, MMAIOR INTEIRO 
HMENOR ← -1 
MMAIOR ← -1 
LEIA SEXO, IDADE 
ENQUANTO IDADE # -1 FAÇA 
 SE SEXO = 'M' E IDADE < 18 ENTÃO 
 HMENOR ← HMENOR + 1 
 FIM-SE 
 SE SEXO = 'F' E IDADE ³ 18 ENTÃO 
 MMAIOR ← MMAIOR + 1 
 FIM-SE 
 LEIA SEXO, IDADE 
FIM-ENQUANTO 
ESCREVA HMENORESCREVA MMAIOR 
 
 80
8) Escrever um algoritmo que leia o sexo e o peso de pessoas, calcule e escreva a média dos pesos 
dos homens e o total de mulheres com mais de 50 kg. 
 
DECLARE SEXO CARACTER 
DECLARE PESO, MÉDIA, SOMA, TOTALHOM, TOTALMULH INTEIRO 
TOTAL_HOM ← 0 
SOMA ← 0 
TOTALMULH ← 0 
LEIA SEXO, PESO 
ENQUANTO SEXO # 'Z' FAÇA 
 SE SEXO = 'M' ENTÃO 
 TOTALHOM ← TOTALHOM + 1 
 SOMA ← SOMA + PESO 
 FIM-SE 
 SE SEXO = 'F' E PESO > 50 ENTÃO 
 TOTALMULH ← TOTALMULH + 1 
 FIM-SE 
 LEIA SEXO, PESO 
FIM-ENQUANTO 
MÉDIA ← SOMA / TOTALHOM 
ESCREVA MÉDIA 
ESCREVA TOTALMULH 
 
III.2 – EXERCÍCIOS PROPOSTOS 
 
 
1. Escreva um algoritmo que leia uma seqüência de valores inteiros positivos e : 
 
 a) imprima todos os números; 
 b) imprima o maior e o menor valor; 
 c) imprima os valores primos, pares e impares; 
 
2. Escreva um algoritmo que leia uma seqüência de dados (nome, sexo, idade,salário) 
 
 a) imprima todos os nomes dos funcionários; 
 b) imprima o total de homens; 
 c) imprima o total de mulheres com salário maior que R$ 500,00; 
 d) imprima a média salarial. 
 
3. Dado uma seqüência de dados (nome, salário, idade, sexo) dos funcionários de uma firma, 
escreva um algoritmo para: 
 
 a) imprimir os nomes das pessoas; 
b) imprimir o total de homens e o total de mulheres; 
 c) imprimir o maior salário; 
 d) imprimir a menor idade; 
 e) para os salários menores que R$ 5.000,00 imprima esses salários acrescidos de 20%. 
 81
 
4. Escrever um algoritmo que lê o número de um vendedor, o seu salário-fixo, o tota1 de vendas 
por ele efetuadas e o percentual que ganha sobre o total de vendas. Calcular o salário tota1 do 
vendedor. Escrever número do vendedor e o salário total. 
5. Escrever um algoritmo que lê um número não determinado de conjuntos de valores, cada um 
formado pelo número de um aluno e suas 3 notas. Calcular, para cada aluno, a média ponderada 
com pesos respectivos de 4 para a maior nota e 3 paras as outras duas. Escrever o número do 
aluno, suas 3 notas, a média calculada e uma mensagem "aprovado" se nota >= 5 ou 
"reprovado" para nota < 5. 
6. Escrever um algoritmo que lê o número de um funcionário, seu número de horas trabalhadas, o 
valor que recebe por hora, e o número de filhos com idade menor do que 14 anos, o valor do 
salário família por filho e calcula o salário deste funcionário. 
 
7. 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 lê o número do vendedor, o número de carros por 
ele vendidos, o valor tota1 de suas vendas, o salário fixo e o valor que recebe por carro 
vendido e calcula o salário mensal do vendedor, escrevendo-o juntamente com o seu número de 
identificação. 
8. Escrever um algoritmo que lê o número de um vendedor de uma empresa, seu salário fixo e o 
total de vendas por ele efetuadas. Cada vendedor recebe um salário fixo, mais uma comissão 
proporcional às vendas por ele efetuadas. A comissão é de 3% sobre o total de vendas até $ 
1.000,00 e 5% sobre o que ultrapassa este valor. Escrever o número do vendedor, o total de 
suas vendas, seu salário fixo e seu salário total. 
 
9. Escrever um algoritmo que lê 5 conjuntos de 2 valores, o primeiro representando o número de 
um aluno e o segundo representando a sua altura em centímetros. Encontrar o aluno mais alto e 
o mais baixo e escrever seus números, suas alturas e uma mensagem dizendo se é o mais alto ou 
o mais baixo. 
 
10. Fazer um programa que leia um conjunto de dados contendo a matrícula, as três notas e a 
freqüência de do aluno e calcule e imprima: 
 a nota final de cada aluno; 
 a maior e a menor nota final da turma (supor não haver empate); 
 a nota média da turma; 
 o total dos alunos reprovados; 
 a porcentagem dos alunos reprovados por freqüência. 
para cada aluno: a matrícula, a freqüência, as três notas, a nota final e o aproveitamento 
(A/R); Imprimir a matrícula quando for pertinente. 
 
 
 
11. Uma universidade deseja fazer um levantamento a respeito de seu concurso vestibular. Para 
cada curso, é fornecido o seguinte conjunto de valores : 
 82
 - código do curso; 
 - número de vagas; 
 - número de candidatos do sexo masculino; 
 - número de candidatos do sexo feminino. 
 
12. Considere o código do curso sendo zero para indicar o flag de entrada. Fazer um programa 
que: 
 - calcule e imprima, para cada curso, o número de candidatos por vaga e a 
 porcentagem de candidatos do sexo feminino e o código do curso; 
 - determine e imprima o maior número de candidatos por vaga juntamente com o 
 código do curso (supor que não haverá empate); 
 - calcule e imprima o total de candidatos. 
 
13. Numa fábrica trabalham homens e mulheres divididos em três classes : 
 A - os que fazem até trinta peças por mês; 
 B - os que fazem de 31 a 35 peças por mês; 
 C - os que fazem mais de 35 peças por mês. 
 
A classe A recebe salário mínimo. A classe B recebe salário mínimo e mais 3% do salário mínimo 
por peça, acima das 30 iniciais. A classe C recebe salário mínimo e mais 5% do salário mínimo por 
peça acima das 30 iniciais. Fazer um programa que : 
 
 Leia um conjunto de dados com : 
 o número de operários; 
 o número de peças fabricadas por mês; 
 o sexo do operário; 
 
 Considere o número de operários sendo zero como flag de entrada. 
 Calcular e imprimir : 
 o número e o salário de cada operário; 
 o total da folha de pagamento mensal; 
 o número total de peças fabricadas por mês; 
 a média de peças fabricadas pelos homens em cada classe; 
 a média de peças fabricadas pelas mulheres em cada classe; 
 o número do operário(a) de maior salário (supor não haver empate). 
 
14. Existem 3 candidatos a uma vaga no Senado. Feita a eleição os votos são colocados em um 
arquivo, formando uma seqüência de valores. O voto de cada eleitor foi codificado da seguinte 
forma : 
 1 - voto para o candidato 1 
 2 - voto para o candidato 2 
 3 - voto para o candidato 3 
 4 - voto em branco 
 5 - voto nulo. 
 
Deseja-se saber : a) o candidato vencedor; 
 b) o número de votos em branco; 
 83
 c) e o número de eleitores 
 
15. Leia 3 valores DD , MM, AA representando respectivamente (dia, mês e ano). Escreva um 
algoritmo para verificar a validade da data. Considere ano bissexto (um ano é bissexto 
(fevereiro com 29 dias) quando o ano é múltiplo de 4 ) e que as datas (DD MM AA) estão no 
intervalo de 01 01 93 até 31 12 95. 
16. Escrever um algoritmo que lê 3 comprimentos de lados a, b, c e os ordena em ordem 
decrescente, de modo que o a represente o maior dos 3 lados lidos. 
Determine, a seguir, o tipo de triângulo que estes 3 lados formam, com base nos seguintes casos 
escrevendo sempre os valores lidos e uma mensagem adequada: 
 Se a > b + c não formam triângulo algum. 
 Se a2 = b2 + c2 formam um triângulo retângulo. 
 Se a2 > b2 + c2 formam um triângulo obtusângulo. 
 Se a2 < b2 + c2 formam um triângulo acutângulo. 
 Se forem todos iguais formam um triângulo eqüilátero. 
 Se a = b ou b = c ou a = c então formam um triângulo isóscele 
17. Escrever um algoritmo que lê a hora de início de um jogo e a hora do final do jogo 
(considerando apenas horas inteiras) e calcula a duração do jogo em horas, sabendo-se que o 
tempo máximo de duração do jogo é de 24 horas e que o jogo pode iniciar em um dia e terminar 
no dia seguinte. 
18. Escrever um algoritmo que lê o número de um funcionário, o número de horas por ele 
trabalhadas, o valor que recebe por hora, o número de filhos com idade inferior a 14 anos, a 
idade, o tempo de serviço do funcionário e o valor dosalário família por filho. 
Calcular o salário bruto, o desconto do INSS (8,5% do salário bruto) e o salário família. 
Calcular o IR (Imposto de Renda) como segue: 
 
Se Salário Bruto > 1.500,00 então IR = 15% do SB 
Se Salário Bruto > 500,00 e SB <= 1.500,00 então IR = 8% do SB 
Se salário Bruto <= 500,00 então IR = 0 
Calcular o adicional conforme especificado: 
Se idade superior a 40 anos ADIC = 2% do SB 
Se tempo de serviço superior a 15 anos ADIC = 3.5% do SB 
Se tempo de serviço < 15 anos, mas superior a 5 anos e idade maior do que 30 anos então 
ADIC = 1,5% do SB. 
 
Calcular o salário líquido. Escrever o número do funcionário, salário bruta, total dos descontos, 
adicional e salário líquido. 
 
 
19. Escrever um algoritmo que lê o número de identificação e as 3 notas obtidas por um aluno nas 3 
verificações e a média dos exercícios que fazem parte da avaliação. 
Para cada aluno, calcular a média de aproveitamento, usando a fórmula: 
 
 84
 MA = Nl + N2 x 2 + N3 x 3 + ME 
 7 
 
A atribuição de conceitos obedece à tabela abaixo: 
Média de Aproveitamento Conceito 
>= 9.0 A 
>= 7.5 e < 9.0 B 
>= 6.0 e < 7.5 C 
>= 4.0 e < 6.0 D 
< 4.0 E 
 
O algoritmo deve escrever o número do aluno, suas notas, a média dos exercícios, a média de 
aproveitamento, o conceito correspondente e a mensagem: "APROVADO" se o conceito for A, B, 
ou C e "REPROVADO" se conceito for D ou E. 
20. Uma empresa decidiu conceder um aumento de salários a seus funcionários de acordo com a 
tabela abaixo: 
 
Salário Atual Índice De Aumento 
0 - 400,00 15% 
400,01 - 700,00 12% 
700,01 - 1.000,00 10% 
1.000,01 - 1.800,00 7% 
1.800,01 - 2.500,00 4% 
acima de 2.500,00 sem aumento 
Escrever um algoritmo que lê, para cada funcionário, o seu número e o seu salário atual e escreve o 
numero do funcionário, seu salário atua1, o percentual de seu aumento e o valor do salário 
corrigido. 
21. Escrever um algoritmo que lê, para cada vendedor de uma empresa, o seu número de 
identificação, seu salário fixo e o total de vendas em reais por ele efetuadas. Cada vendedor 
recebe um salário fixo e uma comissão proporcional às vendas por ele efetuadas. A comissão é 
de 3% sobre o total de vendas até $ 1.000,00 e 5% sobre o que ultrapassa este valor. Escrever, 
para cada vendedor, o seu número de identificação, o tota1 de suas vendas, seu salário fixo e seu 
salário total. 
 85
Capítulo IV - VETOR 
 
 Os algoritmos desenvolvidos até agora apresentam, em relação aos dados de 
entrada, uma característica comum que é o fato de que o dado lido independe dos outros. 
Além disso, cada variável apresentada até agoras têm a capacidade de armazenar 
apenas um valor a cada vez. O vetor ou agregado homogêneo é uma estrutura de dados, 
capaz de armazenar vários valores ao mesmo tempo e de mesmo tipo. Os vetores podem 
ser unidimensionais ou multidimensionais (matrizes, tabelas.). 
IV.1) DECLARAÇÃO DE VETORES 
 
Em pseudocódigo as declarações podem ser representadas como: 
 
 
DECLARE <nome>(<tamanho>) COMO <tipo> 
 
 
Onde tipo pode ser: inteiro, real, caráter, lógico. 
<nome> = nome do identificador 
<tamanho> = define quantos valores serão armazenados. 
 
Exemplo: DECLARE A(10) COMO INTEIRO 
 
NOME TIPO VALOR 
 
A 
VETOR 10 
INTEIRO 
 
 
IV.2) COLOCANDO VALORES NOS VETORES 
 
Para a colocação de valores nos vetores é necessário indicar que posição o valor 
será alocado. Para isso, é necessário utilizar um índice. Um índice é um valor inteiro 
deve ser maior ou igual a 1 e menor ou igual que a quantidade declarada, colocada 
entre os parênteses. O comando de atribuição, já estudado, pode ser utilizado para a 
atribuição de valores no vetor. 
 
Por exemplo: 
 
 
 
 
 
 
 
Índice 
Valor
Vetor 
A(3) ← 12 ( o valor três indica a posição no vetor e o valor 12, o valor a ser 
alocado) 
 
 
 86
NOME TIPO VALOR 
 
A 
VETOR 10 
INTEIRO 
 
12 
 
 
 
A(10) ← 55 ( o valor dez indica a posição no vetor e o valor 55, o valor a ser 
alocado) 
 
NOME TIPO VALOR 
 
A 
VETOR 10 
INTEIRO 
 
12 
 
55 
 
OBS. CADA A(I) DEVE SER TRATADO COMO UMA VARIÁVEL INTEIRA "COMUM", ISTO É, PODE-
SE REALIZAR OPERAÇÕES ARITMÉTICAS, RELACIONAIS, ETC.. OBSERVE QUE AO COLOCAR O VALOR NO 
COMPONENTE, ELE PODE SER MANIPULADO DIRETAMENTE, ISTO É, PARA APANHAR O VALOR QUE ESTÁ 
NO VETOR NÃO É NECESSÁRIO LER O VALOR, BASTA ACESSÁ-LO DIRETAMENTE. 
 
Exemplo: 
 
A(10) ← A(10) + 1 ( o valor de A(10) passou para 56) 
 
 A(1) ← A(10) - A(3) ( o valor de A(1) que estava indefinido passou a ter o valor 44) 
 
Caso seja escrito uma operação com componentes indefinida, será considerada 
uma operação errada, por exemplo: 
 
A(4) ← A(5) - 32 ( o componente A(5) não possui valor logo a operação está 
incorreta) 
 
A(6) ← A(15) - 32 ( o componente A(15) não existe logo a operação está incorreta) 
 
IV.2.1) Colocando valores no vetor através de leitura 
 
Além da atribuição é possível colocar os valores no vetor através da operação de 
leitura. 
 
 
 
 
 
 
 
ENTRADA DE DADOS: 32 LEIA A(15) 
 
 
 
 
NOME TIPO VALOR 
 87
 
A 
VETOR 10 
INTEIRO 
 
 
 
32
 
 
 
IV.2.2) Colocando todos os valores no vetor através de leitura 
 
A) Um valor por linha 
 
DECLARE A(5), I COMO INTEIRO 
LEIA A(1) ENTRADA DE DADOS 
LEIA A(2) 12 
LEIA A(3) 20 
LEIA A(4) 15 
LEIA A(5) 1 
4 
OU 
 
DECLARE A(5), I COMO INTEIRO 
REPETIR I = 1,10,1 
 LEIA A(I) 
FIM-REPETIR 
 
 
NOME TIPO VALOR 
 
A 
VETOR 5 
INTEIRO 
 
12 
 
20 
 
15
 
1 
 
4 
 
B) Todos os valores na mesma linha 
 
DECLARE A(5), I COMO INTEIRO 
LEIA A(1), A(2), A(3), A(4), A(5) ENTRADA DE DADOS 
 12 20 15 1 4 
OU 
 
DECLARE A(5), I COMO INTEIRO 
LEIA A(I), I = 1,10,1 
 
 
NOME TIPO VALOR 
 
A 
VETOR 5 
INTEIRO 
 
12 
 
20 
 
15
 
1 
 
4 
 
 
 
 
 
IV.3) IMPRIMINDO O VETOR 
 
 88
A) Um valor por linha 
 
ESCREVA A(1) 
ESCREVA A(2) 
ESCREVA A(3) OU 
ESCREVA A(4) 
ESCREVA A(5) 
 
REPETIR I = 1,10,1 
 ESCREVA A(I) 
FIM-REPETIR 
 
NOME TIPO VALOR 
 
A 
VETOR 5 
INTEIRO 
 
12 
 
20 
 
15
 
1 
 
4 
 
 
 12 
 20 
 15 
 1 
 4 
 
 
 
B) Todos os valores na mesma linha 
 
 
ESCREVA A(1), A(2), A(3), A(4), A(5) OU
 
 
 ESCREVA A(I), I = 1,10,1 
 
 
 
NOME TIPO VALOR 
 
A 
VETOR 5 
INTEIRO 
 
12 
 
20 
 
15
 
1 
 
4 
 
 
 12 20 15 1 4 
 
 
 
 
 89
IV.4) Exercícios Resolvidos 
 
1. Escreva um algoritmo para ler 50 valores inteiros e imprimi-los acompanhados de sua 
média aritmética. 
 
DECLARE A(50), I, SOMA COMO INTEIRO 
DECLARE MEDIA COMO REAL 
LEIA A(I), I = 1,50,1 
SOMA ← 0 
REPETIR I = 1,50,1 
 SOMA ← SOMA + A(I) 
FIM-REPETIR 
MEDIA ← SOMA / 50 
REPETIR I = 1,50,1 
 ESCREVA A(I), MEDIA 
FIM-REPETIR 
 
 
 
2. Escreva um algoritmo que leia um vetor de 100 posições de números inteiros e mostre 
somente os de valores positivos e sua posição do vetor. 
 
DECLARE VET(100), I COMO INTEIRO 
LEIA VET(I), I = 1,100,1 
REPETIR I = 1,100,1 
 SE ( VET(I) > 0 ) THEN 
 ESCREVA ‘VALOR = ’, VET(I), ‘NA POSICAO =’, I 
 FIM-SE 
FIM-REPETIR 
 
 
 
3. Escrevaum algoritmo que leia um vetor de 80 elementos inteiros. Encontre e mostre o 
menor elemento e sua posição no vetor. 
 
DECLARE VET(80), I COMO INTEIRO 
LEIA VET(I), I = 1,80,1 
MENOR ← VET(1) 
POSICAOMENOR ← 1 
REPETIR I = 1,79,1 
 SE ( VET(I) < MENOR ) THEN 
 MENOR ← VET(I) 
POSICAOMENOR ← I 
 FIM-SE 
FIM-REPETIR 
 ESCREVA ‘MENOR = ’, MENOR, ‘NA POSICAO =’, POSICAOMENOR 
 
 
 90
4.Escreva um algoritmo que leia um vetor inteiro de 30 posições e crie um segundo vetor, 
substituindo os valores 0 por 1. Mostre os 2 vetores. 
 
DECLARE A(30), B(30), I COMO INTEIRO 
LEIA A(I), I = 1,30,1 
ESCREVA A(I), I = 1,30,1 
REPETIR I = 1,30,1 
 SE ( A(I) = 0 ) THEN 
 B(I) ← 1 
 SENÃO 
 B(I) ← A(I) 
 FIM-SE 
FIM-REPETIR 
ESCREVA B(I), I = 1,30,1 
 
 
5.Escreva um algoritmo que leia um vetor inteiro de 30 posições e crie um segundo vetor, 
com apenas os valores diferentes de 0. Mostre os 2 vetores. 
 
DECLARE A(30), B(30), I, K COMO INTEIRO 
LEIA A(I), I = 1,30,1 
ESCREVA A(I), I = 1,30,1 
K ← 0 
REPETIR I = 1,30,1 
 SE ( A(I) # 0 ) THEN 
 K ← K + 1 
 B(K) ← A(I) 
 FIM-SE 
FIM-REPETIR 
ESCREVA B(I), I = 1,K,1 
IV.5) EXERCÍCIOS 
 
1. Sendo o vetor V com 10 componentes de números inteiros. 
2 6 8 3 10 9 1 21 33 14 
e as variáveis X = 2 e Y = 4, escreva o valor correspondente a solicitação: 
a) V[ X + 1] b) V[X + 2] c) V[ X + 3] d) V[ X * 4] 
e) V[ X * 1] f) V[ X * 2] g) V[ X * 3] h) V[ X + Y] ] 
i) V[ X - Y] 
 
2. Escreva um algoritmo que leia um arquivo de números inteiros e apresente o 
somatório dos valores 
3. Escreva um algoritmo que depois de ler um arquivo de inteiros, apresente os seguintes 
resultados: máximo, mínimo, somatório, a média e a quantidade de números superiores a 
média. 
 91
4. Escreva um algoritmo que leia um arquivo com 10 números, e os mostre em ordem 
inversa. 
5. Elaborar um algoritmo que lê um conjunto de 30 valores e os coloca em 2 vetores 
conforme forem pares ou ímpares. O tamanho do vetor é de 5 posições. Se algum vetor 
estiver cheio, escrevê-lo. Terminada a leitura escrever o conteúdo dos dois vetores. Cada 
vetor pode ser preenchido tantas vezes quantos forem necessários. 
6. Escreva um algoritmo que leia dois vetores de 10 posições e faça a multiplicação dos 
elementos de mesmo índice, colocando o resultado em um terceiro vetor. Mostre o vetor 
resultante. 
7. Escreva um algoritmo que leia e mostre um vetor de 20 elementos inteiros. a seguir, 
conte quantos valores pares existem no vetor. 
8. Escreva um algoritmo que leia um vetor de 20 posições e mostre-o. Em seguida, troque 
o primeiro elemento com o último, o segundo com o penúltimo, o terceiro com o 
antepenúltimo, e assim sucessivamente. Mostre o novo vetor depois da troca. 
9. Escrever um algoritmo que gera os 10 primeiros números primos acima de 100 e os 
armazena em um vetor de X(10) escrevendo, no final, o vetor X. 
10. Escrever um algoritmo que lê 2 vetores X(10) e Y(10) e os escreve. Crie, a seguir, um 
vetor Z que seja a união de X com Y. 
11. Escrever um algoritmo que lê 2 vetores X(10) e Y(10) e os escreve. Crie, a seguir, um 
vetor Z que seja a soma entre X e Y. 
12. Escrever um algoritmo que lê 2 vetores X(10) e Y(10) e os escreve. Crie, a seguir, um 
vetor Z que seja o produto entre X e Y. 
13. Faça um algoritmo que leia um vetor (A) de 100 posições. Em seguida, compacte o 
vetor, retirando os valores nulos e negativos. Coloque o resultado no vetor B. 
14. Faça um algoritmo que leia um vetor de 500 posições de números reais e divida todos 
os seus elementos pelo maior valor do vetor. Mostre o vetor após os cálculos. 
15. Uma locadora de vídeos tem guardado, em um vetor de 500 posições, a quantidade 
de filmes retirados por seus clientes durante o ano. Agora, esta locadora está fazendo 
uma promoção e, para cada 10 filmes retirados, o cliente tem direito a uma locação grátis. 
Faça um algoritmo que crie um outro vetor contendo a quantidade de locações gratuitas a 
que cada cliente tem direito. 
 
 
 
 
 
 
 92
Capítulo V - MATRIZES 
 
Matrizes, conjuntos, tabelas ou vetores multidimensionais são estruturas de dados 
similares ao vetor, com a diferença que podem ter várias dimensões. Cada célula 
(componente) de uma matriz será identificada por seu nome e pelos índices que 
representarão suas dimensões. Trabalharemos com matrizes de duas ou três dimensões. 
 
V.1) DECLARAÇÃO DE MATRIZES 
Em pseudocódigo as declarações podem ser representadas como: 
 
 
DECLARE <nome>(<tamanho da primeira dimensão, tamanho da segunda 
dimensão, ... >) COMO <tipo> 
 
 
Onde tipo pode ser: inteiro, real, caractere, lógico. 
 
<nome> = nome do identificador 
< tamanho da primeira dimensão > = define tamanho da primeira dimensão. 
< tamanho da segunda dimensão > = define tamanho da segunda dimensão, etc. 
 
Exemplo: DECLARE A(3,10) COMO INTEIRO 
 
NOME TIPO VALOR 
 
A 
VETOR 10 
INTEIRO 
 
 
 
 
 
 
 
 
 
 Posição 2,5 
 
 
 Posição 1,1 Posição 1,2 Posição 1,10 
 
 
 
Posição 2,1 Posição 3,10 
 
 
 
 
 
 93
V.2) COLOCANDO VALORES NAS MATRIZES 
 
Para a colocação de valores nos matrizes é necessário indicar que posição o valor será 
alocado. Para isso, é necessário utilizar índices (o numero de índices corresponderá a número de 
dimensões da matriz, uma matriz de duas dimensões necessitará de dois índices, uma matriz de três 
dimensões necessitará de três índices). Um índice é um valor inteiro deve ser maior ou igual a 1 
e menor ou igual que a quantidade declarada, colocada entre os parênteses. O comando de 
atribuição, já estudado, pode ser utilizado para a atribuição de valores no vetor. 
 
Por exemplo: 
 
DECLARE A(3,10) COMO INTEIRO 
 
 
 
 
 
 
 
 
 
 
 
Índice referente a linha da matriz 
Valor
Matriz 
A(1,3) ← 12 ( o valor 1 indica a posição linha na matriz e valor 3 posição coluna 
e o valor 12, o valor a ser alocado) 
 
Índice referente a coluna da matriz 
 
 
 
NOME TIPO VALOR 
 
A 
VETOR 10 
INTEIRO 
 
12
 
 
 
 
 
 
 
 
Obs. Cada A(I,J) deve ser tratado como uma variável inteira "comum", isto é, pode-se 
realizar operações aritméticas, relacionais, etc. . Observe que ao colocar o valor no componente, ele 
pode ser manipulado diretamente, isto é, para apanhar o valor que está na matriz não é necessário 
ler o valor, basta acessá-lo diretamente. 
 
 
 
 
 
 
 94
Exemplo: 
 
A(3,10) ← A(3,10) + 1 
 
 A(1,1) ← A(3,10) - A(2,1) 
 
Caso seja escrito uma operação com componentes indefinida, será considerada 
uma operação errada, por exemplo: 
 
A(6,1) ← A(1,5) - 32 ( o componente A(6,1) não existe logo a operação está 
incorreta) 
 
 
V.2.1) Colocando valores no vetor através de leitura 
 
Além da atribuição é possível colocar os valores na matriz através da operação de leitura. 
 
DECLARE A(3,3) COMO INTEIRO 
 
 
 
 
 
ENTRADA DE DADOS: 32 LEIA A(2,2) 
 
 
NOME TIPO VALOR 
 
A 
VETOR 10 
INTEIRO 
 
 
 
 
 
32
 
 
 
 
 
 95
V.2.2) Colocando todos os valores no vetor através de leitura 
 
A) Um valor por linha (os dados na entrada não tem a forma de uma matriz) 
 
DECLARE A(3,3) COMO INTEIRO ENTRADA DE DADOS 
LEIA A(1,1) 12 
LEIA A(1,2) 20 
LEIA A(1,3) 15 
LEIA A(2,1) 1 
LEIA A(2,2) 4 
LEIA A(2,3) 3 
LEIA A(3,1) 5 
LEIA A(3,2)8 
LEIA A(3,3) 2 
 
OU 
 
 
DECLARE A(3,3) COMO INTEIRO 
REPETIR I = 1,3,1 
 REPETIR J = 1,3,1 
 LEIA A(I,J) 
 FIM-REPETIR 
FIM-REPETIR 
 
NOME TIPO VALOR 
 
A 
VETOR 
10 
INTEIRO 
 
12 
 
20 
 
15 
 
 
1 
 
4 
 
3 
 
5 
 
8 
 
2 
 
 
B) Os valores organizados por linha (Forma Matricial: Forma Recomendada) 
 
DECLARE A(3,3) COMO INTEIRO ENTRADA DE DADOS 
LEIA A(1,1), A(1,2), A(1,3) 12 20 15 
LEIA A(2,1), A(2,2), A(2,3) 1 4 3 
LEIA A(3,1), A(3,2), A(3,3) 5 8 2 
 
OU 
 
DECLARE A(3,3) COMO INTEIRO 
REPETIR I = 1,3,1 
 LEIA A(I,1), A(1,2), A(I,3) 
FIM-REPETIR 
 
OU 
DECLARE A(3,3) COMO INTEIRO 
REPETIR I = 1,3,1 
 LEIA A(I,J), J=1,3,1 
FIM-REPETIR 
 
NOME TIPO VALOR 
 
A 
VETOR 
10 
INTEIRO 
 
12 
 
20 
 
15 
 
 
1 
 
4 
 
3 
 
5 
 
8 
 
2 
 
 96
V.3) IMPRIMINDO A MATRIZ 
 
A) Um valor por linha 
 
ESCREVA A(1,1) 
ESCREVA A(1,2) 
ESCREVA A(1,3) 
ESCREVA A(2,1) 
ESCREVA A(2,2) 
ESCREVA A(2,3) 
ESCREVA A(3,1) 
ESCREVA A(3,2) 
ESCREVA A(3,3) 
 
 
REPETIR I = 1,3,1 
 REPETIR J = 1,3,1 
 ESCREVA A(I,J) 
 FIM-REPETIR 
FIM-REPETIR 
 
12 
20 
15 
1 
4 
3 
5 
8 
2 
 
 
B) Os valores organizados por linha (Forma Matricial: Forma Recomendada) 
 
ESCREVA A(1,1), A(1,2), A(1,3) 
ESCREVA A(2,1), A(2,2), A(2,3) 
ESCREVA A(3,1), A(3,2), A(3,3) 
 
OU 
 
DECLARE A(3,3) COMO INTEIRO 
REPETIR I = 1,3,1 
 ESCREVA A(I,1), A(1,2), A(I,3) 
FIM-REPETIR 
 
OU 
 
DECLARE A(3,3) COMO INTEIRO 
REPETIR I = 1,3,1 
 ESCREVA A(I,J), J=1,3,1 
FIM-REPETIR 
 
NOME TIPO VALOR 
 
A 
VETOR 
10 
INTEIRO 
 
12 
 
20 
 
15 
 
 
1 
 
4 
 
3 
 
5 
 
8 
 
2 
 
 
12 20 15 
1 4 3 
5 8 2 
 
 97
V.4) Exercícios Resolvidos 
 
1. Escreva um algoritmo para ler uma matriz (5,5) de números inteiros e imprimi-los acompanhados 
de sua média aritmética. 
 
DECLARE A(5,5), I, SOMA, J COMO INTEIRO 
DECLARE MEDIA COMO REAL 
 
REPETIR I = 1,5,1 
 LEIA A(I,J), J = 1,5,1 
 ESCREVA A(I,J), J = 1,5,1 
FIM-REPETIR 
 
SOMA ← 0 
REPETIR I = 1,5,1 
 REPETIR J = 1,5,1 
 SOMA ← SOMA + A(I,J) 
 FIM-REPETIR 
FIM-REPETIR 
 
MEDIA ← SOMA / 25 
ESCREVA A(I), MEDIA 
 
 
2. Escreva um algoritmo para ler uma matriz (3,3) de números inteiros e imprimi-los e imprimir os 
valores pares indicando a linha, coluna da matriz. 
 
DECLARE A(3,3), I, J COMO INTEIRO 
 
REPETIR I = 1,3,1 
 LEIA A(I,J), J = 1,3,1 
 ESCREVA A(I,J), J = 1,3,1 
FIM-REPETIR 
 
REPETIR I = 1,3,1 
 REPETIR J = 1,3,1 
 SE ( MOD( A(I,J), 2) = 0 ) THEN 
 ESCREVA A(I,J), ‘ E PAR E ESTA NA POSICAO LINHA= ’,I, ‘E COLUNA =’, J 
 FIM-SE 
 FIM-REPETIR 
FIM-REPETIR 
 
 
 
 
 
 
 
 98
3. Escreva um algoritmo para ler uma matriz (3,3) de números inteiros e imprimi-los e crie um vetor 
com os valores impares e imprima o vetor. 
 
DECLARE A(3,3), I, J, B(9), K COMO INTEIRO 
 
REPETIR I = 1,3,1 
 LEIA A(I,J), J = 1,3,1 
 ESCREVA A(I,J), J = 1,3,1 
FIM-REPETIR 
 
K ← 0 
REPETIR I = 1,3,1 
 REPETIR J = 1,3,1 
 SE ( MOD( A(I,J), 2) # 0 ) THEN 
 K ← K + 1 
 B(K) ← A(I,J) 
 FIM-SE 
 FIM-REPETIR 
FIM-REPETIR 
 
REPETIR I = 1,K,1 
ESCREVA B(K) 
FIM-REPETIR 
 
 
4. Escreva um algoritmo que leia duas matrizes M(3,4) e N(4,2) e cria uma matriz que seja o 
produto matricial de M por N;. 
 
Nota: A(3,4) X B(4,2) = C(3,2), em geral A(M,N) X B(N,K) = C(M,K), onde cada 
elemento de C é definido como: 
∑
=
=
n
i
isrixbasrc
1
),(
 
O elemento de C na posição r,s é obtido considerando-se a linha r da primeira matriz e a coluna s da 
segunda matriz e somando-se os produtos de elementos correspondentes da linha r e coluna s. 
 
DECLARE A(3,4), B(4,2) , C(3,2) R,S, SOMA, I COMO INTEIRO 
 
REPETIR I = 1,3,1 
 LEIA A(I,J), J = 1,4,1 
 ESCREVA A(I,J), J = 1,3,1 
FIM-REPETIR 
 
 
 
 99
REPETIR I = 1,4,1 
 LEIA B(I,J), J = 1,2,1 
 ESCREVA B(I,J), J = 1,3,1 
FIM-REPETIR 
 
REPETIR R = 1,3,1 (fixa a linha da primeira matriz) 
 REPETIR S = 1,2,1 (fixa a coluna da segunda matriz) 
 SOMA ← 0 
 REPETIR I = 1,4,1 (varia os elementos para multiplicação) 
 SOMA ← SOMA + A(R,I) * B(I,S) 
 FIM- REPETIR 
 C(R,S) ← SOMA 
 FIM-REPETIR 
FIM-REPETIR 
 
REPETIR I = 1,3,1 
 ESCREVA C(I,S), S = 1,2,1 
FIM-REPETIR 
 
 
V.5) EXERCÍCIOS PROPOSTOS 
1. Faça um algoritmo que leia uma matriz 15 X 15 de reais e calcule a soma dos elementos da 
diagonal secundária. 
2. Escreva um algoritmo que leia um número inteiro A e uma matriz V 30x30 de inteiros. Conte 
quantos valores iguais a A estão na matriz.. 
3. Escreva um algoritmo que lê uma matriz M(5,5) e calcula as somas: 
 
a) da linha 4 de M 
b) da coluna 2 de M 
c) da diagonal principal 
d) da diagonal secundária 
e) de todos os elementos da matriz M 
Escrever essas somas e a matriz. 
4. Elaborar um algoritmo que lê duas matrizes M(4,6) e N(6,4) e cria uma matriz que seja: 
b) a soma de M com N; 
c) a diferença de M com N; 
Escrever as matrizes lidas e as calculadas. 
 100
4. Elaborar um algoritmo que lê uma matriz M(6,6) e um valor A e multiplica a matriz M pelo 
valor A e coloca os valores da matriz multiplicados por A em um vetor de V(36) e escreve no 
final o vetor V. 
 
6. Escrever um algoritmo que lê uma matriz M(10,10) e a escreve. Troque, a seguir: 
a) a linha 2 com a linha 8 
b) a coluna 4 com a coluna 10 
c) a diagonal principal com a diagonal secundária 
d) a linha 5 com a coluna 10. 
Escreva a matriz assim modificada. 
7. Faça um algoritmo que leia uma matriz 20x15 de inteiros. Calcule e mostre a soma das linhas 
pares da matriz. 
8. Faça um algoritmo que leia uma matriz 20x20 de reais e some cada uma das linhas, 
armazenando o resultado da soma em um vetor. A seguir, multiplique cada elemento pela soma 
da sua linha. Mostre a matriz resultante. 
 
9. Faça um algoritmo que leia uma matriz 50x50 de números reais e encontre o maior valor da 
matriz. 
 
10. Faça um algoritmo que leia uma matriz 50x50 de números reais e encontre o maior valor da 
matriz. A seguir, multiplique cada elemento da diagonal principal pelo maior valor. Mostre a matriz 
após as multiplicações 
 
 
 
 101
	Universidade Federal Fluminense
	Prof. Leonardo Cruz da Costa
	Capítulo I - INTRODUÇÃO
	I.2 REPRESENTAÇÃO DE ALGORITMOS
	Capítulo II - CONSTRUÇÃO DE ALGORITMOS
	OS PASSOS DE UM ALGORITMO
	A\) OPERAÇÕES ELEMENTARES
	A.1\) ATRIBUIÇÃO
	A criação de nomes é livre?
	Regra para Construção de Identificadores
	Como os valores serão colocados na tabela?
	Atribuição: associa um identificador a uma expressão (valor)
	A.1.1\) EXPRESSÕES ARITMÉTICAS
	A.1.2\) EXPRESSÕES RELACIONAIS
	A.1.3\) EXPRESSÕES LÓGICAS \(CONDIÇÕ
	AND
	OR
	NOT
	A.1.3.1\) NOÇÕES DE LÓGICA MATEMÁTICA
	CONCEITO DE PROPOSIÇÃO
	OS SÍMBOLOS DA LING. DO CÁLCULO PROPOSICIONAL
	Variáveis Proposicionais
	Obtendo o valor lógico
	A.1.4 ) PRIORIDADE ENTRE OS OPERADORES
	A.1.5 \) EXERCÍCIOS RESOLVIDOS
	Encontre os erros dos seguintes comandos de atribuição.
	DECLARE A COMO LÓGICO�DECLARE B, C �
	DECLARE A, B, C COMO INTEIROnullA ( 0
	X ( Y nullY ( Z
	A.2\) OPERAÇÕES DE ENTRADA E SAÍDA DE �
	A.2.1) LEITURA
	Exemplo 1:
	LEIA A
	Simulação do Funcionamento da Leitura
	Obtém do meio externo, a informaçãodisponível para a leitur
	e armazena na(s) variável(eis) definida.
	A leitura é uma atribuição cujos valores estão externos ao a
	A.2.2) ESCRITA
	Forma Geral:
	A instrução escreva pode ser usada para escrever mensagens, 
	ESCREVA ‘DADOS INVALIDOS’
	DADOS INVALIDOS’�A.3\) EXEMPLOS DE ALGO
	DECLARE A COMO INTEIRO
	LEIA A
	ESCREVA ‘O VALOR LIDO = ‘, A
	Simulação do algoritmo
	DECLARE A COMO INTEIRO
	LEIA A
	e armazena na variável definida.
	ESCREVA ‘O VALOR LIDO = ‘, A
	DECLARE A, B COMO INTEIRO
	LEIA A
	ESCREVA ‘O VALOR LIDO = ‘, A
	Simulação do algoritmo
	DECLARE A, B COMO INTEIRO
	LEIA A
	e armazena na variável definida.
	ESCREVA ‘O VALOR LIDO = ‘, A
	LEIA B
	e armazena na variável definida.
	ESCREVA ‘O VALOR LIDO = ‘, B
	DECLARE A COMO INTEIRO
	LEIA A
	ESCREVA ‘O VALOR LIDO = ‘, A
	Simulação do algoritmo
	DECLARE A COMO INTEIRO
	LEIA A
	e armazena na variável definida.
	ESCREVA ‘O VALOR LIDO = ‘, A
	LEIA A
	e armazena na variável definida. Observe que o valor armazen
	ESCREVA ‘O VALOR LIDO = ‘, A
	DECLARE V1, V2, RESULTADO COMO INTEIRO
	LEIA V1, V2
	RESULTADO ( V1 + V2
	ESCREVA ‘ VALORES LIDOS =’, V1, V2
	ESCREVA ‘A SOMA DOS VALORES = ‘, RESULTADO
	Simulação do algoritmo
	DECLARE V1, V2, RESULTADO COMO INTEIRO
	LEIA V1, V2
	e armazena na variável definida.
	ESCREVA ‘ VALORES LIDOS =’, V1, V2
	Leia dois valores inteiros e calcule a soma (variação da sol
	DECLARE V1, V2, RESULTADO COMO INTEIRO
	LEIA V1
	LEIA V2
	RESULTADO ( V1 + V2
	ESCREVA ‘A SOMA DOS VALORES = ‘, RESULTADO
	5 LEIA V2
	Leia dois valores inteiros e calcule a soma (variação da sol
	DECLARE V1, V2, RESULTADO COMO INTEIRO
	LEIA V1
	LEIA V2
	RESULTADO ( V1 + V2
	ESCREVA ‘A SOMA DOS VALORES = ‘, RESULTADO
	A modificação aqui apresentada está na maneira como os valor
	ANTES
	ESCREVA ‘ VALORES LIDOS =’, V1, V2
	ESCREVA ‘ PRIMEIRO VALOR LIDO =’, V1
	A.4\) EXERCÍCIOS PROPOSTOS
	B\) SELEÇÃO
	B.1\) SELEÇÃO DE UM RAMO
	Simulação do algoritmo
	DECLARE A COMO INTEIRO
	LEIA A
	e armazena na variável definida.
	B.2\) SELEÇÃO DE DOIS RAMOS
	B.3) EXEMPLOS DE ALGORITMOS
	Variação da solução
	Variação da solução
	Aninhamentos
	B.4\) EXERCÍCIOS PROPOSTOS
	Um imposto é calculado com base na seguinte tabela:
	DECLARE A COMO INTEIRO ENTRADA DE DADOS
	LEIA A 17
	ESCREVA ‘O VALOR LIDO = ‘, A 34
	LEIA A 1
	LEIA A 78
	LEIA A
	LEIA A
	DECLARE A COMO INTEIRO ENTRADA DE DADOS
	LEIA A 17
	ESCREVA ‘O VALOR LIDO = ‘, A 34
	LEIA A 1
	LEIA A 78
	LEIA A 2
	LEIA A 8
	LEIA A
	ESCREVA ‘O VALOR LIDO = ‘, A
	LEIA A
	LEIA A
	LEIA A
	LEIA A
	DECLARE A COMO INTEIRO
	LEIA A
	ESCREVA ‘O VALOR LIDO = ‘, A
	LEIA A
	LEIA A
	LEIA A
	LEIA A
	LEIA A
	ESCREVA ‘O VALOR LIDO = ‘, A
	LEIA A
	LEIA A
	LEIA A
	LEIA A
	C.2\) NÚMERO CONHECIDO DE REPETIÇÕES
	LEIA A
	DECLARE A COMO INTEIRO
	LEIA A
	ESCREVA ‘O VALOR LIDO = ‘, A
	LEIA A
	LEIA A
	LEIA A
	ESCREVA ‘O VALOR LIDO = ‘, A
	LEIA A
	LEIA A
	LEIA A
	Executa a seqüência de passos
	LEIA A
	Verifica se o novo valor da variável
	de controle ultrapassou o valor
	Sair da Repetição
	Simulação do algoritmo
	DECLARE A, I COMO INTEIRO
	LEIA A
	ESCREVA ‘O VALOR LIDO = ‘, A
	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 d
	LEIA A
	ESCREVA ‘O VALOR LIDO = ‘, A
	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 d
	REPETIR I = 1 ,10, 1
	incrementa a variável de controle ( passo vindo do esquema d
	LEIA A
	ESCREVA ‘O VALOR LIDO = ‘, A
	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 d
	C.2.1\) LEITURA DE DADOS X REPETIÇÂ
	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 )
	LEIA A 78 ( 5ª leitura )
	LEIA A 2 ( 7ª leitura )
	LEIA A 8 ( 9ª leitura )
	LEIA A
	ESCREVA ‘O VALOR LIDO = ‘, A
	LEIA A
	LEIA A
	LEIA A
	LEIA A
	LEIA A
	FIM-REPETIR �DECLARE A COMO INTEIRO ENTRADA DE DA
	LEIA A 17 ( 1ª leitura )
	ESCREVA ‘O VALOR LIDO = ‘, A 34 ( 2ª leitura )
	LEIA A 1 ( 3ª leitura )
	LEIA A 78 ( 5ª leitura )
	LEIA A 2 ( 7ª leitura )
	LEIA A 8 ( 9ª leitura )
	LEIA A
	ESCREVA ‘O VALOR LIDO = ‘, A
	LEIA A
	LEIA A
	LEIA A
	LEIA A
	LEIA A
	C.2.2\) Exercícios Resolvidos
	C.2.3\) EXERCÍCIOS PROPOSTOS
	C.3\) OUTRA UTILIZAÇÃO DA INSTRUÇÂO RE
	ESCREVA ‘O VALOR I = ‘, I
	ESCREVA ‘O VALOR I = ‘, I
	ESCREVA ‘O VALOR I = ‘, I
	S ( S + I
	S ( S * I
	S ( S * I
	C.3.1\) EXERCÍCIOS PROPOSTOS
	B.3\) NÚMERO NÃO CONHECIDO DE REPETIÇÕ
	DECLARE A COMO INTEIRO ENTRADA DE DADOS
	LEIA A 17
	ESCREVA ‘O VALOR LIDO = ‘, A 34
	LEIA A 1
	LEIA A 78
	LEIA A . finito
	LEIA A
	ENTRADA DE DADOS
	17
	34
	1
	78
	.
	ENTRADA DE DADOS
	17
	34
	1 Apenas os valores 17, 34 e 1 serão processados
	78
	.
	DECLARE A COMO INTEIRO
	LEIA A
	ENQUANTO A # 0 FAÇA
	FIM-ENQUANTO
	Simulação do algoritmo
	DECLARE A COMO INTEIRO
	LEIA A
	ESCREVA ‘O VALOR LIDO = ‘, A
	LEIA A
	ESCREVA ‘O VALOR LIDO = ‘, A (processamento do valor lido, q
	ESCREVA ‘O VALOR LIDO = ‘, A (processamento do valor lido, q
	LEIA A
	B.4) REPETIR X ENQUANTO
	S ( S + I
	S \( S + I algorit�
	OBS.: o algoritmo anterior, utilizando enquanto, não faz uso
	é respeitada.
	DECLARE I, S COMO INTEIROnullS ( 0 nullI ( 1
	ENQUANTO ( I < 10 OR I = 10 ) FAÇA
	B.4\) EXERCÍCIOS PROPOSTOS
	III.1\) EXERCÍCIOS RESOLVIDOS
	REPETIR I = 1 , 100, 1
	III.2 – EXERCÍCIOS PROPOSTOS
	Capítulo IV - VETOR
	IV.1\) DECLARAÇÃO DE VETORES
	IV.2) COLOCANDO VALORES NOS VETORES
	IV.2.1\) Colocando valores no vetor atra�
	IV.2.2\) Colocando todos os valores no v�
	IV.3) IMPRIMINDO O VETOR
	REPETIR I = 1,10,1
	ESCREVA A(I), I = 1,10,1
	IV.4\) Exercícios Resolvidos
	POSICAOMENOR ( 1
	LEIA A(I), I = 1,30,1
	IV.5\) EXERCÍCIOS
	V.1\) DECLARAÇÃO DE MATRIZES
	V.2) COLOCANDO VALORES NAS MATRIZES
	V.2.1\) Colocando valores no vetor atrav�
	V.2.2\) Colocando todos os valores no ve�
	V.3) IMPRIMINDO A MATRIZ
	V.4\) Exercícios Resolvidos
	SE ( MOD( A(I,J), 2) # 0 ) THEN
	ESCREVA B(I,J), J = 1,3,1
	V.5\) EXERCÍCIOS PROPOSTOS

Mais conteúdos dessa disciplina