🐱 Capítulo 3: Scratch - Exercícios Práticos
Nesta lista de exercícios, você praticará a lógica de programação através de blocos visuais no Scratch 3.0, integrando eventos, variáveis, condicionais, repetições e extensões voltadas à automação de processos.
🗺️ Mapa de Progressão Pedagógica
graph LR
A["Nível 1: Fundamentos\n(Atendente Virtual)"] --> B["Nível 2: Prática\n(Controle de Estoque)"]
B --> C["Nível 3: Integração\n(Roteirizador de Entregas)"]
C --> D["Nível 4: Desafio\n(Automação de Pedidos)"]
style A fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
style B fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
style C fill:#fff3e0,stroke:#ff9800,stroke-width:2px
style D fill:#fce4ec,stroke:#e91e63,stroke-width:2px
🟢 Nível 1 — Fundamentos
Exercício 1: Problema “atendente_virtual”
Enunciado:
No Scratch, crie um ator (ex: atendente) que, ao clicar na Bandeira Verde (quando bandeira verde for clicada), pergunte o nome do cliente usando o bloco pergunte [Qual é o seu nome?] e espere e responda utilizando o bloco diga [junte [Olá, ] e [resposta]] por 2 segundos. Use a extensão Texto para Fala (Text-to-Speech) para reproduzir a saudação por voz.
Resultado Esperado
flowchart TD
A["Bandeira Verde Clicada"] --> B["Perguntar: Qual é o seu nome?"]
B --> C["Aguardar resposta do usuário"]
C --> D["Falar e exibir: Olá, [resposta]! Bem-vindo!"]
Comportamento no Scratch:
- O ator saúda o usuário com fala e balão de diálogo personalizado com o nome digitado.
📤 Instruções de Entrega (Microsoft Teams)
Após validar seu projeto no Scratch:
- Salve o arquivo do projeto no formato:
Atividade_03_Scratch_Atendente_SeuNome.sb3 - Envie o arquivo no Microsoft Teams na tarefa:
Atividade Cap 03 - Scratch
🔑 Gabarito de Blocos & Pseudo-Scratch
quando bandeira verde for clicado
mude o idioma para [Português (Brasil)]
pergunte [Qual o seu nome?] e espere
defina [nome_cliente] para (resposta)
diga (junte [Olá, ] (junte (nome_cliente) [! Bem-vindo ao atendimento!])) por 3 segundos
fale (junte [Olá, ] (junte (nome_cliente) [! Bem-vindo ao atendimento!]))
🟡 Nível 2 — Prática
Exercício 2: Problema “controle_estoque”
Enunciado: Crie um sistema no Scratch que controle a quantidade de caixas no estoque:
- Inicialize a variável
estoque = 50. - Pergunte ao operador:
"Quantas unidades deseja retirar?". - Se a quantidade solicitada for menor ou igual ao
estoque, diminua a quantidade (mude estoque por (-1 * quantidade)) e diga"Retirada aprovada! Estoque restante: [estoque]". - Senão, diga
"Estoque insuficiente!".
Resultado Esperado
Exemplo de Simulação:
- Se o usuário pedir
20, o sistema atualizaestoquepara30e aprova. - Se o usuário pedir
60, o sistema exibe"Estoque insuficiente!"e mantém oestoqueem50.
📤 Instruções de Entrega (Microsoft Teams)
Após validar seu projeto no Scratch:
- Salve o arquivo do projeto no formato:
Atividade_03_Scratch_Estoque_SeuNome.sb3 - Envie o arquivo no Microsoft Teams na tarefa:
Atividade Cap 03 - Scratch
🔑 Gabarito de Blocos & Pseudo-Scratch
quando bandeira verde for clicado
defina [estoque] para [50]
pergunte [Quantas unidades deseja retirar?] e espere
defina [qtd_retirada] para (resposta)
se <(qtd_retirada) <= (estoque)> então
mude [estoque] por ((qtd_retirada) * (-1))
diga (junte [Retirada aprovada! Saldo atual: ] (estoque)) por 3 segundos
senão
diga [Estoque insuficiente! Operacao cancelada.] por 3 segundos
fim
🟠 Nível 3 — Integração
Exercício 3: Problema “roteirizador_entregas”
Enunciado: Crie uma animação interativa com um ator de caminhão de entrega:
- O caminhão inicia na posição $(-200, 0)$.
- Use um laço
repita 4 vezes:- Mova
100passos. - Toque um som de buzina (
tocar som [buzina] até o fim). - Pergunte
"Ponto de entrega alcançado. Confirmar entrega? (S/N)". - Adicione 1 à variável
entregas_realizadas.
- Mova
- Ao final das 4 paradas, exiba
"Rota finalizada com sucesso! Total de entregas: 4".
Resultado Esperado
flowchart TD
A["Início: Posição (-200, 0)"] --> B["Laço: Repita 4 vezes"]
B --> C["Mover 100 passos"]
C --> D["Confirmar entrega"]
D --> E["entregas_realizadas = entregas_realizadas + 1"]
E --> B
B -- "Fim do Laço" --> F["Exibir Relatório de Rota"]
📤 Instruções de Entrega (Microsoft Teams)
Após validar seu projeto no Scratch:
- Salve o arquivo do projeto no formato:
Atividade_03_Scratch_Rota_SeuNome.sb3 - Envie o arquivo no Microsoft Teams na tarefa:
Atividade Cap 03 - Scratch
🔑 Gabarito de Blocos & Pseudo-Scratch
quando bandeira verde for clicado
vá para x: (-200) y: (0)
defina [entregas_realizadas] para [0]
repita (4) vezes
deslize por (1) segs para x: ((posição x) + (100)) y: (0)
pergunte [Ponto alcancado! Confirmar entrega (S/N)?] e espere
mude [entregas_realizadas] por (1)
fim
diga (junte [Rota finalizada! Total de entregas: ] (entregas_realizadas)) por 4 segundos
🔴 Nível 4 — Desafio
Exercício 4: Problema “automacao_pedidos”
Enunciado:
Desenvolva um terminal completo de autoatendimento no Scratch com Lista (Itens do Pedido) e Variável (Valor Total):
- O cliente escolhe itens de um menu (1 - Hamburguer R$ 20.00, 2 - Batata Frita R$ 10.00, 3 - Refrigerante R$ 5.00, 0 - Finalizar).
- O sistema acumula os itens em uma Lista e o preço total em uma variável
valor_total. - Ao digitar
0, o sistema encerra a repetição e exibe o resumo com a lista de produtos comprados e o total a pagar.
Resultado Esperado
Exemplo de Execução no Scratch:
- Entrada
1$\rightarrow$ adiciona"Hamburguer"à lista,valor_total = 20. - Entrada
2$\rightarrow$ adiciona"Batata Frita"à lista,valor_total = 30. - Entrada
0$\rightarrow$ finaliza e diz"Pedido finalizado! Total: R$ 30.00".
📤 Instruções de Entrega (Microsoft Teams)
Após validar seu projeto no Scratch:
- Salve o arquivo do projeto no formato:
Atividade_03_Scratch_Pedidos_SeuNome.sb3 - Envie o arquivo no Microsoft Teams na tarefa:
Atividade Cap 03 - Scratch
🔑 Gabarito de Blocos & Pseudo-Scratch
quando bandeira verde for clicado
apague todos os itens de [carrinho v]
defina [valor_total] para [0]
defina [opcao] para [-1]
repita até que <(opcao) = [0]>
pergunte [Menu: 1-Hamburguer (20) | 2-Batata (10) | 3-Refrigerante (5) | 0-Finalizar] e espere
defina [opcao] para (resposta)
se <(opcao) = [1]> então
adicione [Hamburguer] a [carrinho v]
mude [valor_total] por (20)
senão
se <(opcao) = [2]> então
adicione [Batata Frita] a [carrinho v]
mude [valor_total] por (10)
senão
se <(opcao) = [3]> então
adicione [Refrigerante] a [carrinho v]
mude [valor_total] por (5)
fim
fim
fim
fim
diga (junte [Pedido finalizado! Valor total: R$ ] (valor_total)) por 5 segundos