Anda di halaman 1dari 15

Estrutura de Repetio

Estrutura de Repetio
Usada quando se deseja que um trecho do

algoritmo seja repetido vrias vezes. A quantidade de repeties pode ser fixo (predeterminado) ou depender de uma condio (indeterminado). Para os laos predeterminados, de forma geral podem ser usados os tipos de laos de repetio: enquanto, repita e para. Para os laos indeterminados, podem ser usados apenas os laos de repetio dos tipos enquanto e repita.

Por exemplo, imagine um programa que pea a leitura de um valor para a

varivel X, multiplique este valor por 3, implicando-o varivel de resposta R e apresente o valor de R obtido, repetindo esta seqncia por 5 vezes, conforme mostrado abaixo:

Algoritmo pede_numero x, r : inteiro Inicio Leia (x) R <- x*3 Escreva (r) Leia (x) R <- x*3 Escreva (r) Leia (x) R <- x*3 Escreva (r) Leia (x) R <- x*3 Escreva (r) Leia (x) R <- x*3 Escreva (r) Fimalgoritmo

Para esses casos existem comandos apropriados para efetuar a repetio de determinados trechos de programas, o nmero de vezes que for necessrio.

Lao enquanto...faa
O

lao de repetio do tipo enquanto...faca caracteriza-se por efetuar um teste condicional no incio do lao. Desta forma, possvel verificar se permitido executar o trecho de instrues subordinado condio. Para este tipo de estrutura ser utilizado o cdigo em portugus estruturado enquanto...faca e fim_enquanto. Portugus estruturado enquanto (condio) faa
Instrues executadas enquanto condio for verdadeira

fim_enquanto

Exemplo: dever ser executado um mesmo trecho de programa por 5 vezes.

Algoritmo:
1 Criar uma varivel para servir como contador com valor inicial 1;
2 Enquanto o valor do contador for < ou = a 5. processar os passos 3,4,5; 3 Ler um valor para a varivel X; 4 Efetuar a multiplicao do valor de X por 3, implicando o resultado em R; 5 Apresentar o valor calculado contido na varivel R; 6 Acrescentar +1 varivel do tipo contador, definida no passo 1; 7 Quando o contador for maior que 5, encerrar o processamento do lao. Algoritmo pede_numero x, r ,i : inteiro

Inicio i <- 1 Enquanto (i <= 5) faa Leia (x) r <- x*3 Escreva (r) i <- i+1 fimenquanto
Fimalgoritmo

Exemplo: Suponha os algoritmos abaixo que calculam o valor

de x10, sendo x fornecido pelo usurio. Em termos de programao, pode-se ver a diferena na escrita dos programas a seguir, com e sem o uso de um lao de repetio (loop):
Exemplo com repetio
inicio x,y,z:inteiro leia (x); y <- x; z <- 1; enquanto (z < 10) faa y <- y * x; z <- z + 1; fimenquanto escreva (y); Fim

Exemplo sem repetio


Inicio x,y: inteiro leia (x); y <- x; y <- y * x; y <- y * x; y <- y * x; y <- y * x; ... ... y <- y * x; escreva (y); fim

Exerccio de Fixao
1.

Apresentar todos os valores numricos inteiros impares situados na faixa de 0 a 20. Para verificar se o nmero impar, efetuar dentro do lao a verificao lgica desta condio com a instruo se, perguntando se o nmero impar; sendo, mostre-o; no sendo, passe para o prximo passo. Faa um algoritmo que o usurio informa um nmero e o algoritmo verifica se ele um nmero triangular. Obs.: Um nmero triangular quando o resultado do produto de trs nmeros consecutivos. Exemplo: 24 = 2 x 3 x 4. Uma P.A. (Progresso Aritmtica) determinada pela sua razo r e pelo primeiro termo a1. Faa um algoritmo em portugol, que seja capaz de mostrar os termos de uma P.A., dado a razo (r), o primeiro termo (a1) e o nmero de termos (i). Frmula que calcula os termos: an = a1 + (n 1) * r Faa um algoritmo que o usurio entre com nmeros e o algoritmo imprima o triplo de cada nmero. O algoritmo encerra quando o usurio entrar com o nmero 999

2.

3.

4.

Lao Repita
O lao de repetio do tipo repita caracteriza-se

por efetuar um teste condicional no final do lao. Desta forma, as instrues subordinadas ao lao sero executadas no mnimo uma vez. Para este tipo de estrutura ser utilizado o cdigo em portugus estruturado repita e at_que. Portugus Estruturado repita at_que (<condio>)

