Você está na página 1de 5

APOSTILA DE ALGORITMOS I

__________________________________________________________ Gilene B. Gomes & Alexandre M. Gomes ___

8. Comando de repetição com teste no final (repita .. até)

Esta estrutura caracteriza-se por efetuar um teste lógico no final de um looping, sendo parecida
com a estrutura enquanto.

O funcionamento do repita é controlado por decisão, porém este tipo de looping irá efetuar a
execução de um conjunto de instruções pelo menos uma vez antes de verificar a validade da condição
estabelecida. Diferente da estrutura enquanto que executa somente um conjunto de instruções
enquanto a condição é verdadeira.

Desta forma, repita tem seu funcionamento em sentido contrário ao enquanto, pois sempre irá
processar um conjunto de instruções, no mínimo uma vez, até que a condição se torne Verdadeira. Para
a estrutura repita um conjunto de instruções é executado enquanto a condição se mantém Falsa e até
que ela seja Verdadeira.

A sintaxe deste comando será:

repita
C1;
C2;
Cn;
até <condição>;

NOTA: Os comandos do bloco são executados pelo menos uma vez. Quando a
condição é encontrada, ela é testada. Se for verdadeira o comando seguinte fora
do bloco será executado. Se for falsa, os comandos do bloco são executados
novamente até que a condição se torne verdadeira.

O comando repita .. até é equivalente ao comando enquanto, conforme será mostrado no


exemplo a seguir:

início início
I  1; I  1;
enquanto I <= 18 faça repita
A  B + C; A  B + C;
escreva (A); escreva (A);
I  I + 1; I  I + 1;
fim enquanto; até I > 18;
fim. fim.

Observe que a utilização de um comando repita no lugar de um comando enquanto


corresponde a utilizar como <condição> para o repita a negação da <condição> do enquanto.

____ http://www.bracad.com.br ________________________________________________________________________________ 26


APOSTILA DE ALGORITMOS I
__________________________________________________________ Gilene B. Gomes & Alexandre M. Gomes ___

Exemplo: Fazer um algoritmo para ler dois números inteiros e garantir que o primeiro
seja menor que o segundo. Ou seja, o algoritmo só é finalizado quando a condição for
satisfeita.

Algoritmo
x, y : inteiro;
início
repita
escreva ( ‘Digite dois números, o primeiro menor que o segundo:’ );
leia ( x, y );
até x < y;
fim.

Exemplo: Fazer um algoritmo para mostrar a soma parcial de vários números reais
fornecidos como entrada. Finalizar quando a soma ultrapassar 15.000.

Algoritmo
soma, num : real;
início
soma  0;
repita
leia ( num );
soma  soma + num;
escreva ( ‘Soma parcial:’, soma );
até soma > 15000;
fim.

8.1. Exercícios

1. Em relação ao algoritmo abaixo, responda:


a) Quais são as variáveis utilizadas e seus respectivos tipos? O que o algoritmo faz?
b) Qual seria o resultado obtido em SOMA, se a condição do comando repita fosse PAR > 20?
c) Qual seria o resultado obtido em SOMA, se a condição do comando repita fosse PAR > 120?

Algoritmo
PAR, SOMA : inteiro;
início
PAR  100;
SOMA  0;
repita
SOMA  SOMA + PAR;
PAR  PAR + 2;
até PAR > 200;
escreva (SOMA);
fim.

____ http://www.bracad.com.br ________________________________________________________________________________ 27


APOSTILA DE ALGORITMOS I
__________________________________________________________ Gilene B. Gomes & Alexandre M. Gomes ___

2. Executando o seguinte algoritmo, que valores serão escritos?

Algoritmo
N, QUADRADO : inteiro;
início
N  5;
repita
QUADRADO  N ** 2;
escreva (QUADRADO);
N  N – 1;
até N = 1;
fim.

3. Executando o seguinte algoritmo, que valores serão escritos?

Algoritmo
A, Q, TERMO : inteiro;
início
A  1;
Q  3;
TERMO  A;
repita
escreva (TERMO);
TERMO  TERMO * Q;
até TERMO >= 2000;
fim.

