Olá, Marcio. Como vai?
Parabéns pela resolução do desafio! Você aplicou de forma muito clara os conceitos de estruturas condicionais encadeadas e a lógica de acumuladores. No pensamento computacional, essa habilidade de transformar regras de negócio (como as taxas de entrega) em um passo a passo lógico é o que chamamos de construção de algoritmos.
Sua lógica de primeiro definir a "taxa base" de acordo com a distância e, somente depois, aplicar o adicional de chuva, é a maneira mais limpa de resolver o problema, pois evita a repetição de código.
Para agregar ainda mais valor ao seu aprendizado, gostaria de destacar dois pontos interessantes sobre como essa lógica se traduz para a programação real:
1. Operadores Relacionais e Intervalos
No seu algoritmo, quando você diz "até 5 km" e depois "até 10 km", o computador entende isso através de operadores como <=. A ordem que você escolheu é essencial: se você testasse "até 10 km" primeiro, um pedido de 3 km entraria na categoria errada. A sua hierarquia de condições está perfeita.
2. Tradução para Código (Python)
Veja como o seu pensamento em linguagem natural se transforma em um script funcional. Note que usamos o .lower() para garantir que o programa entenda "Sim" ou "sim" da mesma forma:
# Entrada de dados
distancia = float(input("Digite a distância (km): "))
chuva = input("Está chovendo? (sim/não): ").strip().lower()
# Definição da taxa base
if distancia <= 5:
taxa = 5.0
elif distancia <= 10:
taxa = 8.0
else:
taxa = 10.0
# Adicional condicional
if chuva == "sim":
taxa += 2.0
print(f"O valor final da entrega é: R$ {taxa:.2f}")
Dica de Boas Práticas:
Em sistemas de logística maiores, esses valores (5, 8, 10 e 2) costumam ser armazenados em variáveis de configuração ou no banco de dados. Assim, se a empresa decidir aumentar a taxa base para R$ 6,00, você altera em apenas um lugar e o algoritmo continua funcionando perfeitamente sem precisar mexer na lógica do if/else.
Excelente trabalho na estruturação do seu algoritmo!
Espero que possa ter lhe ajudado!