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
Entradas
Processamento:
Saída
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:
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!