Capítulo 08: Seleção Múltipla (ESCOLHA-CASO-PARE / Switch-Case)
🎯 Objetivo da Aula
Quando um sistema precisa processar um menu com 5, 10 ou 20 opções numéricas (como uma Central de Atendimento - SAC ou um menu de ERP), encadear múltiplos se ... senao se ... senao se torna o código poluído e difícil de manter.
Nesta aula, você aprenderá a:
- Compreender o funcionamento da Seleção Múltipla (Switch / Case).
- Dominar a sintaxe:
escolha (variavel) { caso 1: ... pare caso contrario: ... }. - Compreender a função mandatória do comando
pare(break) no Portugol Studio. - Construir menus interativos e tarifadores por categorias de transporte.
📥 Material de Apoio e Código-Fonte da Aula:
- 📄 Arquivo Pronto (.por): Baixar Capitulo_08.por (abra diretamente no Portugol Studio)
- 📦 Exercícios Separados (.zip): Baixar Capitulo_08.zip
🏢 O Cenário Prático (Seu Desafio)
Situação: A central telefônica (URA) da FastLog atende motoristas e fornecedores. Ao ligar para a central, o usuário escuta o menu:
1: Rastreamento de Carga2: Agendamento de Descarga em Docas3: Cotação de Novos Fretes4: Central de Sinistros e Emergências5: Falar com Atendente
Missão: Programar o Roteador Telefônico da URA FastLog, direcionando o usuário para o setor competente e tratando digitações inválidas com o caso contrario.
🧠 Fundamentos: A Estrutura escolha-caso
1. Como Funciona a Seleção Múltipla?
O comando escolha avalia o valor de uma única variável e salta diretamente para o rótulo caso correspondente:
graph TD
A[Opção Digitada pelo Usuário] --> Switch{escolha opcao}
Switch -- "caso 1" --> C1[1. Rastreamento de Carga]
Switch -- "caso 2" --> C2[2. Agendamento de Docas]
Switch -- "caso 3" --> C3[3. Cotação de Fretes]
Switch -- "caso 4" --> C4[4. Central de Sinistros]
Switch -- "caso contrario" --> Def[Opção Inválida!]
C1 --> P1[pare]
C2 --> P2[pare]
C3 --> P3[pare]
C4 --> P4[pare]
Def --> Fim[Fim da Estrutura]
P1 --> Fim
P2 --> Fim
P3 --> Fim
P4 --> Fim
style Switch fill:#8e44ad,stroke:#fff,color:#fff
style C1 fill:#2980b9,stroke:#fff,color:#fff
style C2 fill:#2980b9,stroke:#fff,color:#fff
style C3 fill:#2980b9,stroke:#fff,color:#fff
style C4 fill:#2980b9,stroke:#fff,color:#fff
style Def fill:#c0392b,stroke:#fff,color:#fff2. O Papel Crítico do Comando pare (Break)
Por que o pare é Obrigatório no Portugol Studio?
Diferente do VisuAlg, no Portugol Studio (assim como em C, Java e JavaScript), se você esquecer de colocar o comando pare, o código continuará descendo e executará os casos seguintes mesmo que eles não correspondam à opção digitada (Fall-Through)!
3. A Sintaxe Completa
📖 Exemplo Guiado: URA Telefônica do SAC
Código do Programa:
✅ Exemplo de Execução no Console (Shift + F6):
🛠️ Prática Obrigatória 1: Calculadora Aritmética Modular
Passo 1: O Desafio
Crie um programa calculadora_menu.por que receba dois números reais (n1 e n2) e ofereça um menu:
1➔ Soma (+)2➔ Subtração (-)3➔ Multiplicação (*)4➔ Divisão (/)caso contrario➔"Operação Inválida!".
✅ Resultado Esperado (Prática 1):
🛠️ Prática Obrigatória 2: Tarifador por Modal de Transporte
Crie um programa tarifador_modal.por que receba o peso da mercadoria em kg e o código do modal:
1(Rodoviário): R$ 2,50/kg2(Ferroviário): R$ 1,40/kg3(Aéreo Expresso): R$ 9,80/kg4(Marítimo): R$ 0,90/kg Calcule e exiba o custo total do transporte.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_08_SeuNome_SeuSobrenome.por. - Certifique-se de que todos os blocos
casoterminam com o comandopare. - No Microsoft Teams, envie na tarefa “Portugol Cap 08 - Estrutura Escolha”.
- Clique em Entregar (Turn In).
💡 Checkpoint de Lógica & Engenharia de Software
Você acabou de aplicar o conceito de Roteamento de Requisições e Máquinas de Estados. Servidores Web em Node.js, C# e Java utilizam tabelas de correspondência para direcionar URLs para seus respectivos controladores (Controllers).
🔥 Desafio de Fixação: Calculadora de Descontos por Categoria VIP
Crie um programa com escolha-caso que receba o valor da compra e a categoria do cliente:
1(Bronze): 5% de desconto2(Prata): 10% de desconto3(Ouro): 15% de desconto4(Diamante VIP): 20% de descontocaso contrario: Sem desconto (0%).
🔑 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.
- O que o comando
escolhaavalia para decidir para qualcasosaltar, segundo o capítulo? - Segundo o quadro CRITICAL do capítulo, o que acontece se o comando
parefor esquecido dentro de umcasono Portugol Studio? - Como se chama, em inglês, o comportamento descrito no capítulo em que a execução “cai” para os casos seguintes por falta do
pare? - Qual cláusula é usada dentro do
escolhapara tratar valores que não correspondem a nenhumcasodefinido? - Quais são as cinco opções do menu da Central de Atendimento (URA) apresentadas no Cenário Prático e reproduzidas no Exemplo Guiado?
- Na Prática Obrigatória 1 (Calculadora Aritmética Modular), quais são as quatro operações do menu e seus respectivos números de opção?
- Na Prática Obrigatória 2 (Tarifador por Modal de Transporte), qual é a tarifa por kg do modal “Aéreo Expresso” (código 3)?
- Segundo o Checkpoint de Lógica, a que conceito de programação de servidores (citado no texto) a estrutura
escolha-casoé comparada? - Na sintaxe apresentada na seção de Fundamentos, o que deve vir logo após o bloco de instruções de cada
caso, antes do próximocaso? - Diferente de qual outra linguagem (citada no quadro CRITICAL) o Portugol Studio exige o comando
pareobrigatoriamente, assim como C, Java e JavaScript?