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:

  1. Salve o arquivo do projeto no formato: Atividade_03_Scratch_Atendente_SeuNome.sb3
  2. 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:

  1. Inicialize a variável estoque = 50.
  2. Pergunte ao operador: "Quantas unidades deseja retirar?".
  3. 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]".
  4. Senão, diga "Estoque insuficiente!".

Resultado Esperado

Exemplo de Simulação:

  • Se o usuário pedir 20, o sistema atualiza estoque para 30 e aprova.
  • Se o usuário pedir 60, o sistema exibe "Estoque insuficiente!" e mantém o estoque em 50.

📤 Instruções de Entrega (Microsoft Teams)

Após validar seu projeto no Scratch:

  1. Salve o arquivo do projeto no formato: Atividade_03_Scratch_Estoque_SeuNome.sb3
  2. 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:

  1. O caminhão inicia na posição $(-200, 0)$.
  2. Use um laço repita 4 vezes:
    • Mova 100 passos.
    • 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.
  3. 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:

  1. Salve o arquivo do projeto no formato: Atividade_03_Scratch_Rota_SeuNome.sb3
  2. 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):

  1. 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).
  2. O sistema acumula os itens em uma Lista e o preço total em uma variável valor_total.
  3. 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:

  1. Salve o arquivo do projeto no formato: Atividade_03_Scratch_Pedidos_SeuNome.sb3
  2. 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