Capítulo 11: Repita X Vezes (Loops Contados e Iterações)
🎯 Objetivo da Aula
Quando sabemos exatamente quantas vezes uma tarefa precisa ser executada (como carregar exatamente 10 paletes em uma carreta ou disparar 5 alertas sonoros na saída de um caminhão), não usamos laços infinitos nem laços abertos: utilizamos o laço com Contagem Pré-Determinada. No Scratch, essa estrutura é implementada através do bloco repita (N) vezes.
Ao final desta aula, você será capaz de:
- Compreender o funcionamento do laço contado com o bloco 🟠
repita (N) vezes. - Compreender a equivalência visual com o clássico laço
para / forde linguagens como Python, Java e C#. - Criar e atualizar Variáveis Contadoras (
contador/índice) dentro de repetições. - Construir o Carregador de Lotes e Empilhador de Cargas da FastLog.
📥 Material de Apoio e Roteiro de Blocos:
- 📄 Roteiro Estruturado (.txt): Baixar Capitulo_11.txt (guia textual com a sequência de blocos)
- 📦 Exercícios Separados (.zip): Baixar Capitulo_11.zip
🏢 O Cenário Prático (Seu Desafio)
Situação: A doca 04 da FastLog opera com um braço robótico de carregamento que transfere caixas de uma esteira para dentro do contêiner. Cada contêiner recebe um lote fixo de 8 caixas. Para cada caixa carregada, o sistema deve:
- Incrementar o contador de caixas de 1 em 1.
- Acumular o peso unitário de 125 kg por caixa.
- Emitir um sinal sonoro de encaixe.
- Ao atingir a oitava caixa, finalizar o lote e emitir o manifesto de carga completo.
Missão: Programar o ciclo exato de carregamento no Scratch sem duplicar linhas de código.
🧠 Fundamentos: O Laço Determinado (For Loop)
1. A Estrutura do Bloco repita (N) vezes
O bloco 🟠 repita ( ) vezes possui um campo numérico onde você define a quantidade exata de repetições:
graph TD
A["Início: define N = 5"] --> B["Inicializa Contador = 1 e Peso = 0"]
B --> C{"Contador <= N?"}
C -- "SIM" --> D["1. Carrega Caixa<br/>2. Toca Som<br/>3. adicione 1 ao Contador"]
D --> C
C -- "NÃO (Completou N voltas)" --> E["Sai do laço e emite Manifesto de Carga"]
style B fill:#e67e22,stroke:#fff,color:#fff
style C fill:#f39c12,stroke:#fff,color:#fff
style D fill:#3498db,stroke:#fff,color:#fff
style E fill:#27ae60,stroke:#fff,color:#fff2. A Mágica da Variável Contadora
Muitas vezes, além de repetir, precisamos saber em qual volta do laço nós estamos (para dizer “Carregando item 1 de 8”, “Carregando item 2 de 8”). Fazemos isso combinando o laço com uma variável contadora:
3. Clones: Criando Cópias Independentes de um Ator
Na Prática Obrigatória 2 deste capítulo você vai usar um bloco novo, da categoria 🟣 Controle: crie clone de [este ator v]. Um clone é uma cópia temporária e independente de um ator: ele nasce com as mesmas fantasias, sons e scripts do ator original, mas passa a ter sua própria posição e suas próprias variáveis locais na tela — como se cada palete empilhado no armazém fosse uma cópia idêntica do primeiro palete, só que ocupando uma posição diferente na pilha. O bloco 🟣 crie clone de [este ator v] simplesmente dá a ordem de nascimento: toda vez que ele é executado, um novo clone aparece exatamente na posição em que o ator original estava naquele instante.
📖 Exemplo Guiado: Carregamento de Lote na Carreta
Passo a Passo no Scratch 3.0:
- Crie as variáveis globais:
Caixas_CarregadasePeso_Total. - Adicione o ator
Braco_Robotico(ouCaminhao). - Monte o script a seguir:
🛠️ Prática Obrigatória 1: Gerador de Tabuada de Fretes
O Desafio:
O setor de cotações da FastLog precisa de uma tabela rápida de frete para viagens curtas de 10 a 50 km:
- Crie a variável
KMinicializada em10. - Use o bloco
repita (5) vezes:- Calcule o custo a R$ 4,00 por km:
mude [Custo v] para ((KM) * (4)). - Diga (junte (junte (KM) [ km = R$ ]) (Custo)) por
1.5segundos. - Adicione 10 à variável
KM:adicione (10) a [KM v].
- Calcule o custo a R$ 4,00 por km:
🛠️ Prática Obrigatória 2: Animação de Empilhamento de Paletes
O Desafio:
Crie o ator Palete_Movel:
- Defina a posição inicial no chão: $x: 0, y: -120$.
- Use o bloco
repita (4) vezes:- Crie um clone do palete:
crie clone de [este ator v]. - Suba 25 pixels na vertical:
adicione (25) ao y. - Toque o som [Wood Tap v].
- Espere
0.4segundos.
- Crie um clone do palete:
- Observe a pilha de 4 paletes sendo erguida visualmente no armazém!
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo do projeto com o nome:
Atividade_11_SeuNome_SeuSobrenome.sb3. - Teste e comprove que o laço roda rigorosamente a quantidade de vezes especificada.
- No Microsoft Teams, envie na tarefa “Scratch Cap 11 - Laços Contados”.
- Clique em Entregar (Turn In).
💡 Checkpoint de Lógica & Engenharia de Software
Você acabou de aplicar o conceito de Iteradores e Batch Processing (Processamento em Lote). Sistemas bancários e rotinas noturnas de faturamento corporativo agrupam milhares de faturas e as processam em blocos fechados usando esse exato modelo matemático de laço contado.
🔥 Desafio de Fixação: Lote Dinâmico com Pergunta
Pergunte ao operador: [Quantos volumes serão embarcados nesta remessa?].
Pegue a resposta e encaixe diretamente dentro do campo numérico do bloco repita (resposta) vezes! Teste digitando 3, depois teste digitando 10!
🔑 Gabarito de Código (Blocos do Scratch)
Prática 1:
Prática 2:
Desafio:
📥 Download do Roteiro Completo desta Aula:
Baixe o arquivo consolidado Capitulo_11.txt ou o pacote compactado (.zip) com os scripts e desafios da aula.
📝 Atividade Extra: Questionário de Fixação (Caderno)
Instruções: Responda no caderno, de próprio punho, as 10 perguntas abaixo com base no que foi estudado neste capítulo. Ao concluir, leve o caderno até o professor para correção e visto.
- Qual bloco do Scratch é usado para criar um laço com contagem pré-determinada, quando já sabemos exatamente quantas vezes a tarefa deve se repetir?
- Além de usar o bloco de repetição, o que precisamos criar e atualizar dentro do laço para saber “em qual volta” ele está?
- No Exemplo Guiado do Carregamento de Lote, quais os nomes das duas variáveis globais criadas no início do script?
- Quantas repetições o laço executa no Exemplo Guiado de Carregamento de Lote, e quanto peso (em kg) é somado à variável de peso a cada repetição?
- Na Prática Obrigatória 1 (Tabuada de Fretes), qual é o valor inicial da variável
KMe qual valor é somado a ela a cada repetição do laço? - Qual operação matemática é usada para calcular a variável
Custona Prática Obrigatória 1? - Na Prática Obrigatória 2 (Animação de Empilhamento de Paletes), quantas vezes o laço se repete e quantos pixels o ator sobe no eixo Y a cada repetição?
- Qual bloco é usado na Prática Obrigatória 2 para duplicar visualmente o palete a cada volta do laço?
- Qual é a posição inicial (x, y) definida para o ator
Palete_Movelantes do laço começar, na Prática Obrigatória 2? - Segundo o Checkpoint de Lógica & Engenharia de Software, a que conceito o laço “repita N vezes” está associado, e qual exemplo do mundo real (envolvendo faturas) é citado?