Народ подскажите решение. Есть пользователь который с консоли вводит числа эти числа переводятся в другую систему координат и их надо записать в массив.W-число , s-количество раз которое надо ввести число.По итогу мне нужен массив из тех чисел которые ввёл пользователь. А в моём методе мне вылетает ошибка
public void kor() {
Scanner scanner = new Scanner(System.in);
System.out.println("Введите количесвто точек");
s = scanner.nextInt();
for (int i = 0; i < s; i++) {
System.out.println("Введите широту ");
double dLon = scanner.nextDouble();
System.out.println("Введите долготу ");
double dLat = scanner.nextDouble();
int zone = (int) (dLon / 6.0 + 1);
double a = 6378245.0;
double b = 6356863.019;
double e2 = (Math.pow(a, 2) - Math.pow(b, 2)) / Math.pow(a, 2); // Эксцентриситет
double n = (a - b) / (a + b); // Приплюснутость
double F = 1.0; // Масштабный коэффициент
double Lat0 = 0.0; // Начальная параллель (в радианах)
double Lon0 = (zone * 6 - 3) * Math.PI / 180; // Центральный меридиан (в радианах)
double N0 = 0.0; // Условное северное смещение для начальной параллели
double E0 = zone * 1e6 + 500000.0; // Условное восточное смещение для центрального меридиана
double Lat = dLat * Math.PI / 180.0;
double Lon = dLon * Math.PI / 180.0;
double sinLat = Math.sin(Lat);
double cosLat = Math.cos(Lat);
double tanLat = Math.tan(Lat);
double v = a * F * Math.pow(1 - e2 * Math.pow(sinLat, 2), -0.5);
double p = a * F * (1 - e2) * Math.pow(1 - e2 * Math.pow(sinLat, 2), -1.5);
double n2 = v / p - 1;
double M1 = (1 + n + 5.0 / 4.0 * Math.pow(n, 2) + 5.0 / 4.0 * Math.pow(n, 3)) * (Lat - Lat0);
double M2 = (3 * n + 3 * Math.pow(n, 2) + 21.0 / 8.0 * Math.pow(n, 3)) * Math.sin(Lat - Lat0) * Math.cos(Lat + Lat0);
double M3 = (15.0 / 8.0 * Math.pow(n, 2) + 15.0 / 8.0 * Math.pow(n, 3)) * Math.sin(2 * (Lat - Lat0)) * Math.cos(2 * (Lat + Lat0));
double M4 = 35.0 / 24.0 * Math.pow(n, 3) * Math.sin(3 * (Lat - Lat0)) * Math.cos(3 * (Lat + Lat0));
double M = b * F * (M1 - M2 + M3 - M4);
double I = M + N0;
double II = v / 2 * sinLat * cosLat;
double III = v / 24 * sinLat * Math.pow(cosLat, 3) * (5 - Math.pow(tanLat, 2) + 9 * n2);
double IIIA = v / 720 * sinLat * Math.pow(cosLat, 5) * (61 - 58 * Math.pow(tanLat, 2) + Math.pow(tanLat, 4));
double IV = v * cosLat;
double V = v / 6 * Math.pow(cosLat, 3) * (v / p - Math.pow(tanLat, 2));
double VI = v / 120 * Math.pow(cosLat, 5) * (5 - 18 * Math.pow(tanLat, 2) + Math.pow(tanLat, 4) + 14 * n2 - 58 * Math.pow(tanLat, 2) * n2);
double N = (E0 + IV * (Lon - Lon0) + V * Math.pow(Lon - Lon0, 3) + VI * Math.pow(Lon - Lon0, 5)) * 0.00001;
double E = ((E0 + IV * (Lon - Lon0) + V * Math.pow(Lon - Lon0, 3) + VI * Math.pow(Lon - Lon0, 5)) + 2) * 0.00001;
System.out.println(W);
W = (int) N;
C = (int) E;
System.out.println("Широта: " + dLat); //Широта: 55.752
System.out.println("Долгота: " + dLon); //Долгота: 37.618
System.out.println("Северное смещение: " + N + " В метрах"); //В метрах
System.out.println("Восточное смещение:" + E + " В метрах"); //В метра
}
System.out.println(Arrays.asList(zapis(W)));
}
public int[] zapis(int W) {
int[] a = new int[s];//массив для x
for (int i = 0; i < a.length; i++) {
a[i] = W;
}
return a;
}
}
В первую очередь вам нужно всю эту вашу "математику" вынести в отдельный класс/ метод.
Пишу на псевдокоде:
public SuperCoords convert(double long, lat) {
// реализация
return new SuperCoords(N, E);
}
Дальше уже можно работать с вводом:
public void kor() {
Scanner scanner = new Scanner(System.in);
System.out.println("Введите количество точек");
s = scanner.nextInt();
SuperCoords[] results = new SuperCoords[s];
for (int i = 0; i < s; i++) {
System.out.println("Введите широту ");
double dLon = scanner.nextDouble();
System.out.println("Введите долготу ");
double dLat = scanner.nextDouble();
results[i] = convert(dLon, dLat);
}
for (int i = 0; i < s; i++) {
System.out.println(results[i].N + " " + results[i].E);
}
}
Чтобы заполнить массив одинаковыми элементами можно использовать функцию fill класса Arrays:
public void zapis(int W){
int[] a = new int[s];
Arrays.fill(a, W);
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Здравствуйте, что-то совсем запутался с fxmlУ меня есть два Java-класса
У меня при подгрузке данных с rss во время ожидания выводится текст который прописан в stringsМожно ли составить список фраз которые будут выводится...