1
resposta

Faz sentido

Eu fiz essa lógica aqui que acredito que diferenciou um pouco do que foi pedido, mas eu tive dúvida se faz sentido o que eu pensei. Segue o código.

/**
 * Você está planejando uma viagem de carro e deseja calcular quantos quilômetros poderá percorrer com o combustível
 * disponível no tanque. Para isso, você precisa considerar:
 *
 * O consumo médio do veículo (km/l)
 * A capacidade total do tanque de combustível (litros)
 * A quantidade de combustível disponível no momento (litros)
 * A distância da viagem planejada (km)
 * Com essas informações, o programa deverá calcular:
 *
 * A autonomia máxima do carro (quantos quilômetros pode percorrer com um tanque cheio).
 * A autonomia atual, baseada na quantidade de combustível disponível.
 * Se a quantidade de combustível atual será suficiente para percorrer um determinado trajeto informado pelo usuário.
 * Fórmulas de apoio:
 *
 * autonomia maxima=consumo medio×capacidade do tanque
 * autonomia atual=consumo medio×combustıvel disponivel
 */

package com.github.lucasdevrj.principal;

import java.util.Scanner;

public class PlanejandoUmaViagemConsumoEAutonomia {
    public static void main(String[] args) {
        double consumoMedioDoVeiculo, capacidadeTotalDoTanqueDeCombutivel, quantidadeDeCombustivelDisponivelNoMomento,
                distanciaDaViagemPlanejada, autonomiaMaxima, autonomiaAtual;
        String resposta;
        int quantidadeMinimaParaAbastecer;

        Scanner entrada = new Scanner(System.in);

        System.out.print("Digite o consumo médio do veículo (km/litros): ");
        consumoMedioDoVeiculo = entrada.nextDouble();

        System.out.print("Digite a capacidade total do tanque de combustível (litros): ");
        capacidadeTotalDoTanqueDeCombutivel = entrada.nextDouble();

        System.out.print("Digite a quantidade de combustível disponível (litros): ");
        quantidadeDeCombustivelDisponivelNoMomento = entrada.nextDouble();

        System.out.print("Digite a distância da viagem planejada (km): ");
        distanciaDaViagemPlanejada = entrada.nextDouble();

        autonomiaMaxima = consumoMedioDoVeiculo * capacidadeTotalDoTanqueDeCombutivel;
        autonomiaAtual = consumoMedioDoVeiculo * quantidadeDeCombustivelDisponivelNoMomento;

        if (autonomiaMaxima >= distanciaDaViagemPlanejada && autonomiaAtual >= distanciaDaViagemPlanejada) {
            resposta = "Você conseguirá completar a viagem sem precisar abastecer.";
        } else {
            quantidadeMinimaParaAbastecer = (int) (distanciaDaViagemPlanejada / autonomiaAtual);
            resposta = "Você terá que abastecer pelo menos " + quantidadeMinimaParaAbastecer + " vezes.";
        }

        String resultado = """
                Autonomia máxima do veículo: %.1f km
                Autonomia atual: %.1f km
                %s
                """.formatted(autonomiaMaxima, autonomiaAtual, resposta);

        System.out.println();
        System.out.println(resultado);
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Essa lógica minha faz sentido?

1 resposta

Olá, Lucas! Como vai?

O seu código está bem estruturado e faz sentido para o que você deseja calcular. No entanto, há um pequeno ajuste que pode ser feito na lógica de cálculo de quantas vezes será necessário abastecer. Atualmente, o cálculo de quantidadeMinimaParaAbastecer está sendo feito dividindo a distância da viagem pela autonomia atual, o que não reflete exatamente o número de vezes que você precisará abastecer.

Aqui está uma sugestão de como ajustar esse cálculo:

  1. Calcule a diferença entre a distância da viagem e a autonomia atual.
  2. Divida essa diferença pela autonomia máxima para saber quantos tanques completos seriam necessários.
  3. Arredonde para cima, já que você não pode abastecer uma fração de vez.

Veja como poderia ficar:

if (autonomiaAtual >= distanciaDaViagemPlanejada) {
    resposta = "Você conseguirá completar a viagem sem precisar abastecer.";
} else {
    double distanciaFaltante = distanciaDaViagemPlanejada - autonomiaAtual;
    quantidadeMinimaParaAbastecer = (int) Math.ceil(distanciaFaltante / autonomiaMaxima);
    resposta = "Você terá que abastecer pelo menos " + quantidadeMinimaParaAbastecer + " vezes.";
}

Com essa lógica, você garante que está calculando corretamente o número de abastecimentos necessários para completar a viagem.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.