Capítulo 06: Condicionais Compostas (O Bloco 'Se Então Senão')
🎯 Objetivo da Aula
Na vida real e nas operações de negócios, as decisões raramente terminam em “fazer algo ou não fazer nada”. Na maioria das vezes, temos duas alternativas mutuamente exclusivas: se a mercadoria estiver aprovada, libere para embarque; caso contrário (senão), envie para a quarentena de auditoria.
Ao final desta aula, você será capaz de:
- Compreender o funcionamento da bifurcação completa com o bloco 🟠
se <condição> então ... senão. - Compreender por que o
senãoé mais seguro, elegante e eficiente do que usar dois blocosseseparados. - Implementar regras de negócio com limites numéricos e tolerâncias de carga.
- Construir uma Balança Rodoviária Inteligente de Triagem de Cargas.
📥 Material de Apoio e Roteiro de Blocos:
- 📄 Roteiro Estruturado (.txt): Baixar Capitulo_06.txt (guia textual com a sequência de blocos)
- 📦 Exercícios Separados (.zip): Baixar Capitulo_06.zip
🏢 O Cenário Prático (Seu Desafio)
Situação: As carretas que chegam ao terminal da FastLog passam pela balança eletrônica de entrada. A lei de trânsito estipula que a capacidade máxima por eixo para aquele tipo de carreta é de 15.000 kg.
- Se o peso for menor ou igual a 15.000 kg: O caminhão é considerado Regular e o semáforo fica verde.
- Senão (se ultrapassar 15.000 kg): O caminhão é classificado com Sobrecarga, o semáforo fica vermelho, a cancela permanece travada e uma taxa de destombamento de R$ 500,00 é aplicada.
Missão: Programar a lógica completa da balança no Scratch, garantindo que o sistema tome uma das duas atitudes de forma 100% automática.
🧠 Fundamentos: A Estrutura se então senão
1. A Bifurcação Completa no Scratch
O bloco 🟠 se então senão divide o fluxo de execução em dois caminhos opostos:
graph TD
A["Início: Captura Peso do Veículo"] --> B{"Condição Hexagonal:<br/>Peso <= 15000?"}
B -- "VERDADEIRO" --> C["Caminho ENTÃO:<br/>1. Semáforo Verde<br/>2. Mensagem: Trânsito Liberado!"]
B -- "FALSO" --> D["Caminho SENÃO:<br/>1. Semáforo Vermelho<br/>2. Mensagem: Bloqueio por Sobrecarga!"]
C --> E["Fim da Verificação"]
D --> E
style B fill:#f39c12,stroke:#fff,stroke-width:2px,color:#fff
style C fill:#27ae60,stroke:#fff,stroke-width:2px,color:#fff
style D fill:#c0392b,stroke:#fff,stroke-width:2px,color:#fff- Ramo “Então”: É executado única e exclusivamente se o teste hexagonal for Verdadeiro.
- Ramo “Senão”: É executado única e exclusivamente se o teste hexagonal for Falso. O computador nunca executará os dois blocos ao mesmo tempo!
2. Por que Não Usar Dois Blocos se Separados?
| Estrutura | Comportamento no Scratch | Veredito |
|---|---|---|
Dois se independentes | O Scratch faz dois testes no processador. Se a variável mudar no meio do caminho, pode gerar comportamentos inesperados. | ⚠️ Ineficiente e sujeito a bugs. |
Um se então senão | O Scratch faz apenas um teste. Se for falso, ele cai direto no senão. | ✅ Padrão ouro da Engenharia de Software. |
3. Prévia Rápida: O Operador não
O Exemplo Guiado a seguir usa o operador lógico não (categoria 🟢 Operadores) dentro da condição. Ele simplesmente inverte o resultado de uma condição: se o que está dentro dele for verdadeiro, não transforma em falso, e vice-versa. Assim, <não <(Peso_Veiculo) > (15000)>> significa “o peso NÃO é maior que 15000”, ou seja, o peso é menor ou igual a 15000. O Capítulo 07 vai aprofundar esse operador junto com e e ou.
📖 Exemplo Guiado: Balança Rodoviária de Entrada
Passo a Passo no Scratch 3.0:
- Crie a variável global:
Peso_Veiculo. - Adicione o ator
Balança_Eletronica(ou desenhe uma plataforma cinza no chão). - Arraste para a área de código:
🛠️ Prática Obrigatória 1: Classificador de Turno de Trabalho
O Desafio:
Crie um sistema para liberar o crachá do operador com base no horário do turno:
- Crie a variável
Hora_Atual. - Pergunte:
[Digite a hora atual (número inteiro de 0 a 23):]. - Se
(Hora_Atual) < (18):- Exiba:
[TURNO DIURNO: Acesso liberado ao galpão A.]por 3 segundos.
- Exiba:
- Senão:
- Exiba:
[TURNO NOTURNO: Acesso especial liberado ao pátio B com adicional.]por 3 segundos.
- Exiba:
🛠️ Prática Obrigatória 2: Política de Desconto por Volume
Crie um simulador para o setor comercial da FastLog:
- Pergunte a quantidade de caixas a serem enviadas e salve em
Total_Caixas. - Pergunte o valor bruto do frete e salve em
Valor_Frete. - Se
(Total_Caixas) > (100):- O cliente ganha 10% de desconto no frete:
mude [Valor_Final v] para ((Valor_Frete) * (0.9)). - Diga:
[DESCONTO APLICADO: 10% concedido para grandes volumes!]por 3 segundos.
- O cliente ganha 10% de desconto no frete:
- Senão:
- Sem desconto:
mude [Valor_Final v] para (Valor_Frete). - Diga:
[TARIFA REGULAR: Sem desconto para remessas abaixo de 100 caixas.]por 3 segundos.
- Sem desconto:
- Exiba o
Valor_Finalna tela.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo do projeto com o nome:
Atividade_06_SeuNome_SeuSobrenome.sb3. - Teste cenários abaixo e acima de 15.000 kg para comprovar a alternância dos caminhos.
- No Microsoft Teams, envie na tarefa “Scratch Cap 06 - Condicionais Compostas”.
- Clique em Entregar (Turn In).
💡 Checkpoint de Lógica & Engenharia de Software
Você acabou de aplicar o conceito de Bifurcação Binária (Binary Branching). Esse é o mecanismo fundamental por trás de algoritmos de roteamento de pacotes na internet, aprovação de transações com cartão de crédito e validação de autenticação em bancos de dados.
🔥 Desafio de Fixação: Validador de Capacidade de Combustível
Pergunte o nível atual do tanque de diesel do caminhão em porcentagem (de 0 a 100).
Se o tanque estiver com 30% ou mais, diga: [Nível de combustível seguro para viagem].
Senão, toque um alarme e diga: [REABASTECIMENTO OBRIGATÓRIO: Risco de pane seca na rodovia!].
🔑 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_06.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.
- Por que usar um único bloco
se então senãoé mais seguro e eficiente do que usar dois blocosseseparados? - Em que condição o ramo “Senão” de um bloco
se então senãoé executado? - No Exemplo Guiado da balança rodoviária, qual é o peso limite (em kg) que separa um veículo “Regular” de um veículo com “Sobrecarga”?
- No Exemplo Guiado, que valor é usado no bloco
mude o efeito [cor v] parapara representar a pesagem “Conforme” (aprovada, cor verde)? - Na Prática Obrigatória 1, qual é a hora limite que separa o “Turno Diurno” do “Turno Noturno”?
- Na Prática Obrigatória 2, qual porcentagem de desconto é aplicada quando o Total_Caixas é maior que 100?
- Na Prática Obrigatória 2, qual operador matemático e qual valor multiplicam o Valor_Frete para aplicar o desconto de 10%?
- Segundo o Checkpoint, cite dois exemplos reais de sistemas que usam o conceito de “Bifurcação Binária” (Binary Branching).
- No Exemplo Guiado, qual é o nome da variável global criada para armazenar o peso do veículo pesado na balança?
- Segundo a tabela do capítulo, quantos testes o Scratch realiza ao usar um único
se então senão, comparado ao uso de dois blocosseindependentes?