Olá, Pedro! Como vai?
O seu algoritmo ficou excelente e a sua visão de negócio para o aplicativo de entregas é sensacional! Esse é o tipo de pensamento que diferencia um programador focado em linhas de código de um verdadeiro desenvolvedor de soluções.
A sua ideia de automatizar as entradas (capturando a distância do cadastro e o clima de uma API de previsão do tempo em tempo real, sem alugar o cliente com perguntas) é o padrão ouro de usabilidade e experiência do usuário (UX) no mercado de aplicativos hoje.
Analisando a estrutura do seu pseudocódigo, você aplicou muito bem os pilares do Pensamento Computacional, desenhando as estruturas condicionais (se/senao) para ramificar as regras de cobrança. Contudo, há um detalhe lógico sutil no seu primeiro bloco de testes que pode fazer o seu sistema cobrar o valor errado de alguns clientes. Vamos analisar juntos?
O "Efeito Cascata" nas Condicionais
Dê uma olhada em como as duas primeiras condições foram escritas:
se endereco <= 5
entrega = 5,00
se endereco <= 10
entrega = 8,00
Imagine que um cliente peça uma entrega e o endereço dele fique a 3 km de distância.
- O seu sistema vai testar a primeira linha: 3 é menor ou igual a 5? Sim! A taxa de entrega vira
5,00. - Como a segunda linha é um novo
se independente, o sistema vai testar de novo: 3 é menor ou igual a 10? Sim também! A taxa de entrega é sobrescritada e vira 8,00.
Ou seja, quem mora perto acabaria pagando mais caro porque o segundo teste ignora que o primeiro já deu verdadeiro!
Como corrigir usando o "Senão Se" (senao se)
Para resolver essa sobreposição, precisamos encadear as condições. Assim, o sistema só testa a regra dos 10 km se o endereço for maior do que 5 km. Veja como a lógica fica perfeita e blindada:
se endereco <= 5
entrega = 5,00
senao se endereco <= 10 // Só entra aqui se for maior que 5 e menor/igual a 10
entrega = 8,00
senao
entrega = 10,00
Uma pequena melhoria na exibição final
No segundo bloco, onde você checa o clima, repare que se estiver chovendo (previsao == TRUE), você calcula o total com acréscimo, mas a mensagem que exibe o resultado final com a distância e o preço atualizado ficou apenas dentro do senao:
se previsao == TRUE
total = entrega + 2,00
"Houve acréscimo de R$2,00 , Valor total:" total // Boa prática: mostrar o resumo aqui também!
senao
total = entrega
"Distância:" endereco ", valor cobrado: R$" total
Ajustando esse fluxo para que ambos os caminhos mostrem o relatório completo da corrida, o seu algoritmo fica 100% pronto para ser codificado em qualquer linguagem, como Python ou JavaScript.
Parabéns pela excelente iniciativa, pela sacada de integrar dados automatizados de clima e pela ótima estrutura lógica trazida para o fórum!
Espero que possa ter lhe ajudado!