1
resposta

[Dúvida] correção

CALCULANDO VALOR DA ENTREGA

ENTRADA

distancia = (perguntar distancia em km)
chuva = (true ou false)

PROCESSAMENTO
//valor pela distancia//

se distancia <= 5KM 
        valor_distancia = R$5,00
senão
    distancia <= 10km
        valor_distancia = R$8,00
senão 
    acima de 10km = R$10,00
    
    //taxa da chuva//

se chuva = true  
    taxa_da_chuva = R$2,00
senão
    taxa_da_chuva = R$0,00

valor_da_entrega = (valor_diatancia + taxa_da_chuva)

SAIDA
exibir "taxa de entrega: R$X,00", valor_da_entrega

1 resposta

Oi tudo bem...
O seu codigo pensando na logica do negocio esta correto.
Mas sempre temos espaço para melhorias.
Segue ai:
Os nomes atuais funcionam, mas podem ficar mais claros, padronizados e sem ambiguidade.
Não tenha medo de dar nomes grandes as variaveis e funçoes...

AtualSugestãoMotivo
distanciadistanciaKmDeixa explícita a unidade
chuvaestaChovendoVariável booleana deve parecer uma pergunta
valor_distanciavalorPorDistanciaIndica a regra aplicada
taxa_da_chuvataxaClima ou taxaChuvaNome mais direto
valor_da_entregavalorTotalEntregaIndica que é o valor final

Problemas atuais na lógica:

  • A estrutura dos senão está confusa
    • Falta deixar claro quando uma condição termina e outra começa
  • As faixas de distância não estão totalmente explícitas
  • Não existe validação de entrada (ex: distância negativa)

Sugestão
ENTRADA distanciaKm = perguntar a distância em quilômetros estaChovendo = perguntar se está chovendo (true / false)

PROCESSAMENTO

// validação básica
se distanciaKm <= 0
    exibir "Distância inválida"
    encerrar processamento

// cálculo do valor por distância
se distanciaKm <= 5
    valorPorDistancia = 5.00
senão se distanciaKm <= 10
    valorPorDistancia = 8.00
senão
    valorPorDistancia = 10.00

// cálculo da taxa de clima
se estaChovendo == true
    taxaChuva = 2.00
senão
    taxaChuva = 0.00

// cálculo do valor final
valorTotalEntrega = valorPorDistancia + taxaChuva

O que mudou?

  • Cada regra tem uma única responsabilidade
  • As faixas de distância são claras e mutuamente exclusivas
  • Fica fácil mudar valores depois
  • O código “se lê como uma conversa”

A saída atual mostra apenas o valor final.
Você pode melhorar a experiência exibindo o detalhamento do cálculo:

SAÍDA
    exibir "Valor total da entrega: R$ ", valorTotalEntrega

ou

SAÍDA
    exibir "Distância: ", distanciaKm, " km"
    exibir "Valor por distância: R$ ", valorPorDistancia
    exibir "Taxa de chuva: R$ ", taxaChuva
    exibir "Valor total da entrega: R$ ", valorTotalEntrega

Se esse sistema crescer no futuro, você já pode pensar assim:

  • Regras de preço separadas do cálculo final
  • Tabela de preços por faixa de distância
  • Taxas adicionais (horário noturno, feriado, etc.)

Continue explorando ao maximo as inumeras possibilidades no código...
Comente ai qualquer duvida.
Bons estudos.