Estruturas de repetição
O que você vai ver aqui
A última estrutura. Com ela você fecha o conjunto — sequência, decisão e repetição — que basta para escrever qualquer programa.
Por que repetir
Repetição evita escrever o mesmo bloco várias vezes e permite tratar quantidades desconhecidas de dados. Toda planilha arrastada para baixo é, no fundo, uma repetição — e toda macro com For da aula 40 também.
As três estruturas
Enquanto, teste no início. Pode não executar nenhuma vez.
enquanto contador <= 10 faca
escreval(contador)
contador <- contador + 1
fimenquanto
Repita até, teste no fim. Executa ao menos uma vez.
repita
escreva("Digite uma nota de 0 a 10: ")
leia(nota)
ate (nota >= 0) e (nota <= 10)
Para, número de repetições conhecido.
para i de 1 ate 10 faca
escreval(i, " x 7 = ", i * 7)
fimpara
O passo permite contar de dois em dois ou regressivamente: para i de 10 ate 1 passo -1 faca. Sem o passo negativo, um laço de 10 até 1 não executa nenhuma vez.
Critério de escolha: número de repetições conhecido usa para; condição testada no início usa enquanto; validação de entrada usa repita.
Contadores e acumuladores
- Contador — soma sempre o mesmo valor, geralmente 1. Serve para contar ocorrências.
- Acumulador — soma valores variáveis. Serve para totalizar.
- Média — acumulador dividido pelo contador.
- Maior e menor — variável inicializada com o primeiro valor lido e comparada a cada iteração.
A inicialização é obrigatória: contador e acumulador começam em zero; produtório começa em 1.
Laço infinito
Acontece quando a condição nunca se torna falsa, quase sempre porque a variável de controle não é atualizada dentro do laço. É o erro mais frequente desta aula — e todo mundo o escreve uma vez. Interrompa com o botão de parada do VisuAlg.
Laços aninhados
Um laço dentro do outro, usado em tabelas e matrizes. O laço externo controla a linha e o interno a coluna.
A tabuada completa de 1 a 10 é o exemplo canônico — e conversa diretamente com a tabuada por referência mista da aula 15. É a mesma ideia, em duas ferramentas.
Repetição, eventos e sensores no Scratch
- Controle —
sempre,repita N vezes,repita até que,espere,se então,se então senão. - Eventos —
quando a bandeira verde for clicada,quando a tecla for pressionada,quando este ator for clicado,quando receber mensagem. - Sensores —
tocando em,tocando na cor,pergunte e espere,tecla pressionada?,distância até,mouse pressionado?.
O bloco sempre é o laço infinito proposital que mantém o jogo rodando, verificando condições a cada quadro.
Variáveis no Scratch: crie em Variáveis e use para pontuação, vidas, tempo e nível. Exiba no palco com o monitor.
Na prática
- Escreva no VisuAlg a tabuada de um número lido.
- Leia 10 números e calcule soma, média, maior e menor.
- Valide uma entrada com
repita ate, aceitando apenas valores entre 0 e 10. - Leia valores até que o usuário digite zero, usando
enquanto. - Monte a tabuada completa de 1 a 10 com laços aninhados.
- No Scratch, crie um ator que se move com as setas do teclado, usando
semprecomse então. - Crie uma variável de pontuação que aumenta ao tocar em outro ator.
- Use
pergunte e esperepara uma interação de perguntas e respostas.
Exercícios
- Quando usar
paraem vez deenquanto? - Qual a diferença entre contador e acumulador?
- Corrija um laço infinito fornecido pelo docente.
- Escreva um programa que some todos os pares de 1 a 100.
- No Scratch, monte um cronômetro regressivo de 30 segundos.
Erros comuns
- Esquecer de atualizar a variável de controle.
- Não inicializar o acumulador.
- Usar
repitaonde a entrada precisa ser validada antes da primeira execução.
Checklist de saída
Você domina as três estruturas de repetição e constrói interação por eventos.
Referências
- TONET, Bruno; KOLIVER, Cristian. Introdução aos algoritmos. NAPRO.
- FERRARI, Fabricio; CECHINEL, Cristian. Introdução a Algoritmos e Programação, versão 2.2.
- VisuAlg: manual do usuário.
Testa o que você leu
4 perguntas sobre esta aula. Errar aqui não custa nada - a explicação vem junto da correção.