Capítulo 19: Lógica de Resolução de Problemas
🎯 Objetivo da Aula
Programar não é apenas decorar comandos, é saber como resolver problemas. Nesta aula, faremos uma revisão estratégica. O objetivo é aprender as etapas do pensamento computacional: Decomposição, Reconhecimento de Padrões, Abstração e Algoritmos, aplicando tudo o que vimos até aqui.
🏢 O Cenário Prático (Seu Desafio)
Situação: A FastLog precisa de um sistema que audite 5 pacotes. Para cada pacote, o sistema deve:
- Validar se o peso é maior que zero.
- Calcular o custo de armazenagem (R$ 2,00 por quilo).
- Somar o faturamento total no final.
- Avisar se algum pacote ultrapassa o limite de segurança de 100kg.
O Problema: Como organizar tantas regras sem criar um código confuso?
🧠 Fundamentos: A Teoria Traduzida
1. Decomposição
Nunca tente resolver o problema inteiro de uma vez. Quebre-o em partes menores.
✈️ Exemplo 1: Cotidiano (Viagem de Férias)
Para viajar, você precisa: 1. Comprar passagens, 2. Reservar hotel, 3. Arrumar as malas. São tarefas menores que formam o “Problema” da viagem.
🚚 Exemplo 2: Técnico (Auditoria de Embarque)
Para liberar um lote, você precisa: 1. Conferir pesos, 2. Validar NFs, 3. Registrar motorista.
graph TD
A[Problema: Auditoria de Carga] --> B[Tarefa 1: Validar Pesos]
A --> C[Tarefa 2: Calcular Custos]
A --> D[Tarefa 3: Gerar Alertas]
B --> E[Conclusão do Lote]
C --> E
D --> E
style B fill:#f39c12,stroke:#fff,color:#fff
style E fill:#2ecc71,stroke:#fff,color:#fff📖 Exemplo Guiado: Auditoria de Cargas
Resolver problemas complexos exige decomposição. Aqui unimos vetores, loops e condicionais para auditar uma lista de pacotes e calcular custos.
🛠️ Prática Obrigatória 1: Refatoração Modular
Escolha um dos algoritmos que você desenvolveu nos capítulos anteriores (ex: Cálculo de Frete ou Médias). Refaça-o agora utilizando um Procedimento ou Função para separar a lógica de cálculo da lógica de exibição.
✅ Resultado Esperado
🛠️ Prática Obrigatória 2: Simulador de Taxas FastLog
Crie uma variável global taxa_adm <- 15.0. Crie um procedimento que use essa variável global para calcular o custo final de um serviço, mas que tenha sua própria variável local custo_operacional. Exiba o resultado final.
✅ Resultado Esperado
🔥 Desafio de Fixação (Opcional): Classificador de Lote
Crie um programa que peça 10 números de série. O programa deve contar e exibir quantos desses números são maiores que um valor de referência X digitado pelo usuário no início do programa.
📤 Instruções de Entrega (Microsoft Teams)
Após validar seus códigos:
- Pense em como dividir o problema em partes menores antes de começar a digitar.
- Salve os arquivos com a extensão
.alg(Ex:Atividade_19_SeuNome.alg). - Envie no Microsoft Teams na tarefa “VisuAlg Cap 19 - Estratégia”.