4. Dado o algoritmo abaixo e os valores de entrada 10, 20, 15, 0 E 4, responda:

Algoritmo
x, s, z : inteiro;
início
s  100;
leia ( x );
repita
s  s – x;
z  z + x;
leia ( x );
até x = 0;
leia ( x );
z  x + x;
fim.

Ao final: x = ______ z = ______ s = ______

____ http://www.bracad.com.br ________________________________________________________________________________ 28


APOSTILA DE ALGORITMOS I
__________________________________________________________ Gilene B. Gomes & Alexandre M. Gomes ___

5. Criar um algoritmo para informar ao usuário que devem ser digitados dois números pares, ler os
dois números e garantir que eles são pares.

6. Construir um algoritmo para cada um dos itens abaixo para:


1. ler vários números reais e mostrar a soma parcial dos números. Finalizar o algoritmo quando a
soma ultrapassar 500.
2. ler dez números e mostrar o produto dos ímpares e a soma dos pares.
3. ler o sexo de 10 pessoas. Garantir que o sexo será ( F/M ). Mostrar a quantidade de mulheres e
a quantidade de homens.
4. ler a idade de 15 pessoas; mostrar:
a) quantidade de crianças (0 a 12 anos);
b) quantidade de jovens (13 a 19 anos);
c) quantidade de adultos (20 a 60 anos);
d) quantidade de idosos (maiores que 60 anos).
5. ler a idade de 8 pessoas e mostrar a menor idade.

7. Escrever um algoritmo para calcular e mostrar os n primeiros termos de uma progressão


geométrica (P.G.) de elemento inicial a e razão r.
Exemplo: n = 4 a = 2 r = 3
2 – 6 – 18 – 54

8. Criar um algoritmo para calcular e mostrar o fatorial do número N, cujo valor é fornecido como
entrada.
Exemplo: 4! = 4 x 3 x 2 x 1 = 24
Exemplo: 3! = 1 x 2 x 3 = 6

9. Elaborar um algoritmo para ler os dados (idade e sexo) de 10 pessoas; calcular e mostrar:
a) quantas pessoas tem mais de 15 anos;
b) quantas mulheres com menos de 25 anos; e
c) quantos homens com 18 anos.

10. Fazer um algoritmo para calcular e mostrar o produto dos números ímpares compreendidos entre
dois números lidos. Garantir que o primeiro número é menor que o segundo.

11. Para cada uma das 200 mercadorias diferentes com que um armazém trabalha dispõe-se dos
seguintes dados:
 nome da mercadoria;
 preço unitário;
 quantidade total vendida no mês.

Elaborar um algoritmo para calcular e mostrar o total de vendas (preço unitário x quantidade
vendida) de cada mercadoria realizada no mês e o faturamento total mensal do armazém.

____ http://www.bracad.com.br ________________________________________________________________________________ 29


APOSTILA DE ALGORITMOS I
__________________________________________________________ Gilene B. Gomes & Alexandre M. Gomes ___

12. Num frigorífico existem 90 bois. Cada boi traz preso em seu pescoço um cartão contendo seu
número de identificação e seu peso. Fazer um algoritmo que escreva o número e peso do boi mais
gordo e do boi mais magro.

13. Elaborar um algoritmo para ler um número e mostrar se é primo ou não.


Regra: Um número é primo quando é divisível somente por um e por ele mesmo.

14. Criar um algoritmo com o comando enquanto e outro com o comando repita para validar os
seguintes dados:
a) ler o sexo ( F/M )
b) ler a idade ( >0 )
c) ler a altura ( 1.20 – 2.10 )
d) ler o estado civil ( S/V/D/Q/C )
e) ler dois números ( 1º > 2º )
f) ler dois números ( ímpares )
g) ler três números ( ordem crescente )
h) ler dois números ( soma seja par )
i) ler um número ( negativo )

15. Escrever um algoritmo para ler dez números e mostra-los por extenso. Garantir que os números
digitados são de 1 a 10.

16. Criar um algoritmo para ler vários números e mostrar a média parcial dos números. Finalizar
quando a média ultrapassar 500.

____ http://www.bracad.com.br ________________________________________________________________________________ 30