Oi tudo bem...
O seu codigo pensando na logica do negocio esta correto.
Mas sempre temos espaço para melhorias.
Segue ai:
Os nomes atuais funcionam, mas podem ficar mais claros, padronizados e sem ambiguidade.
Não tenha medo de dar nomes grandes as variaveis e funçoes...
| Atual | Sugestão | Motivo |
|---|
| distancia | distanciaKm | Deixa explícita a unidade |
| chuva | estaChovendo | Variável booleana deve parecer uma pergunta |
| valor_distancia | valorPorDistancia | Indica a regra aplicada |
| taxa_da_chuva | taxaClima ou taxaChuva | Nome mais direto |
| valor_da_entrega | valorTotalEntrega | Indica que é o valor final |
Problemas atuais na lógica:
- A estrutura dos
senão está confusa- Falta deixar claro quando uma condição termina e outra começa
- As faixas de distância não estão totalmente explícitas
- Não existe validação de entrada (ex: distância negativa)
Sugestão
ENTRADA distanciaKm = perguntar a distância em quilômetros estaChovendo = perguntar se está chovendo (true / false)
PROCESSAMENTO
// validação básica
se distanciaKm <= 0
exibir "Distância inválida"
encerrar processamento
// cálculo do valor por distância
se distanciaKm <= 5
valorPorDistancia = 5.00
senão se distanciaKm <= 10
valorPorDistancia = 8.00
senão
valorPorDistancia = 10.00
// cálculo da taxa de clima
se estaChovendo == true
taxaChuva = 2.00
senão
taxaChuva = 0.00
// cálculo do valor final
valorTotalEntrega = valorPorDistancia + taxaChuva
O que mudou?
- Cada regra tem uma única responsabilidade
- As faixas de distância são claras e mutuamente exclusivas
- Fica fácil mudar valores depois
- O código “se lê como uma conversa”
A saída atual mostra apenas o valor final.
Você pode melhorar a experiência exibindo o detalhamento do cálculo:
SAÍDA
exibir "Valor total da entrega: R$ ", valorTotalEntrega
ou
SAÍDA
exibir "Distância: ", distanciaKm, " km"
exibir "Valor por distância: R$ ", valorPorDistancia
exibir "Taxa de chuva: R$ ", taxaChuva
exibir "Valor total da entrega: R$ ", valorTotalEntrega
Se esse sistema crescer no futuro, você já pode pensar assim:
- Regras de preço separadas do cálculo final
- Tabela de preços por faixa de distância
- Taxas adicionais (horário noturno, feriado, etc.)
Continue explorando ao maximo as inumeras possibilidades no código...
Comente ai qualquer duvida.
Bons estudos.