Программа Java не выводит правильное значение уравнения - PullRequest
0 голосов
/ 19 сентября 2019

Мой код должен принимать введенные данные о точке росы и температуре, чтобы получить относительную влажность.Например, точка росы 46 и температура 100 градусов по Фаренгейту даст относительную влажность около 16. К сожалению, независимо от того, что вы вводите для этих значений, ответ всегда будет равен 100.

Здесьмой код (не закончен):

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    // Input the dew point and temperature to get the relative humidity

    System.out.print("Enter dewpoint: ") ;
    // change dewpoint into celcius
    double Td = input.nextDouble() ;
    Td = (5.0 / 9.0) * (Td - 32) ;
    System.out.print("Enter temperature: ") ;
    // change temperature to celcius
    double T = input.nextDouble() ;
    T = (5.0 / 9.0) * (T - 32) ;
    double Rh = 100*(Math.exp((17.625 * Td) / (243.04 + Td)) / Math.exp ((17.625 * T) / (243.04 + T))) ;

    System.out.print("The % Relative Humidity = " +  Rh) ;
}

Пожалуйста, помогите, если можете

1 Ответ

0 голосов
/ 19 сентября 2019

Нет ничего плохого в том, как вы рассчитали влажность.Но с Java 8 вы можете использовать лямбда-выражения.Их можно использовать для упрощения выражений, не прибегая к полноценным методам.Это также помогает уменьшить количество ошибок.Вот пример использования вашего кода.


      UnaryOperator<Double> toC = f -> 5 / 9. * (f - 32);
      UnaryOperator<Double> fnc = t -> Math.exp((17.625 * t) / (243.04 + t));
      BinaryOperator<Double> humidity =
            (t, td) -> 100 * fnc.apply(td) / fnc.apply(t);

      Scanner input = new Scanner(System.in);

      // Input the dew point and temperature to get the relative humidity

      System.out.print("Enter dewpoint: ");
      // change dewpoint into celcius
      double Td = input.nextDouble();
      Td = toC.apply(Td);
      System.out.print("Enter temperature: ");
      // change temperature to celcius
      double T = input.nextDouble();
      T = toC.apply(T);
      double Rh = humidity.apply(T, Td);

      System.out.print("The % Relative Humidity = " + Rh);

Их можно комбинировать различными способами.Они также могут быть переданы в методы, так что вы передаете функцию.Я бы порекомендовал вам изучать их так же, как вы продолжаете изучать Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...