Sie sind auf Seite 1von 16

Algoritmo e Programao

Tathiana E. Silva (tathiana.sb@gmail.com)


Estruturas de Repetio
Para repetir um conjunto de procedimentos
at que determinado objetivo seja atingido,
que quando a repetio se encerra.
Todas as estruturas de repetio tem em
comum o fato de haver uma condio de
controle (expresso lgica) que testada em
cada ciclo para determinar se a repetio
prossegue ou no.

Ex: calcule a mdia aritmtica das notas de 30 alunos;
calcule a mdia aritmtica de vrios valores digitados
at que o nmero 0 seja digitado; calcular a expresso
Sn = 1
1
+ 2
2
+ 3
3
+ ... + n
n
.
Estruturas de Repetio
Existem 3 estruturas de repetio e a
diferena bsica entre elas o momento no
qual a condio de controle ser executada:
para-faa tem embutida um mecanismo de
controle para determinar quando a repetio
dever ser terminada;
enquanto-faa primeiro testa a condio
para depois realizar o bloco de comando;
repita-at primeiro executa o bloco para
depois realizar o teste.
Estruturas de Repetio
Para casos onde se deseja executar os
comandos um nmero fixo de vezes, onde
este nmero j conhecido, existe a estrutura
para-faa:

para <varivel> de <valor-inicial> ate <valor-limite> faca
<seqncia-de-comandos>
fimpara

A <seqncia-de-comandos> ser executada
cada vez que a varivel receber um valor,
comeando com o <valor-inicial> e indo at o
<valor-limite>, sendo incrementada de um
em um.
Estruturas de Condio
Ex1: criar um algoritmo que escreva os
nmeros de 1 a 10 em oredem crescente.

algoritmo "exemplo1"
var
j: inteiro
inicio
para j de 1 ate 10 faca
escreva (j:3)
fimpara
fimalgoritmo

Estruturas de Condio
Ex2: criar um algoritmo que leia 5 nomes e
escreva-os na ordem em que foram lidos.

algoritmo "exemplo2"
var
nome : caracter
I : inteiro
inicio
para I de 1 ate 5 faca
escreval (Entre com o nome: )
leia(nome)
escreval (I, - ,nome)
fimpara
fimalgoritmo
Estruturas de Condio
Execuo:
Nmero Nome Impresso
1 Jos 1 - Jos
2 Antnio 2 - Antnio
3 Joo 3 - Joo
4 Maria 4 - Maria
5 Jlia 5 - Jlia
Estruturas de Repetio
Para casos onde se deseja que o incremento
seja feito de valores diferentes de 1 deve-se
utilizar a opo passo no comando:

para <varivel> de <valor-inicial> ate <valor-limite>
passo <incremento> faca
<seqncia-de-comandos>
fimpara

O incremento o valor ser acrescentado
varivel contadora em cada repetio. Pode-se
definir um valor negativo tambm.
Estruturas de Condio
Ex3: criar um algoritmo que escreva os
nmeros de 1 a 10 em oredem decrescente.

algoritmo "exemplo3"
var
j: inteiro
inicio
para j de 10 ate 1 passo -1 faca
escreva (j:3)
fimpara
fimalgoritmo

Estruturas de Repetio
Quando no se sabe de antemo quantas
repeties sero realizadas pode-se utilizar
outra estrutura de repetio:

enquanto <condio-controle> faca
<seqncia-de-comandos>
fimenquanto

Antes de entrar na repetio, a <condio-
controle> avaliada, caso seja verdadeira, a
<sequencia-de-comandos> ser executada.
Ao final avalia-se a <condio-controle>
novamente. Caso seja falso, o algoritmo sai da
estrutura de repetio.
Estruturas de Condio
Ex4: criar um algoritmo que escreva os
nmeros de 1 a 10 em oredem crescente.

algoritmo "exemplo4"
var
j: inteiro
inicio
j <- 1
enquanto j <= 10 faca
escreva (j:3)
j <- J + 1
fimenquanto
fimalgoritmo

Estruturas de Condio
Como essa estrutura testa sua condio de
parada antes de executar sua seqncia de
comandos, esta seqncia poder ser
executada zero ou mais vezes.

Ex5: criar um algoritmo que multiplique todos
os valores lidos at que o nmero 0 (zero)
seja digitado.


Estruturas de Condio
algoritmo exemplo5
var
MULT, NUM: real
inicio
MULT <- 1
escreva (Entre com um nmero (0 - sai): )
leia (NUM)
enquanto NUM <> 0 faa
MULT <- MULT*NUM
escreva (Entre com um nmero (0 - sai): )
leia (NUM)
fim-enquanto
escreva (O produto dos valores lidos : , MULT)
fimalgoritmo

Estruturas de Repetio
Existe outra forma de realizar repeties sem
saber de antemo quantas sero realizadas:

repita
<seqncia-de-comandos>
ate <condio-controle>

Como essa estrutura testa sua condio de
parada depois de executar sua seqncia de
comandos, esta seqncia poder ser
executada uma ou mais vezes.
Estruturas de Condio
Ex6: criar um algoritmo que escreva os
nmeros de 1 a 10 em oredem crescente.

algoritmo "exemplo6"
var
j: inteiro
inicio
j <- 1
repita
escreva (j:3)
j <- J + 1
ate j > 10
fimalgoritmo

Estruturas de Condio
Ex7: criar um algoritmo que multiplique todos os
valores lidos at que o nmero 0 (zero) seja digitado.

algoritmo exemplo7
var
MULT, NUM: real
inicio
MULT <- 1
repita
escreva (Entre com um nmero (0 - sai): )
leia (NUM)
se NUM <> 0 entao
MULT <- MULT*NUM
fimse
ate NUM <> 0
escreva (O produto dos valores lidos : , MULT)
fimalgoritmo

Das könnte Ihnen auch gefallen