Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] DUVIDA- CALCULANDO VALOR DA ENTREGA

Oi! Tenho uma dúvida sobre o enunciado do desafio da taxa de entrega.
As regras definem "até 5 km é 5,00" e "entre 5 e 10 km sao 8,00", mas o que acontece quando a distância é exatamente 5 km? Ela se encaixa nas duas faixas ao mesmo tempo e o enunciado não deixa claro qual aplicar.
Nesses casos daria bug no sistama, ou eu crio um sistema que a partir de 5,1 km se aplica a 8 reais?
5 km exatos é 5,00 ou 8,00?

2 respostas

Olá, Lavinia. Como vai?

Sua dúvida é excelente e muito comum quando estamos aprendendo lógica de programação. Esse tipo de situação é o que chamamos de "condição de contorno" e é fundamental tratá-la corretamente para evitar ambiguidades ou os famosos bugs no sistema.

Quando um enunciado diz "até 5 km", na lógica de programação geralmente traduzimos isso como "menor ou igual a 5" (<= 5). Isso significa que os 5 km exatos estão inclusos nessa regra, e o valor cobrado será de 5,00.

Para a próxima faixa, "entre 5 e 10 km", precisamos garantir que ela só comece após os 5 km. Se colocarmos "maior ou igual a 5" (>= 5), o número 5 cairia nas duas regras, exatamente como você observou. A solução correta é usar apenas "maior que 5" (> 5) junto com "menor ou igual a 10" (<= 10).

Respondendo à sua pergunta sobre aplicar a regra a partir de 5,1 km: usar o operador lógico de "maior que" (> 5) é a melhor prática em vez de escrever 5.1 no código. Isso porque o > 5 cobre automaticamente o 5.1, o 5.01, o 5.0001 e assim por diante, tratando a distância de forma contínua e precisa.

Veja como essa lógica ficaria na prática usando uma estrutura de decisão condicional:

if (distancia <= 5) {
    valorEntrega = 5.00;
} else if (distancia > 5 && distancia <= 10) {
    valorEntrega = 8.00;
} else {
    // Aqui entrariam as regras para distâncias maiores que 10 km
}

Neste exemplo:

  • Se a distância for exatamente 5, o programa entra na primeira condição.
  • Se a distância for 5.1, a primeira condição é avaliada como falsa e o programa passa para o else if, onde a condição será verdadeira.

Utilizar o encadeamento com else if é uma ótima prática porque garante que, assim que o sistema encontra a faixa de valor correta, ele ignora as demais, poupando processamento e evitando que regras conflitantes sejam aplicadas simultaneamente.

Espero que possa ter lhe ajudado!

solução!

No algoritmo precisa esclarecer ai fica certinho, blz muito obrigada Evandro
usar (distancia <= 5) e (distancia > 5