Pular para o conteúdo

A primeira escola especializada em tecnologia do Alto Solimões, com corpo técnico formado na área.

Módulo 7: Noções de lógica de programação

Estruturas de repetição

Enquanto, repita e para — e o laço infinito que todo mundo escreve uma vez

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

  1. Escreva no VisuAlg a tabuada de um número lido.
  2. Leia 10 números e calcule soma, média, maior e menor.
  3. Valide uma entrada com repita ate, aceitando apenas valores entre 0 e 10.
  4. Leia valores até que o usuário digite zero, usando enquanto.
  5. Monte a tabuada completa de 1 a 10 com laços aninhados.
  6. No Scratch, crie um ator que se move com as setas do teclado, usando sempre com se então.
  7. Crie uma variável de pontuação que aumenta ao tocar em outro ator.
  8. Use pergunte e espere para uma interação de perguntas e respostas.

Exercícios

  1. Quando usar para em vez de enquanto?
  2. Qual a diferença entre contador e acumulador?
  3. Corrija um laço infinito fornecido pelo docente.
  4. Escreva um programa que some todos os pares de 1 a 100.
  5. 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 repita onde 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.

Pergunta 1 de 4
Quando usar `para` em vez de `enquanto`?