Я работаю над заданием для расчета траектории на основе скорости и углов, и я получаю пару ошибок в своих расчетах, которые я не понимаю, как исправить.Программа работает следующим образом: считывает значения из текстового файла в 2 массива int с помощью метода nextInt ().Эти массивы передаются в класс, где используется методcellTrajectory, и объединяются в двумерный массив.Это все массивы int.В CalculateTrajectory, после объединения в 2D-массив, я затем вычисляю траекторию, но получаю ошибки в моем вычислении.
Описание ошибок, которые я получаю:
Когда я перебираю 2D-массив, чтобы выполнить мои вычисления, я получаю одну ошибку при использовании метода Math.pow на моемзначение скорости.Эта ошибка говорит о том, что «метод pow (double, double) в типе Math не применим для аргументов (int [], int)».Совет состоит в том, чтобы изменить тип скорости в два раза.Нужно ли приводить значения к двойным значениям?
Вторая ошибка в вычислениях возникает, когда я пытаюсь умножить углы на 2 внутри toRadians.Я получаю здесь ошибку «Оператор * не определен для типа (ов) аргументов int, int []».Здесь нет быстрых советов.Я искал эту ошибку, и любые ответы, которые я видел, действительно сбивают с толку.
Я пытался сделать мои массивы двойными, но безрезультатно.Мне интересно, смогу ли я преобразовать значения массивов int в double при заполнении 2D-массива, если это решит проблему.
public void calculateTrajectory(int[][] speed, int[][] angles)
{
//convert speed and angles arrays into one 2D array
for(int row = 0; row < speed.length; row++)
{
for(int col = 0; col < angles.length; col++)
{
combined[row] = speed[row];
combined[col] = angles[col];
}
}
//calculate the trajectory from 2D array
for(int r = 0; r < speed.length; r++)
{
for(int c = 0; c < angles.length; c++)
{
trajectory = (Math.pow(speed[r], 2)) *
Math.sin(Math.toRadians(2 * angles[c])) / 32.1713;
trajectoryArray[r] = trajectory;
}
}
}
Я знаю, исходя из уравнения, что в результате вычисления получу удвоение.Переменная, которую я установил для получения результата вычисления, является двойной.Я хочу, чтобы можно было выполнять вычисления без ошибок, одновременно просматривая и заполняя мой массив trajectoryArray результатами.