Capítulo 12: Aninhamento de Blocos (Loops Dentro de Loops e Matrizes)
🎯 Objetivo da Aula
O espaço físico de uma empresa não é unidimensional: galpões possuem múltiplos corredores, e cada corredor possui dezenas de prateleiras verticais e horizontais. Para que um robô autônomo consiga escanear todas as gavetas de um armazém, precisamos de Laços Aninhados (Nested Loops): um laço externo que controla as linhas (andares) e um laço interno que percorre as colunas (posições).
Ao final desta aula, você será capaz de:
- Compreender o funcionamento de Laços de Repetição Aninhados (
repitadentro derepita). - Calcular a relação multiplicativa total de iterações ($Linhas \times Colunas$).
- Controlar coordenadas bidimensionais ($X$ e $Y$) de forma sincronizada.
- Construir o Robô Autônomo de Inventário e Auditoria (AGV) da FastLog.
📥 Material de Apoio e Roteiro de Blocos:
- 📄 Roteiro Estruturado (.txt): Baixar Capitulo_12.txt (guia textual com a sequência de blocos)
- 📦 Exercícios Separados (.zip): Baixar Capitulo_12.zip
🏢 O Cenário Prático (Seu Desafio)
Situação: A FastLog adquiriu um drone/robô leitor de código de barras para realizar a contagem noturna de estoque no galpão de peças. O armazém é organizado em uma matriz 2D:
- São 3 Andares de Prateleiras (Eixo vertical Y).
- Cada andar possui 4 Gavetas de Produtos (Eixo horizontal X).
- Total a ser inspecionado: $3 \times 4 = 12$ gavetas.
Missão: Programar o robô no Scratch para percorrer linha por linha, bipando em cada gaveta e registrando a auditoria de todas as 12 posições sem intervenção humana.
🧠 Fundamentos: Como Funcionam os Laços Aninhados?
1. A Relação entre o Laço Externo e o Laço Interno
Imagine um relógio de ponteiros: o ponteiro dos minutos precisa dar 60 voltas completas para que o ponteiro das horas dê apenas 1 passo. Nos laços aninhados ocorre o mesmo:
graph TD
A["Início: Laço Externo (Andares de 1 a 3)"] --> B["Posiciona no Andar Y"]
B --> C["Entra no Laço Interno (Gavetas de 1 a 4)"]
C --> D["Muda X, Toca Laser e Bipa Gaveta"]
D --> E{"Terminou as 4 Gavetas?"}
E -- "NÃO" --> C
E -- "SIM" --> F["Desce/Sobe para o próximo Andar Y"]
F --> G{"Terminou os 3 Andares?"}
G -- "NÃO" --> B
G -- "SIM" --> H["FIM DA AUDITORIA: 12 posições conferidas!"]
style B fill:#e67e22,stroke:#fff,color:#fff
style C fill:#3498db,stroke:#fff,color:#fff
style D fill:#2980b9,stroke:#fff,color:#fff
style H fill:#27ae60,stroke:#fff,color:#fff- Laço Externo: Executa 3 vezes (1 vez para cada andar de prateleira).
- Laço Interno: Executa 4 vezes para CADA volta do laço externo ($3 \times 4 = 12$ execuções totais).
2. A Fórmula da Multiplicação de Iterações
$$\text{Total de Execuções} = \text{Repetições do Laço Externo} \times \text{Repetições do Laço Interno}$$
Se tivermos 5 corredores e 6 docas em cada um, o bloco interno rodará exatamente $5 \times 6 = 30$ vezes!
📖 Exemplo Guiado: Robô Leitor de Prateleiras 3×4
Passo a Passo no Scratch 3.0:
- Crie as variáveis globais:
Pos_X,Pos_YeTotal_Auditado. - Adicione o ator
Robo_Auditor(ou uma esfera/drone). - Insira o script com os dois laços encaixados:
🛠️ Prática Obrigatória 1: Matriz de Lâmpadas do Pátio (Grade 2×3)
O Desafio:
Crie uma simulação de inspeção elétrica das 6 torres de iluminação do pátio (2 linhas de 3 refletores):
- Use um laço externo de
2repetições (Linhas Norte e Sul). - Use um laço interno de
3repetições (Torres 1, 2 e 3). - A cada torre visitada, troque o efeito visual da lâmpada para amarelo e toque o som [Bell].
🛠️ Prática Obrigatória 2: Varredura com Leitura de Peso Fictício
O Desafio:
Expanda o robô de inventário:
- A cada gaveta visitada no laço interno, sorteie um peso simulado de 10 a 50 kg usando o bloco verde 🟢
número aleatório entre (10) e (50). - Acumule esse peso em uma variável
Peso_Inventariado. - Ao final de todas as gavetas, exiba o total acumulado de quilos armazenados na estante.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo do projeto com o nome:
Atividade_12_SeuNome_SeuSobrenome.sb3. - Observe o robô desenhando o padrão de “leitura de texto” (da esquerda para a direita, descendo linha por linha).
- No Microsoft Teams, envie na tarefa “Scratch Cap 12 - Laços Aninhados”.
- Clique em Entregar (Turn In).
💡 Checkpoint de Lógica & Engenharia de Software
Você acabou de aplicar o conceito de Estruturas de Dados Matriciais e Varredura de Imagem (Raster Scan). É exatamente através de laços aninhados de Linha $\times$ Coluna que as placas de vídeo (GPU) desenham cada pixel na tela do seu computador e os algoritmos de Visão Computacional identificam placas de veículos em fotos.
🔥 Desafio de Fixação: Scanner de Galpão 4×4 com Alerta de Vazio
Crie uma matriz $4 \times 4$ (16 gavetas). Se o peso sorteado na gaveta for menor que 15 kg, emita um balão avisando: [GAVETA QUASE VAZIA - Reabastecer].
🔑 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_12.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.
- O que são “Laços Aninhados” (Nested Loops) e qual bloco fica encaixado dentro de qual, segundo os Fundamentos?
- Qual é a fórmula usada para calcular o total de execuções em laços aninhados?
- No Exemplo Guiado (Robô Leitor de Prateleiras 3×4), quantas vezes o laço externo se repete e quantas vezes o laço interno se repete a cada volta do laço externo?
- Quais são os nomes das três variáveis globais criadas no Exemplo Guiado?
- No Exemplo Guiado, quantos pixels a variável
Pos_Xavança a cada gaveta visitada, e quantos pixels a variávelPos_Ydiminui ao passar para o próximo andar? - Na Prática Obrigatória 1 (Matriz de Lâmpadas do Pátio), quantas repetições tem o laço externo e quantas o laço interno, e o que cada um representa?
- Na Prática Obrigatória 2, qual bloco (verde) é usado para sortear um peso simulado a cada gaveta, e qual o intervalo de valores sorteados?
- Qual é o nome da variável criada na Prática Obrigatória 2 para acumular o peso sorteado a cada gaveta visitada?
- Segundo o Checkpoint de Lógica & Engenharia de Software, a que conceito do mundo real (relacionado a placas de vídeo/GPU) os laços aninhados em Linha × Coluna são comparados?
- Segundo o Cenário Prático, quantos andares de prateleiras e quantas gavetas por andar existem no armazém da FastLog, e qual é o total de gavetas a inspecionar?