profile
Размещено 2 года назад по предмету Информатика от mrvana102

Дано множество A из N точек (N > 2), точки заданы своими координатами x, y). Найти наибольший периметр треугольника, вершины которого принадлежат различным точкам множества A, и сами эти точки (точки выводятся в том же порядке, в котором они перечислены при задании множества A).
на с++

  1. Ответ на вопрос
    Ответ на вопрос дан leprekon882

    #include <iostream>

    #include <cmath>

    #include <vector>

    struct Point

    {

    double x, y;

    };

    double distance(Point p1, Point p2)

    {

    return sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));

    }

    int main()

    {

    // Читаем количество точек

    int n;

    std::cin >> n;

    // Читаем точки

    std::vector<Point> points;

    for (int i = 0; i < n; i++)

    {

       double x, y;

       std::cin >> x >> y;

       points.push_back({x, y});

    }

    // Находим треугольник с наибольшим периметром

    Point p1, p2, p3;

    double maxPerimeter = 0;

    for (int i = 0; i < n; i++)

    {

       for (int j = i + 1; j < n; j++)

       {

           for (int k = j + 1; k < n; k++)

           {

               double perimeter = distance(points[i], points[j]) + distance(points[j], points[k]) + distance(points[k], points[i]);

               if (perimeter > maxPerimeter)

               {

                   maxPerimeter = perimeter;

                   p1 = points[i];

                   p2 = points[j];

                   p3 = points[k];

               }

           }

       }

    }

    // Выводим результат

    std::cout << "Point 1: (" << p1.x << ", " << p1.y << ")" << std::endl;

    std::cout << "Point 2: (" << p2.x << ", " << p2.y << ")" << std::endl;

    std::cout << "Point 3: (" << p3.x << ", " << p3.y << ")" << std::endl;

    std::cout << "Perimeter: " << maxPerimeter << std::endl;

    return 0;

    }

    При запуске кода вам нужно ввести сначала количество точек, затем координаты этих точек, по одной на строку.

    1. Ответ на вопрос
      Ответ на вопрос дан mrvana102
      а можете сделать это в виде функции с указателями итд (если не сложно)
    2. Ответ на вопрос
      Ответ на вопрос дан leprekon882
      Добавил .cpp ФАЙЛ
    3. Ответ на вопрос
      Ответ на вопрос дан leprekon882
      Посмотрите
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.