Capítulo 04: Interação e Sensores (Entrada de Dados com Pergunte e Espere)
🎯 Objetivo da Aula
Até agora, nossos programas operavam com valores pré-definidos no código. No entanto, um sistema logístico real precisa receber dados do mundo exterior digitados pelos usuários: o nome do motorista, o número da nota fiscal e o peso da carga. No Scratch, a entrada de dados pelo teclado é realizada através dos Sensores de Pergunta.
Ao final desta aula, você será capaz de:
- Compreender o ciclo fundamental de Entrada, Processamento e Saída (IPO) na programação visual.
- Utilizar o bloco 🔷
pergunte [texto] e espereda categoria Sensores. - Capturar o valor digitado através do sensor oval 🔷
resposta. - Salvar imediatamente a
respostaem variáveis de memória dedicadas. - Combinar textos e variáveis utilizando o operador de concatenação 🟢
junte [texto 1] com [texto 2].
📥 Material de Apoio e Roteiro de Blocos:
- 📄 Roteiro Estruturado (.txt): Baixar Capitulo_04.txt (guia textual com a sequência de blocos)
- 📦 Exercícios Separados (.zip): Baixar Capitulo_04.zip
🏢 O Cenário Prático (Seu Desafio)
Situação: A portaria central da FastLog substituiu o atendimento manual em prancheta por um Totem Digital de Autoatendimento. Ao chegar com a carreta, o motorista estaciona em frente ao totem e digita suas informações pelo teclado interativo.
Missão: Você deve programar o totem de autoatendimento para:
- Perguntar o Nome Completo do motorista.
- Perguntar a Placa do Veículo.
- Perguntar a Cidade de Origem.
- Emitir uma mensagem personalizada na tela: “Acesso autorizado para [Nome], placa [Placa], vindo de [Cidade]!”.
🧠 Fundamentos: O Ciclo de Entrada e Saída no Scratch
1. Como Funciona o Bloco pergunte e espere?
Quando o Scratch executa o bloco 🔷 pergunte [...] e espere:
- Uma barra de digitação retangular surge na parte inferior do Palco.
- A execução do script pausa completamente (espera).
- Assim que o usuário digita o texto e aperta Enter (ou clica no botão azul de check), o que foi digitado é armazenado dentro do sensor 🔷
resposta. - O script continua sua execução para a linha seguinte.
graph TD
A["Gatilho: quando clicar em 🏁"] --> B["Entrada: pergunte 'Qual é o seu nome?' e espere"]
B --> C["Usuário digita: 'Carlos Silva' e pressiona Enter"]
C --> D["Captura: mude [Nome_Motorista] para (resposta)"]
D --> E["Concatenação: junte 'Bem-vindo, ' com (Nome_Motorista)"]
E --> F["Saída: diga a mensagem montada no Palco"]
style A fill:#f39c12,stroke:#fff,color:#fff
style B fill:#3498db,stroke:#fff,color:#fff
style D fill:#e67e22,stroke:#fff,color:#fff
style E fill:#2ecc71,stroke:#fff,color:#fff
style F fill:#8e44ad,stroke:#fff,color:#fff2. A Armadilha da Variável Volátil resposta
Cuidado com Perguntas Consecutivas!
O sensor 🔷 resposta armazena apenas a última resposta digitada no teclado. Se você fizer duas perguntas seguidas sem salvar a primeira em uma variável, o primeiro dado será apagado para sempre!
3. Concatenação de Textos com o Operador junte
Na categoria 🟢 Operadores, o bloco junte [apple] com [banana] é o equivalente visual à concatenação de strings (+ ou & no Excel/VBA). Para juntar três ou mais palavras, podemos aninhar blocos de junção:
$$\text{Mensagem} = \text{junte } (\text{“Olá, “} \text{ com } (\text{junte } (\text{Nome}) \text{ com } \text{”!”}))$$
📖 Exemplo Guiado: Totem de Recepção da Portaria
Passo a Passo no Scratch 3.0:
- Crie as variáveis globais:
Nome_MotoristaePlaca_Veiculo. - Adicione um ator representando o Totem ou Atendente da Guarita.
- Arraste os blocos a seguir para a área de código:
🛠️ Prática Obrigatória 1: Cálculo do Frete com Entrada de Peso
O Desafio:
Crie um simulador de cotação de frete no totem:
- Crie as variáveis:
Peso_CargaeValor_Frete. - Pergunte ao motorista:
[Quantos kg de carga você está transportando?]. - Salve em
Peso_Carga. - Calcule o valor do frete considerando a tarifa fixa de R$ 2,50 por kg:
mude [Valor_Frete v] para ((Peso_Carga) * (2.5))(usando o operador de multiplicação verde*). - Exiba o valor final com a mensagem:
[Valor total do frete: R$ ]concatenado com a variávelValor_Frete.
🛠️ Prática Obrigatória 2: Formulário Completo de Romaneio
Expanda o totem para cadastrar o romaneio completo:
- Solicite:
- Nome da Empresa Contratante
- Quantidade de Paletes
- Número da Nota Fiscal
- Armazene em 3 variáveis separadas.
- Exiba um resumo completo em balões de fala sequenciais ou em um único texto concatenado.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo do projeto com o nome:
Atividade_04_SeuNome_SeuSobrenome.sb3. - Teste digitando nomes diferentes no totem e veja se os dados são exibidos corretamente.
- No Microsoft Teams, envie na tarefa “Scratch Cap 04 - Entrada de Dados e Sensores”.
- Clique em Entregar (Turn In).
💡 Checkpoint de Lógica & Engenharia de Software
Você acabou de dominar o conceito de Captura de Strings e I/O (Input/Output). Todo sistema de interface (como sites web em HTML/React, formulários em PowerApps ou consoles de ERP) depende dessa mesma estrutura: capturar a entrada do usuário, validar e converter para variáveis de processamento.
🔥 Desafio de Fixação: Calculadora de Consumo de Diesel
Pergunte a distância da viagem em km e pergunte quantos litros de diesel o caminhão consumiu. Calcule a média de consumo em km/l com o operador verde / ((km) / (litros)) e exiba: [A média de consumo foi de X km/l].
🔑 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_04.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 acontece no Palco quando o bloco
pergunte [...] e espereé executado? - Por que é perigoso fazer duas perguntas (
pergunte e espere) seguidas sem salvar a resposta da primeira em uma variável? - Qual bloco/sensor oval armazena o que o usuário digitou após um
pergunte e espere? - Para que serve o operador
juntena categoria Operadores? - No Exemplo Guiado, quais são os nomes das duas variáveis globais criadas para armazenar os dados do motorista?
- Na Prática Obrigatória 1, qual é a tarifa fixa (em R$ por kg) usada para calcular o Valor_Frete?
- Na Prática Obrigatória 1, qual operador matemático é usado para multiplicar Peso_Carga pela tarifa?
- Na Prática Obrigatória 2, quais três dados são solicitados ao motorista para montar o romaneio completo?
- Segundo o Checkpoint, que sigla em inglês resume o conceito de “Captura de Strings” aplicado nesta aula?
- Como podemos concatenar três ou mais textos usando o operador
junte, que só aceita dois parâmetros de cada vez?