Instrues executadas at que condio torne-se verdadeira

Exemplo: dever ser executado um mesmo trecho de programa por 5 vezes.

Algoritmo:
1 Criar uma varivel para servir como contador;
2 Ler um valor para a varivel X; 3 Efetuar a multiplicao do valor de X por 3, implicando o resultado em R; 4 Apresentar o valor calculado contido na varivel R; 5 Acrescentar +1 varivel do tipo contador; 6 Repetir os passos 2,3,4 e 5 at que o contador seja maior que 5. Algoritmo pede_numero x, r ,i : inteiro inicio i <- 1 repita Leia (x) r <- x*3 Escreva (r) i <- i+1 ate (i>5) Fimalgoritmo

Lao repita
Exemplo: Suponha os algoritmos abaixo que calculam o valor de

x10, sendo x fornecido pelo usurio. Em termos de programao, pode-se ver a diferena na escrita dos programas a seguir, com e sem o uso de um lao de repetio (loop):
Exemplo com repetio inicio inteiro x,y,z; leia (x); y <- x; z <- 1; repita y <- y * x; z <- z + 1; at que (z>10) escreva (y); fim

Exemplo sem repetio inicio inteiro x,y; leia (x); y <- x; y <- y * x; y <- y * x; y <- y * x; y <- y * x; ... ... y <- y * x; escreva (y); fim

Exerccio de Fixao
1. 2. 3.

Apresentar todos os nmeros divisveis por 5 que sejam menores que 15. Crie um algoritmo que o usurio entre com vrios nmeros inteiros e positivos e imprima o produto dos nmeros mpares e a soma dos nmeros pares. Crie um algoritmo que ajude o DETRAN a saber o total de recursos que foram arrecadados com a aplicao de multas de trnsito.

O algoritmo deve ler as seguintes informaes para cada motorista: - O nmero da carteira de motorista (de 1 a 4327)

- Nmero de multas;
- Valor da cada uma das multas. Deve ser impresso o valor da dvida de cada motorista e ao final da leitura o total de recursos arrecadados (somatrio de todas as multas). O algoritmo dever imprimir tambm o nmero da carteira do motorista que obteve o maior nmero de multas

Lao Para
O lao de repetio do tipo para caracteriza-se

por efetuar um lao por um determinado nmero de vezes previamente definido. Para este tipo de estrutura ser utilizado o cdigo em portugus estruturado para...de...at...passo...faa e fim_para. Portugus Estruturado
Para <inicio> at <final> passo incremento faa

Instrues executadas at contador atingir seu final


Fim_para

Exemplo: dever ser executado um mesmo trecho de programa por 5 vezes.

Algoritmo:
1 Definir um contador variando de 1 a 5;
2 Ler um valor para a varivel X; 3 Efetuar a multiplicao do valor de X por 3, implicando o resultado em R; 4 Apresentar o valor calculado contido na varivel R; 5 Repetir os passos 2,3,4 e 5 at que o contador seja encerrado. Algoritmo pede_numero x, r ,i : inteiro inicio Para i de 1 at 5 passo 1 faca Leia (x) r <- x*3 Escreva (r) fimpara Fimalgoritmo

Lao para
Exemplo: Suponha os algoritmos abaixo que calculam o valor de

x10, sendo x fornecido pelo usurio. Em termos de programao, pode-se ver a diferena na escrita dos programas a seguir, com e sem o uso de um lao de repetio (loop):
Exemplo com repetio inicio inteiro x,y,z; leia (x); y <- x; Para z de 1 at 10 passo 1 faa y <- y * x; z <- z + 1; Fim para escreva (y); fim

Exemplo sem repetio inicio inteiro x,y; leia (x); y <- x; y <- y * x; y <- y * x; y <- y * x; y <- y * x; ... ... y <- y * x; escreva (y); fim

Exerccio de Fixao
1.

Em um foguete experimental, sabe-se que a sua altura em relao ao solo, a partir de seu lanamento, pode ser calculada pela equao a seguir. Esta equao d uma medida em ps.

h=3*t2 onde t o tempo em segundos.


Sendo assim, escreva um algoritmo que apresente o monitoramento desta altura (em metros!) desde o seu lanamento (t = 0 segundos) at o tempo de 15 segundos. Observao: considere a converso 1 p = 0.3048 metros.