Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 20.03.2018
Сообщений: 42
1

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

22.05.2018, 09:56. Показов 4220. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дано множество A из N точек (N > 2, точки заданы своими координатами х, у). Найти наибольший периметр треугольника, вершины которого принадлежат различным точкам множества A, и сами эти точки (точки выводятся в том же порядке, в котором они перечислены при задании множества
A).
Как можно проще и короче, чтобы я смог объяснить. Заранее спсибо
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2018, 09:56
Ответы с готовыми решениями:

Найти наибольший периметр треугольника, вершины которого принадлежат различным точкам массива
Всем доброго времени суток! Уважаемые форумчане,помогите пожалуйста решить вот такую задачу: ...

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

Найти координаты 3й вершины по 2м точкам прямоугольного треугольника
Здравствуйте! В общем вроде много инфы но чето найденные примеры работают не всегда правильно. ...

Найти площадь и периметр треугольника, если точки принадлежат определённой области
Суть: На плоскости заданы: ограниченная линиями область R и точки A(x; y), B(x; y), C(x; y). Нужно...

2
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
22.05.2018, 10:03 2
Найти наибольший периметр треугольника
0
Объявлятель переменных
1220 / 406 / 320
Регистрация: 24.09.2011
Сообщений: 1,265
22.05.2018, 11:39 3
Лучший ответ Сообщение было отмечено stepanych_iz_84 как решение

Решение

Ну я же уже писал Вам решение месяц назад. Ниже то же, но с более подробными комментариями.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
#include <cmath>
 
// структура, описывающая точку
struct point {
    int x;
    int y;
};
 
// перегруженный оператор вывода точки
// если перегрузку не проходили, то говорите, что нашли в интернете
std::ostream& operator << (std::ostream &s, const point &p)
{
    s << '(' << p.x << "; " << p.y << ')';
    return s;
}
 
// функция печати массива точек
void print(point *p, int size) {
    for (int i = 0; i < size; i++) { // перебираем циклом массив точек
        std::cout << p[i] << ' ';    // выводим i-ю точку через пробел
    }
    std::cout << std::endl;          // выводим конец строки
}
 
// вычисление расстояния между двумя точками по теореме Пифагора
double length(const point &A, const point &B) {
    return hypot(A.x - B.x, A.y - B.y);
}
 
// вычисление периметра треугольника
double perimeter(const point &A, const point &B, const point &C) {
    return length(A, B) + length(B, C) + length(A, C);
}
 
int main()
{
    int n = 5;
    point a[n] = {{3,1},{2,2},{4,5},{2,0},{7,8}};
    print(a, n);
    double maxPerimeter = 0;  // максимальный периметр
    double tmpPerimeter = 0;  // текущий периметр, чтобы два раза функцию не дёргать
    int A, B, C;              // номера найденых точек
    
    // в цикле перебираем тройки точек с индексами i > j > k
    
    for (int i = 0; i < n-2; i++) {                       // 0 <= i < n-2
        for (int j = i + 1; j < n-1; j++) {               // 1 <= j < n-1
            for (int k = j + 1; k < n; k++) {             // 2 <= k < n
                tmpPerimeter = perimeter(a[i],a[j],a[k]); // вычисляем периметр
                if (tmpPerimeter > maxPerimeter) {        // если периметр больше максимального
                    maxPerimeter = tmpPerimeter;          // запоминаем текущий максимум
                    A = i;                                // |
                    B = j;                                // | <= запоминаем номера точек
                    C = k;                                // |
                }
            }
        }
    }
    
    // выводим номера точек
    std::cout << "Triangle with vertices at points " << A << ", " << B << " and " << C <<
                 " has the greatest perimeter.";    
}
0
22.05.2018, 11:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2018, 11:39
Помогаю со студенческими работами здесь

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

Найти наибольший периметр треугольника
1. Дано множество A из N точек. Найти наибольший периметр треугольника, вершины которого...

Найти наибольший периметр треугольника
Подскажите пожалуйста, мне нужно найти наибольший периметр треугольника и сами эти точки

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

Найти периметр четырехугольника, вершины которого имеют соответственно координаты (х1, у1), …, (х4, y4)
Даны действительные числа х1, у1, х2, у2, …,х4, у4. Найти периметр четырехугольника, вершины...

Найти периметр восьмиугольника, вершины которого имеют соответственно координаты (x1, y1), (x2, y2), …, (x8, y8)
Найти периметр восьмиугольника, вершины которого имеют соответственно координаты (x1, y1), (x2,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru