1
resposta

Calculando o Valor da Entrega

Em um serviço de delivery, o valor da taxa de entrega pode variar conforme a distância até o cliente e as condições climáticas. Automatizar esse cálculo torna o processo mais rápido, evita erros e garante que o valor cobrado seja sempre calculado de acordo com as regras estabelecidas pela empresa.

1. Dados de Entrada

O algoritmo precisa receber duas informações:

  • Distância até o cliente (em quilômetros).
  • Se está chovendo (Sim ou Não).

Exemplo

  • Distância: 7 km
  • Está chovendo? Sim

2. Regras de Negócio

A taxa de entrega é definida da seguinte forma:

DistânciaTaxa Base
Até 5 kmR$ 5,00
Acima de 5 km até 10 kmR$ 8,00
Acima de 10 kmR$ 10,00

Regra Adicional

  • Se estiver chovendo, acrescentar R$ 2,00 ao valor da taxa base.

3. Lógica do Cálculo

O algoritmo deve primeiro determinar a taxa base conforme a distância e, em seguida, verificar se há chuva para adicionar o valor extra.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

4. Algoritmo em Linguagem Natural

  1. Receber a distância até o cliente.
  2. Perguntar se está chovendo.
  3. Se a distância for menor ou igual a 5 km, definir a taxa base como R$ 5,00.
  4. Senão, se a distância for menor ou igual a 10 km, definir a taxa base como R$ 8,00.
  5. Caso contrário, definir a taxa base como R$ 10,00.
  6. Se estiver chovendo, adicionar R$ 2,00 à taxa base.
  7. Exibir o valor final da entrega.
  8. Encerrar o algoritmo.

5. Exemplo de Execução
Exemplo 1

  • Distância: 4 km
  • Chuva: Não
  • Taxa final: R$ 5,00

Exemplo 2

  • Distância: 7 km
  • Chuva: Sim
  • Taxa base: R$ 8,00
  • Acréscimo por chuva: R$ 2,00
  • Taxa final: R$ 10,00

Exemplo 3

  • Distância: 15 km
  • Chuva: Não
  • Taxa final: R$ 10,00

6. Pseudocódigo

ler distancia
ler chuva

se distancia <= 5 então
    taxa = 5
senão se distancia <= 10 então
    taxa = 8
senão
    taxa = 10
fim se

se chuva = "Sim" então
    taxa = taxa + 2
fim se

escrever "Valor da entrega: R$ ", taxa

7. Código em Python

# Entrada de dados
distancia = float(input("Digite a distância em km: "))
chuva = input("Está chovendo? (Sim/Não): ").strip().lower()

# Definição da taxa base
if distancia <= 5:
    taxa = 5.0
elif distancia <= 10:
    taxa = 8.0
else:
    taxa = 10.0

# Acréscimo por chuva
if chuva == "sim":
    taxa += 2.0

# Saída
print(f"Valor da entrega: R$ {taxa:.2f}")

8. Benefícios da Solução

  • Automatiza o cálculo da taxa de entrega.
  • Reduz erros no atendimento.
  • Garante a aplicação correta das regras.
  • Facilita futuras alterações nos valores.
  • Torna o processo mais rápido e confiável.

Conclusão

Esse algoritmo calcula automaticamente o valor da entrega considerando a distância e as condições climáticas. Primeiro, determina a taxa base; depois, aplica um acréscimo em caso de chuva. Com isso, o sistema fornece ao cliente o valor final de forma rápida, precisa e padronizada.

1 resposta

Olá, Liliane. Como vai?

Excelente postagem! Você estruturou o desafio de forma impecável, passando por todas as etapas fundamentais do desenvolvimento de software: levantamento de requisitos (dados de entrada), definição de regras de negócio, lógica, algoritmos e a implementação final em Python.

A sua lógica de utilizar estruturas condicionais encadeadas (if, elif, else) para a distância e uma condicional simples posterior para o adicional de chuva é a abordagem mais eficiente, pois mantém o código limpo e evita repetições desnecessárias.

Para enriquecer o seu projeto e deixá-lo ainda mais próximo de um sistema real, gostaria de sugerir dois pontos de melhoria:

1. Tratamento de Erros de Entrada
Na programação, nem sempre o usuário digita exatamente o que esperamos. No seu código Python, você utilizou o .strip().lower(), o que é ótimo para tratar espaços e letras maiúsculas. No entanto, se o usuário digitar "s" ou "certeza" em vez de "sim", o acréscimo de chuva não será aplicado.

  • Dica: Você pode verificar apenas a primeira letra da resposta: if chuva.startswith('s'):.

2. Uso de Funções
Conforme seus projetos crescem, é uma boa prática encapsular a lógica em funções. Isso facilita testes e permite que outras partes do seu futuro aplicativo chamem esse cálculo sem precisar reescrever o código.

Veja como ficaria uma versão modularizada do seu código:

def calcular_taxa_entrega(distancia, esta_chovendo):
    # Definindo a taxa base
    if distancia <= 5:
        taxa = 5.0
    elif distancia <= 10:
        taxa = 8.0
    else:
        taxa = 10.0
    
    # Adicional de chuva
    if esta_chovendo:
        taxa += 2.0
        
    return taxa

# Exemplo de uso:
dist = float(input("Digite a distância em km: "))
chuva_input = input("Está chovendo? (Sim/Não): ").strip().lower().startswith('s')

valor_final = calcular_taxa_entrega(dist, chuva_input)
print(f"Valor da entrega: R$ {valor_final:.2f}")

Essa estrutura que você apresentou é a base do Pensamento Computacional. Ao dominar como transformar um problema do cotidiano em regras lógicas, você já percorreu metade do caminho para se tornar uma excelente programadora!

Espero que possa ter lhe ajudado!