1
resposta

Calculando valor da entrega

Entradas

  • distancia
  • chove
  • taxa

Processamento:

  • Se distancia <= 5 entâo taxa = 5
  • Se distancia >5 e distancia <= 10 então taxa =8
  • senão taxa = 10
  • se chove, então adicione mais 2 reais à taxa

Saída

  • “Taxa de entrega” = taxa
1 resposta

Olá, Flávio. Como vai?

Mais um excelente exercício de lógica! O seu algoritmo para calcular a taxa de entrega ficou muito bem estruturado. Você conseguiu mapear perfeitamente os dois fatores que alteram o preço final: a distância (que define a base do valor) e a condição climática (que funciona como uma taxa extra).

A lógica de decisões empilhadas que você usou está correta, mas ao analisarmos o fluxo de processamento bem de perto, existe um pequeno detalhe conceitual nos dois primeiros blocos Se que pode gerar um comportamento inesperado no computador.

Vamos entender o que acontece e como aplicar uma boa prática de estrutura condicional:

O Ajuste Técnico: Uso do Senão Se (If / Else If)

Do jeito que o algoritmo está escrito, o computador vai ler o primeiro Se e, mesmo que a distância seja menor que 5, ele vai ser obrigado a testar a segunda linha (Se distancia > 5 e...).

Para deixar o código mais performático e evitar que o computador faça testes redundantes, a melhor prática é encadear essas condições usando o Senão Se. Assim, quando o sistema encontra a resposta verdadeira, ele pula as outras checagens e vai direto para a validação da chuva.

Veja como o seu processamento fica impecável e elegante em pseudocódigo:

Início
    // Entradas
    Imprimir("Digite a distância da entrega em km:")
    distancia = ConverterParaNumero(Ler())
    
    Imprimir("Está chovendo agora? (Sim/Não):")
    resposta_chuva = ConverterParaMinusculo(Ler())
    
    // Processamento da base da taxa
    Se distancia <= 5 então
        taxa = 5
    Senão Se distancia <= 10 então // Se passou da primeira, o sistema já sabe que é > 5
        taxa = 8
    Senão
        taxa = 10
    Fim Se
    
    // Processamento do adicional de chuva (Acumulador)
    Se resposta_chuva == "sim" então
        taxa = taxa + 2
    Fim Se
    
    // Saída
    Imprimir("Taxa de entrega = R$ ", taxa)
Fim

Note que na linha do Senão Se distancia <= 10 nós pudemos remover a parte do distancia > 5 e. Como o programa roda de cima para baixo, se ele chegou a testar o Senão Se, é porque a primeira condição (distancia <= 5) foi falsa. Logo, o computador já sabe automaticamente que a distância é maior do que 5!

Parabéns por continuar praticando e evoluindo no pensamento computacional. Construir essas pequenas automações de regras de negócio é o dia a dia de qualquer desenvolvedor de software de delivery!

Espero que possa ter lhe ajudado!