Интерполировать в таблицу - PullRequest
0 голосов
/ 09 июля 2019

Ниже приведена таблица, из которой я хочу интерполировать значения

.
+---+----+----+----+----+ . . . .
|   | 20 | 30 | 40 | 50 | . . . .
+---+----+----+----+----+ . . . .
|100| 78 | 89 | 92 | 95 | . . . .
+---+----+----+----+----+ . . . .
|200| 62 | 76 | 88 | 91 | . . . .
+---+----+----+----+----+ . . . .
|300| 59 | 68 | 74 | 83 | . . . .
+---+----+----+----+----+ . . . .
|400| 48 | 50 | 65 | 72 | . . . .
+---+----+----+----+----+ . . . .

Пользователь вводит значение скорости и температуры.

Я знаю, как сделать это математически, но перевод его на Java только что поставил меня в тупик.

Таким образом, если пользователь вводит скорость 200 (нет 250, 200 или 300) и температуру 34 (вводится только целое число) Математически я бы сделал;

+---+----+----+----+----+ . . . .
|   |    | 30 | 34  | 40 | . . . . 
+---+----+----+----+----+ . . . .
|200|    | 76 |  x  | 88 | . . . . 
+---+----+----+----+----+ . . . .


(76 - 88) /10 = 1.2
1.2 * (34-30) = 4.8
4.8 + 76 = 80.8 = x

мы должны получить ответ 80,8

РЕДАКТИРОВАТЬ Я не ленивая задница, которая ожидает, что вы, ребята, сделаете всю работу за меня, например, как думают НЕКОТОРЫЕ люди. Я не просто публикую свою проблему здесь и ожидаю полностью работающий код! ЛЮБЫЕ ИДЕИ о том, как решить эту проблему, это все, что я спрашиваю, так же, как я упоминал выше. Thankyou!

1 Ответ

1 голос
/ 09 июля 2019

Используйте 2D-массив для хранения таблицы.Используйте Scanner для чтения ввода пользователя.Вычислить индекс строки и столбца из входных данных.Получите соответствующие числа из 2D-массива, затем сделайте расчет.

    int[][] table = {
        {78,89,92,95},
        {62,76,88,91},
        {59,68,74,83},
        {48,50,65,72}
    };

    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter speed:");
    int speed = scanner.nextInt();
    System.out.println("Enter temperature:");
    int temp = scanner.nextInt();
    int row = (speed / 100) - 1;
    int col = (temp / 10)  - 2;
    float a = table[row][col];
    float b = table[row][col + 1];
    float result = a + (temp % 10) * (b - a) / 10;
    System.out.println(result);
...