Как изменить метод для работы с моим 2-D массивом в Java - PullRequest
0 голосов
/ 26 марта 2019

Я написал программу, использующую 2 отдельных массива, но хочу объединить массивы (скорость и градусы) в один многомерный массив, называемый расстоянием. Я никогда раньше не использовал двумерные массивы, и я уверен, что мой код может быть трудным для понимания.

Я переписал большую часть программы, но меня задерживает метод «calcDistance». Я пытался переписать метод, но он просто превратился в большой беспорядок.

double [][] distance;

Catapult(double[][] d){
   distance = d;
}

public double [][] calcDistance(){

    double [][] total = {{0,0,0,0,0,0,0} , {0,0,0,0,0,0,0}};

    for (int row = 0; row < distance.length; row++){

        for (int column = 0; column < distance.length; column++){

        total[row][column] = (Math.pow(distance[column]/2.237, 2) * Math.sin(2 * Math.toRadians(distance[column]))/9.8);

       }
    }

    return total;
}

Я получаю ошибку неверного операнда при делении на 2.237 и ошибку несовместимых типов при использовании расстояния [колонка]. Теперь мои две проблемы

1) Как я могу исправить этот метод и что я изначально сделал неправильно, чтобы вызвать ошибку

2) Как я могу реализовать обе части расстояния моего массива multi-d в методе, потому что на данный момент он проходит только через столбцы одной строки в "distance"

1 Ответ

0 голосов
/ 26 марта 2019

Я действительно рекомендую вам использовать итератор, поскольку он упрощает все:

public class Catapult {
    double [][] distance;

    Catapult(double[][] d){
       distance = d;
    }

    public double [][] calcDistance(){

        double [][] total = new double[2][7];

        int i=0;

        for (double[] row : distance) {

            int j=0;

            for (double value : row) {

                total[i][j] = (Math.pow(value/2.237, 2) * Math.sin(2 * Math.toRadians(value))/9.8);

                ++j;

            }

            ++i;

        }


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