Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Resposta] Desafio: Calculando valor da entrega

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.

1 resposta
solução!

Oi, Julianna.

Sua solução demonstra um excelente domínio de Abstração e Modularização, dois pilares fundamentais da computação. Ao isolar a lógica do cálculo dentro de uma função, você criou um código muito mais organizado e fácil de manter. Se o preço da taxa de chuva mudar amanhã, você só precisará alterar uma única linha de código.

A forma como você estruturou o raciocínio, separando claramente Entrada, Processamento e Saída, é a base para o desenvolvimento de qualquer software profissional.

Uma pequena observação para o fluxo

Ao definir intervalos, é uma boa prática garantir que os limites não se sobreponham. No seu pseudocódigo:

  1. Menor ou igual a 5km.
  2. Entre 5km e 10km.

Se a distância for exatamente 5km, o sistema poderia se confundir entre a primeira e a segunda regra. Uma forma de evitar isso é usar comparadores estritos, como:

  • distancia <= 5
  • distancia > 5 e distancia <= 10
  • distancia > 10

Você mencionou que o retorno booleano facilita o tratamento dos estados. Isso é verdade inclusive para a economia de processamento: você primeiro define o valor base pela distância e, apenas ao final, aplica o modificador do clima. É uma estrutura muito limpa.

Essa estrutura que você montou é exatamente o que grandes aplicativos de entrega utilizam para calcular o frete dinâmico. Você já pensou em como adicionaria uma nova regra, por exemplo, se o pedido for feito em um horário de pico?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!