кодесурса

Упражнения на Java: вычисление расстояния между двумя точками на поверхности земли

script1adsense2code
script1adsense3code

Java Basic: упражнение 36 с решением

Напишите программу на Java, чтобы вычислить расстояние между двумя точками на поверхности земли.

Расстояние между двумя точками [(x1, y1) & (x2, y2)]
d = радиус * arccos (sin (x1) * sin (x2) + cos (x1) * cos (x2) * cos (y1 - y2))
Радиус земли r = 6371.01 Километров

Тестовые данные:
Введите широту координаты 1: 25
Введите долготу координаты 1: 35
Введите широту координаты 2: 52,5
Введите долготу координаты 2: 35,5

Иллюстрированная презентация:


Пример решения:

Java-код:

import java.util.Scanner;
public class Exercise36 {
    
   public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Input the latitude of coordinate 1: ");
        double lat1 = input.nextDouble();
        System.out.print("Input the longitude of coordinate 1: ");
        double lon1 = input.nextDouble();
        System.out.print("Input the latitude of coordinate 2: ");
        double lat2 = input.nextDouble();
        System.out.print("Input the longitude of coordinate 2: ");
        double lon2 = input.nextDouble();
        System.out.print("The distance between those points is: " + distance_Between_LatLong(lat1, lon1, lat2, lon2) + " km\n");
    }
    // Points will be converted to radians before calculation
    public static double distance_Between_LatLong(double lat1, double lon1, double lat2, double lon2) {
        lat1 = Math.toRadians(lat1);
        lon1 = Math.toRadians(lon1);
        lat2 = Math.toRadians(lat2);
        lon2 = Math.toRadians(lon2);
        double earthRadius = 6371.01; //Kilometers
        return earthRadius * Math.acos(Math.sin(lat1)*Math.sin(lat2) + Math.cos(lat1)*Math.cos(lat2)*Math.cos(lon1 - lon2));
    }
}

Пример вывода:

 Введите широту координаты 1: 25                                                                        
Введите долготу координаты 1: 35                                                                       
Введите широту координаты 2: 52,5                                                                      
Введите долготу координаты 2: 35,5                                                                     
Расстояние между этими точками составляет: 3058.15512920181 км. 

Блок - схема:

«Блок-схема:

Редактор кода Java:

Внесите свой код и комментарии через Disqus.

Предыдущий: Напишите Java-программу для вычисления площади многоугольника.
Далее: напишите программу на Java, чтобы перевернуть строку

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code