Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Desafio: Calculando valor da entrega

Olá, boa noite!

Proposta de solução, mas sempre disponível para outras abordagens.

Código gerado no DEV-C++

#include<stdio.h>
#include<stdlib.h>
#include <stdbool.h>

int main()
{
    float taxa1 = 5.00;
    float taxa2 = 8.00;
    float taxa3 = 10.00;
    int taxaExtra = 2.00;
    float faixa;
    char texto = 'S';
    
    printf("\n Chove no momento? [S/N]");
    scanf(" %c", &texto); 
        
    printf("Informe a distancia:\n");
    scanf("%f", &faixa);
        
    if (texto == 'S' && faixa <= 5) {
        printf("\n O valor a pagar com adicional eh R$ %.2f\n\n:", taxa1 + taxaExtra);
    } else if (faixa <= 5) {
        printf("\n O valor a pagar eh  R$ %.2f\n\n:", taxa1);
    }
    if (faixa >5 && faixa <=10 && texto == 'S') {
        printf("\n O valor a pagar eh  R$ %.2f\n\n:", taxa2 + taxaExtra);
    }
    else if (faixa >5 && faixa <=10) {
        printf("\n O valor a pagar eh  R$ %.2f\n\n:", taxa2);
    }
     if (texto == 'S' && faixa >10) {
        printf("\n O valor a pagar com adicional eh  R$ %.2f\n\n:", taxa3 + taxaExtra);
    } else if (faixa >10) {
        printf("\n O valor a pagar eh  R$ %.2f\n\n:", taxa3);
    }
    system("pause");
    return 0;
}

Grato,
Gil

1 resposta

Oi, estudante. Tudo bem com você?

Obrigado por compartilhar sua solução para o desafio de calcular o valor da entrega. O código atende às regras propostas, considerando corretamente as faixas de distância e o acréscimo na taxa quando está chovendo. Além disso, a utilização de estruturas condicionais permite que cada cenário seja tratado de forma clara, facilitando a leitura da lógica implementada.

Há apenas uma observação que pode contribuir para deixar o código mais organizado. Em vez de utilizar três blocos independentes de if, seria possível definir primeiro a taxa base de acordo com a distância e, em seguida, verificar apenas uma vez se está chovendo para acrescentar o valor adicional. Por exemplo, após determinar que uma entrega de 7 km possui taxa de R$ 8,00, bastaria adicionar R$ 2,00 caso a resposta fosse 'S'. Essa abordagem reduz a repetição de condições e facilita futuras alterações nas regras de negócio.

Outro detalhe é que a variável taxaExtra poderia ser declarada como float, mantendo o mesmo tipo das demais variáveis relacionadas aos valores monetários, o que deixa o código mais consistente.

Como você adaptaria essa solução caso fosse necessário aplicar um desconto para clientes cadastrados, além da taxa calculada?

Parabéns por compartilhar sua implementação e continuar praticando os conceitos de lógica de programação. O fórum permanece à disposição para acompanhar sua evolução e esclarecer novas dúvidas.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!