Capítulo 06: Condicionais Compostas e Aninhadas (SE-ENTAO-SENAO)
🎯 Objetivo da Aula
Na vida real e nos negócios, quando uma condição não é atendida, quase nunca ficamos sem fazer nada: tomamos um caminho alternativo.
- Se o caminhão passar na vistoria, liberamos a viagem; senão, encaminhamos o veículo para a oficina mecânica.
Nesta aula, você aprenderá a:
- Dominar a estrutura condicional composta
se ... entao ... senao ... fimse(If / Else). - Construir Condicionais Aninhadas (Encadeadas) para classificar dados em 3 ou mais categorias.
- Evitar erros comuns de sintaxe no fechamento de múltiplos blocos
fimse. - Desenvolver sistemas de classificação de risco e roteirização inteligente.
📥 Material de Apoio e Código-Fonte da Aula:
- 📄 Arquivo Pronto (.alg): Baixar Capitulo_06.alg (abra diretamente no VisuAlg 3.0)
- 📦 Exercícios Separados (.zip): Baixar Capitulo_06.zip
🏢 O Cenário Prático (Seu Desafio)
Situação: A seguradora parceira da FastLog exige uma classificação de risco rigorosa para todas as cargas transportadas:
- Cargas com valor acima de R$ 100.000,00: Risco Alto (Exige Escolta Armada Obrigatória).
- Cargas com valor entre R$ 30.000,00 e R$ 100.000,00: Risco Médio (Exige Rastreador Satelital Ativo).
- Cargas com valor abaixo de R$ 30.000,00: Risco Padrão (Sem exigências adicionais).
Missão: Você deve construir o Classificador de Apólices FastLog, recebendo o valor da mercadoria e devolvendo o protocolo exato de segurança exigido pela seguradora.
🧠 Fundamentos: A Lógica da Bifurcação de Caminhos
1. A Estrutura Composta: se ... entao ... senao
A cláusula senao (Else) define o bloco de instruções que será executado obrigatoriamente quando a condição do se for Falsa:
graph TD
A[Início: Avaliar Carga] --> B{Valor > R$ 100.000?}
B -- "Sim (VERDADEIRO)" --> C["Caminho do SE:<br/>Exigir Escolta Armada"]
B -- "Não (FALSO)" --> D{Valor >= R$ 30.000?}
D -- "Sim (VERDADEIRO)" --> E["Caminho do SENAO (com novo SE aninhado):<br/>Exigir Rastreador Satelital"]
D -- "Não (FALSO)" --> F["Caminho do SENAO Final:<br/>Risco Padrão"]
C --> G[Fim do Algoritmo]
E --> G
F --> G
style B fill:#8e44ad,stroke:#fff,stroke-width:2px,color:#fff
style D fill:#f39c12,stroke:#fff,stroke-width:2px,color:#fff
style C fill:#c0392b,stroke:#fff,stroke-width:2px,color:#fff
style E fill:#2980b9,stroke:#fff,stroke-width:2px,color:#fff
style F fill:#217346,stroke:#fff,stroke-width:2px,color:#fff2. A Sintaxe de Condicionais Aninhadas no VisuAlg
Regra dos Pares de Fimse:
Para cada palavra se que você abrir no seu código, você deve ter exatamente um fimse correspondente para fechar o bloco.
📖 Exemplo Guiado: Classificador de Seguro e Risco
Código do Algoritmo:
✅ Exemplo de Execução no Console (F9):
🛠️ Prática Obrigatória 1: Controle de Acesso de Turno de Pátio
Passo 1: O Desafio
Crie um algoritmo "Controle_Turno" que receba a hora atual (número inteiro de 0 a 23).
Classifique em:
- Das 06h às 13h:
Turno 1 - Manhã - Das 14h às 21h:
Turno 2 - Tarde/Noite - Das 22h às 05h:
Turno 3 - Madrugada (Adicional Noturno)
✅ Resultado Esperado (Prática 1):
🛠️ Prática Obrigatória 2: Simulador de Desconto Progressivo por Volume
A FastLog oferece tabelas de desconto para clientes corporativos baseado no volume de caixas transportadas:
- Acima de 500 caixas: 15% de desconto.
- De 100 a 500 caixas: 10% de desconto.
- Abaixo de 100 caixas: Sem desconto (preço cheio).
Crie um algoritmo
"Desconto_Volume"que receba a quantidade de caixas e o valor bruto do frete, calculando e exibindo o valor final com o respectivo desconto aplicado.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_06_SeuNome_SeuSobrenome.alg. - Teste o código passando por todas as ramificações (
se,senao seesenao). - No Microsoft Teams, envie na tarefa “VisuAlg Cap 06 - Condicionais Compostas”.
- Clique em Entregar (Turn In).
💡 Checkpoint de Lógica & Engenharia de Software
Você acabou de aplicar o conceito de Árvore de Decisão (Decision Tree). Em Inteligência Artificial e Machine Learning, algoritmos como Random Forest e Gradient Boosting são compostos por milhares de árvores de se-senao interligadas para tomar decisões de crédito, fraude e diagnóstico médico.
🔥 Desafio de Fixação: Calculadora de Categoria de CNH
Crie um algoritmo que receba o peso bruto do caminhão em toneladas e a quantidade de passageiros, e informe qual categoria mínima de CNH é exigida para dirigir o veículo:
- Acima de 6 toneladas: Categoria
C. - Acima de 8 passageiros: Categoria
D. - Veículos com reboque/carreta acoplada: Categoria
E. - Outros veículos leves: Categoria
B.
🔑 Gabarito de Código Completo
Prática 1:
Prática 2:
Desafio:
📝 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.
- Segundo o capítulo, o que a cláusula
senao(Else) define, e quando ela é obrigatoriamente executada? - Segundo a “Regra dos Pares de Fimse”, o que deve corresponder a cada palavra
seaberta no código? - Na estrutura de Condicionais Aninhadas apresentada no capítulo, em que situação o bloco do
senaomais interno é executado? - No Cenário Prático da seguradora, qual protocolo de segurança é exigido para cargas com valor acima de R$ 100.000,00?
- No Exemplo Guiado (Classificador de Seguro e Risco), qual categoria de risco e qual exigência são atribuídas a uma carga no valor de R$ 65.000,00?
- Na Prática Obrigatória 1 (Controle de Acesso de Turno de Pátio), em qual faixa de horário se enquadra o “Turno 3 - Madrugada (Adicional Noturno)”?
- Na Prática Obrigatória 2 (Desconto Progressivo por Volume), qual percentual de desconto é aplicado para uma quantidade de caixas entre 100 e 500?
- Segundo o Checkpoint de Lógica, o que é uma Árvore de Decisão (Decision Tree), e quais algoritmos de Machine Learning o capítulo cita como exemplo?
- Segundo as Instruções de Entrega, o código deve ser testado passando por quais ramificações antes do envio da atividade?
- No Exemplo Guiado, qual comando foi utilizado para capturar do teclado o código do Conhecimento de Transporte (CT-e) e o valor declarado da carga?