Este documento apresenta os comandos de repetição em algoritmos, incluindo enquanto, para e repita. O texto explica a sintaxe e o funcionamento de cada comando e fornece exemplos de problemas resolvidos usando cada um deles, como imprimir frases repetidamente e somar valores em um intervalo.
5. • Algoritmos
• Comandos de Repetições
• Introdução
• Na aula anterior, vimos como realizar desvios
condicionais em um algoritmo.
Criamos algoritmos onde um bloco de comandos é
executado somente se determinada condição for atendida.
• Há casos em que um bloco de comandos deve ser
executado "mais de uma vez".
• Tal repetição ocorrerá enquanto (ou até que) uma
dada condição seja satisfazível.
5
6. 6
O objetivo de tais comandos é executar
uma instrução (ou conjunto de instruções)
repetidas vezes, enquanto (ou até que)
uma dada condição seja satisfeita.
7. • Algoritmos
• Exemplo:
• Algoritmo que escreva cinco vezes a frase:
"Programação", de que forma você faria?
7
algoritmo "Repete Frase"
var
inicio
escreval("Programação")
escreval("Programação")
escreval("Programação")
escreval("Programação")
escreval("Programação")
fimalgoritmo
8. • Algoritmos
• Comandos de Repetições
• Exemplo:
• Parece simples, não? Mas, e se mudássemos o
número de repetições?
• Se, ao invés de cinco mensagens, tivéssemos
que imprimir cem mensagens? Ou cinco mil
mensagens?
• Seria um tanto exaustivo ficar digitando tantas
vezes o mesmo comando.
8
9. 9
A solução para esse impasse é a
utilização dos comandos de
repetições.
10. • Algoritmos
• Comandos de Repetições
• Introdução
• Os comandos de repetição classificam-se em:
Comando com teste condicional no início;
• <comandos ENQUANTO ... FAÇA>
Comando com variável de controle.
• <comandos PARA>
Comando com teste condicional no final; e
• <comandos REPITA ... ATÉ>
10
12. • Algoritmos
• Comandos de Repetições
• Comando enquanto
Sintaxe
12
enquanto ([expressão]) faca
// Instruções lógicas abaixo.
[bloco de instruções]
fimenquanto
É obrigatório o espaço existente entre a expressão e os
comandos enquanto e faca.
13. • Algoritmos
• Comandos de Repetições
• Comando enquanto
• Se a expressão for considerada verdadeira, a
sequência de comandos será executada.
O "teste" volta a ser realizado sempre que os blocos
de comandos definidos no enquanto são executados.
• Se a expressão for considerada falsa, a
sequência de comandos não será executada.
O que significa que ela jamais pode ser executada.
13
26. • Algoritmos
• Comandos de Repetições
• Comando para
• O comando para é muito similar ao comando
enquanto, visto anteriormente.
• Basicamente, o comando para é usado para
repetir um comando ou uma sequência de
comandos diversas vezes.
26
27. • Algoritmos
• Comandos de Repetições
• Comando para
• A quantidade de execuções (repetições) que o
comando irá repetir é conhecida previamente.
Há uma variável que funciona como contador para
essas repetições.
Esta variável deve cessar a repetição no momento
em que a contagem chegar ao final.
Há, também, um valor de incremento, que define de
quantas em quantas unidades a repetição executará.
27
28. • Algoritmos
• Comandos de Repetições
• Comando para
Sintaxes:
VInt ← variável inteiro, VI ← valor inicial, VF ← valor final e
VInc ← valor de incremento.
28
para <VInt> de <VI> ate <VF> [passo <VInc>] faca
<bloco de instruções>
fimpara
OU
para <VInt> de <VI> ate <VF> faca
<bloco de instruções>
fimpara
"Opcional"
29. • Algoritmos
• Comandos de Repetições
• Exemplo:
• Faça um algoritmo que escreva cinco vezes a
frase: "Programação".
29
algoritmo "Repete Frase"
var
contador: inteiro
inicio
para contador de 1 ate 5 faca
escreval("Programação")
fimpara
fimalgoritmo
30. • Algoritmos
• Comandos de Repetições
• Comando para
A variável de controle deve ser uma variável
numérica do tipo inteiro.
O valor inicial corresponde ao valor de inicialização
da variável antes da primeira repetição.
O valor final corresponde ao valor máximo que a
variável pode alcançar.
Se o valor de incremento NÃO for definido,
assume-se o valor = 1.
Pode ser atribuído um valor negativo ao valor de
incremento. 30
31. 31
Problema V
Faça um algoritmo que imprima os
números no intervalo de 1 à 10 na tela.
32. • Algoritmos
• Comandos de Repetições
Resolução do Problema V
// Utilizando enquanto...
32
// Utilizando o "Enquanto"
contador ← 1
enquanto (contador <= 10) faca
escreval(contador)
contador ← contador + 1
fimenquanto
33. • Algoritmos
• Comandos de Repetições
Resolução do Problema V
Saída:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
33
algoritmo "Problema 05"
var
contador: inteiro
inicio
para contador de 1 ate 10 faca
escreval(contador)
fimpara
fimalgoritmo
34. 34
Problema VI
Faça um algoritmo que apresente
os valores contidos no intervalo de
1 até onde o usuário "desejar".
35. • Algoritmos
• Comandos de Repetições
Resolução do Problema VI
35
algoritmo "Problema 06"
var
contador, valor: inteiro
inicio
escreva("Deseja contar até quanto? ")
leia(valor)
para contador de 1 ate valor faca
escreval(contador)
fimpara
fimalgoritmo
36. 36
Problema VII
Faça um algoritmo que realize a
soma dos valores contidos no
intervalo de 1 à 5.
37. • Algoritmos
• Comandos de Repetições
Resolução do Problema VII
37
algoritmo "Problema 07"
var
contador, soma: inteiro
inicio
soma ← 0
para contador de 1 ate 5 faca
soma ← soma + contador
fimpara
escreval(soma)
fimalgoritmo
38. 38
Problema VIII
Faça um algoritmo que dados cinco
valores "fornecidos" pelo usuário,
apresente o maior valor digitado.
39. • Algoritmos
39
algoritmo "Problema 08"
Var
// mv → maior valor
contador, valor, mv: inteiro
inicio
escreva("Digite um valor: ")
leia(valor)
mv ← valor
para contador de 2 ate 5 faca
escreva("Digite um valor: ")
leia(valor)
se (valor > mv) entao
mv ← valor
fimse
fimpara
escreval(mv)
fimalgoritmo
ResoluçãodoProblemaVIII
41. • Algoritmos
• Comandos de Repetições
• Comando repita
Sintaxe
41
repita
// Instruções lógicas abaixo.
[bloco de instruções]
ate ([expressão])
Esta expressão será avaliada após a execução das instruções
contidas no laço. Caso a expressão seja VERDADEIRA, então o
laço terá sua execução INTERROMPIDA.
42. • Algoritmos
• Comandos de Repetições
• ER com teste condicional no final
• Este tipo de laço executa o bloco de comandos e
em seguida avalia a expressão condicional.
• A repetição ocorre se o valor dessa expressão
for falso.
• Se esse valor for verdadeiro, a execução
prossegue adiante (encerra).
42
43. 43
Enquanto (eu for estudante) faca
escreval("Sou liso!")
fimenquanto
Repita
escreval("É liso!")
ate (você é analista?)
44. 44
Problema IX
Faça um algoritmo que faça a leitura de
vários números digitados pelo usuário,
até que se digite um número negativo.
45. • Algoritmos
• Comandos de Repetições
Resolução do Problema IX
45
algoritmo "Problema 09"
var
valor: inteiro
inicio
repita
escreva("Digite um valor: ")
leia(valor)
ate(valor < 0)
fimalgoritmo
46. 46
Problema X
Dadas várias idades digitadas pelo usuário diga
quantas idades são "maiores do que 18 anos e
quantas são menores do que 18". O algoritmo
encerra quando for digitada uma idade NEGATIVA.
47. • Algoritmos
• Comandos de Repetições
47
algoritmo "Problema 10"
var
idade, menores, maiores: inteiro
inicio
repita
escreva("Digite uma idade: ")
leia(idade)
se (idade >= 18) entao
maiores ← maiores + 1
senão
se (idade > 0) entao
menores ← menores + 1
fimse
fimse
ate(idade < 0)
// resultado final
fimalgoritmo
ResoluçãodoProblemaX
48. 48
O comando REPITA executa as instruções até
que a condição seja verdadeira. Ou seja, se a
condição for falsa, o ciclo continua, caso
contrário, a repetição é encerrada.