Advertisement
Guest User

The nearest pointer

a guest
Feb 28th, 2020
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. /*поиск ближайшей точки*/
  2. #include <iostream>
  3. #include <math.h>
  4. #include <locale.h>
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10. setlocale(LC_ALL, "Russian");
  11. int k, n, m;
  12. float r, p;
  13.  
  14. //используется двумерный массив
  15. cout << "задайте количество сравниваемых точек (вместе с А): ";
  16. cin >> k;
  17.  
  18. float **B;
  19. B = new float *[k];
  20. for (int i = 0; i < k; i++)
  21. B[i] = new float[2];
  22. B[0][0] = 8, B[0][1] = 6; //СЮДА ПИСАТЬ СВОЮ НАЧАЛЬНЫЕ КООРДИНАТЫ(В ТВОЁМ СЛУЧАЕ ПАССАЖИРОВ)
  23.  
  24. //задаем точки через цикл(В ТВОЁМ СЛУЧАЕ ЭТО ТОЧКИ ТАКСИ КОТОРЫЕ ЗАДАЮТСЯ ПО ССЫЛКЕ)
  25. for (n = 1; n<k; n++)
  26. {
  27. cout << "введите координаты точки № " << n << endl;
  28. cout << "x" << n << "= ";
  29. cin >> B[n][0];
  30. cout << "y" << n << "= ";
  31. cin >> B[n][1];
  32. }
  33. //вычисляем расстояние до 1 точки и говорим что оно минимально
  34. m = 1;
  35. 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]));
  36. //вычисляем расстояния до остальных точек и сравниваем с минимальным
  37. for (n = 2; n<k; n++)
  38. {
  39. 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]));
  40. if (p<r)
  41. {
  42. m = n, r = p;
  43. }
  44. }
  45. cout << "точка № " << m << " расположена на минимальном расстоянии от заданной точки R = " << r << "\n";
  46.  
  47. return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement