Vamos criar uma função que calcule o valor final da entrega de um pedido. Essa função receberá como entrada duas variáveis: o CEP (para calcular a distância) e uma variável booleana que informará se está chovendo ou não, e retornará o valor total da entrega em reais.
função calcularEntrega(CEP, estáChovendo):
caso a distância for menor ou igual 5km
entrega = 5
caso a distância estiver entre 5km a 10km
entrega = 8
caso a disância seja acima de 10km
entrega = 10
se estáChovendo for verdadeiro, retornar entrega + 2
caso contrário, retornar entrega
// Entrada: um exemplo de como calcular a distância seria pelo CEP
exibir "Digite o CEP do seu endereço"
CEP = ler do usuário
// Processamento: buscar as informações do endereço pelo CEP e descobrir se está chovendo por API, e utilizar a função definida acima
valor = calcularEntrega(CEP, estáChovendo)
// Saída: o sistema mostra o valor total da entrega para o cliente
exibir "O valor total da sua entrega é de " + valor + " reais."
Esta solução encapsula a lógica de cálculo da entrega, utilizando busca pelo CEP e API, dentro da função definida, tornando fácil ajustes e modificações posteriores. O retorno de valor booleano para a taxa adicional torna mais simples lidar com os únicos dois estados possíveis: de estar chovendo ou não.