1
resposta

Desafio: Calculando valor da entrega

Analise a distância: Pergunte ao usuário: "Qual é a distância para a entrega em quilômetros (km)?" e coloque o valor na caixinha mts_distância.

Informe sobre o clima: Pergunte: "Chovendo agora?" (Responda com SIM ou NÃO) e armazene na caixa clima_chovendo.

Etapa 1: Estabelecer a Taxa Entrega (com base na mts_distância)

Se a distância for < = a 5k:

Estabeleça a caixinha taxa_entrega com o montante de R$ 5,00.

Caso contrário, se a distância for < que 5k e <= que 10k:

Estabeleça a caixinha taxa_entrega com o montante de R$ 8,00.

Caso contrário (ou seja, se a distância < 10 km):

Estabeleça a caixinha taxa_entrega com o montante de R$ 10,00.

tapa 2: Adicionar o Adicional de Chuva

Se a caixinha clima_chovendo for "SIM":

Adicione aproximadamente R$ 2,00 ao valor já armazenado na caixinha taxa_entrega.

Exiba o resultado final:

Mostre na tela a seguinte mensagem: "O valor final da sua taxa de entrega é: R$ [Valor da taxa_base]".

1 resposta

Olá, Jeandson. Como vai?

Mais um excelente algoritmo para a sua coleção! É muito gratificante ver a sua consistência e evolução aqui no fórum. Como Assistente Administrativo, você sabe bem que calcular fretes, taxas e entregas com base em variáveis (como distância e clima) é um excelente exemplo de automação de processos logísticos do mundo real.

O seu raciocínio estruturado para a Etapa 2 (Adicional de Chuva) e a exibição final ficou impecável. No entanto, analisando a sua Etapa 1, você cometeu um pequeno equívoco na definição dos intervalos das condições (um erro clássico de lógica e digitação).

Como um bom par de programação, vamos analisar juntos onde a lógica deu um pequeno "nó" e como ajustá-la:

Onde está o ponto de atenção?

No seu segundo teste, você escreveu:

"Caso contrário, se a distância for < que 5k e <= que 10k"

E no terceiro teste, escreveu:

"Caso contrário (ou seja, se a distância < 10 km)"

Se a distância for de $7\text{ km}$, o seu sistema vai testar a primeira regra (não é $\le 5$). Depois, testará a segunda regra: $7$ é $\le 10$, mas não é $< 5$. O sistema pularia para o Caso contrário final, aplicando a taxa de R$ 10,00 incorretamente. Além disso, no último caso, o correto seria "maior que $10\text{ km}$" e não menor.

Como o computador lê o código de cima para baixo em forma de cascata, nós podemos simplificar e corrigir esses intervalos de forma muito elegante. Se ele testou a primeira caixinha e viu que a distância não é menor ou igual a 5, ela obrigatoriamente já é maior que 5. Então, no próximo passo, você só precisa testar o limite superior ($\le 10$).

Veja como o seu algoritmo corrigido e refinado fica perfeito:

Analise a distância: armazene na caixinha mts_distancia.
Informe sobre o clima: armazene na caixinha clima_chovendo.

Etapa 1: Estabelecer a Taxa Entrega (com base na mts_distancia)
Se a distancia for <= 5:
    taxa_entrega = R$ 5,00
Caso contrário, se a distancia for <= 10:  (Aqui o sistema já sabe que é maior que 5)
    taxa_entrega = R$ 8,00
Caso contrário:  (Aqui o sistema já sabe que é maior que 10)
    taxa_entrega = R$ 10,00

Etapa 2: Adicionar o Adicional de Chuva
Se clima_chovendo for "SIM":
    taxa_entrega = taxa_entrega + R$ 2,00

Exiba o resultado final: "O valor final da sua taxa de entrega é: R$ [taxa_entrega]"

Bônus: Como seria esse código em Python?

Para te apoiar no seu objetivo de transição de carreira, veja como essa estrutura limpa se transforma em linhas de código prontas para rodar:

# Entrada de dados
mts_distancia = float(input("Qual é a distância para a entrega em km? "))
clima_chovendo = input("Chovendo agora? (SIM ou NÃO): ").upper().strip()

# Etapa 1: Taxa base por distância
if mts_distancia <= 5.0:
    taxa_entrega = 5.00
elif mts_distancia <= 10.0:
    taxa_entrega = 8.00
else:
    taxa_entrega = 10.00

# Etapa 2: Adicional de chuva
if clima_chovendo == "SIM":
    taxa_entrega += 2.00

# Saída de dados formatada
print(f"O valor final da sua taxa de entrega é: R$ {taxa_entrega:.2f}")

Identificar e corrigir esses pequenos gargalos de lógica de intervalos faz parte do dia a dia de qualquer desenvolvedor de software. A sua capacidade de quebrar o problema em etapas (distância $\rightarrow$ chuva $\rightarrow$ total) está excelente.

Continue com esse foco e dedicação incríveis!

Espero que possa ter lhe ajudado!