awsmpshk

Номер 2 со второго скрина

May 7th, 2020
118
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. struct Point {
  7.   double x, y; // коор-ты точки
  8.   void show() // функция вывода на экран координат точки
  9.   {
  10.     cout << x << " " << y << endl;
  11.   }
  12.   double distance() // подсчет расстояния от начала координат до текущей точки
  13.   {
  14.     return sqrt(x * x + y * y);
  15.   }
  16. };
  17.  
  18. Point searchFurtherOne(Point* base, int n) // поиск наиболее удаленной точки
  19. {
  20.   Point furOne = base[0]; // инициализируем переменную под наиболее удаленную точку
  21.   double dist, max_dist = base[0].distance(); // задаём текущее расстояние и максимальное
  22.   for (int i = 1; i < n; ++i) // поиск максимального расстояния, переприсваивая значение объекту furOne
  23.   {
  24.     dist = base[i].distance(); // подчет текущего расстояния
  25.     if (dist > max_dist) // сравнение с максимальным
  26.     {
  27.       max_dist = dist; // переприсваеваем расстояние на максимальное
  28.       furOne = base[i]; // переприсваеваем точку наиболее удаленной точке
  29.     }
  30.   }
  31.   return furOne; // возвращаем объект с координатами наиболее удаленной точки
  32. }
  33.  
  34. int main()
  35. {
  36.   int n;
  37.   cin >> n; // вводим количество точек
  38.   Point* base = new Point[n]; // объявляем массив точек размером n
  39.   for (int i = 0; i < n; ++i) // ввод координат каждой точки
  40.   {
  41.     cin >> base[i].x >> base[i].y;
  42.   }
  43.   Point furOne = searchFurtherOne(base, n); // вызываем функцию для поиска наиболее удаленной точки от (0, 0)
  44.   furOne.show(); // выводим информацию об этой точке
  45.  
  46.   delete[] base; // освобождаем память от всех точек, потому что они больше не нужны
  47.   return 0;
  48. }
RAW Paste Data Copied