Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*поиск ближайшей точки*/
- #include <iostream>
- #include <math.h>
- #include <locale.h>
- using namespace std;
- int main()
- {
- setlocale(LC_ALL, "Russian");
- int k, n, m;
- float r, p;
- //используется двумерный массив
- cout << "задайте количество сравниваемых точек (вместе с А): ";
- cin >> k;
- float **B;
- B = new float *[k];
- for (int i = 0; i < k; i++)
- B[i] = new float[2];
- B[0][0] = 8, B[0][1] = 6; //СЮДА ПИСАТЬ СВОЮ НАЧАЛЬНЫЕ КООРДИНАТЫ(В ТВОЁМ СЛУЧАЕ ПАССАЖИРОВ)
- //задаем точки через цикл(В ТВОЁМ СЛУЧАЕ ЭТО ТОЧКИ ТАКСИ КОТОРЫЕ ЗАДАЮТСЯ ПО ССЫЛКЕ)
- for (n = 1; n<k; n++)
- {
- cout << "введите координаты точки № " << n << endl;
- cout << "x" << n << "= ";
- cin >> B[n][0];
- cout << "y" << n << "= ";
- cin >> B[n][1];
- }
- //вычисляем расстояние до 1 точки и говорим что оно минимально
- m = 1;
- r = sqrt((B[0][0] - B[1][0])*(B[0][0] - B[1][0]) + (B[0][1] - B[1][1])*(B[0][1] - B[1][1]));
- //вычисляем расстояния до остальных точек и сравниваем с минимальным
- for (n = 2; n<k; n++)
- {
- p = sqrt((B[0][0] - B[n][0])*(B[0][0] - B[n][0]) + (B[0][1] - B[n][1])*(B[0][1] - B[n][1]));
- if (p<r)
- {
- m = n, r = p;
- }
- }
- cout << "точка № " << m << " расположена на минимальном расстоянии от заданной точки R = " << r << "\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement