Здравствуйте, гость ( Вход | Регистрация )
| MonaMi |
3.12.2012, 18:35
Сообщение
#1
|
|
Новичок ![]() Группа: Продвинутые Сообщений: 5 Регистрация: 3.12.2012 Город: Ростов-на-Дону Учебное заведение: ЮФУ |
Нужно написать программу на С++
Задание звучит так: Даны натуральное число n и два вещественных массива из n элементов каждый. Массивы содержат значения координат точек на плоскости. Из заданного множества точек на плоскости выбрать такие три точки, которые составляют треугольник наибольшего периметра (использовать функцию). Для решения этой задачи я решила использовать следующий алгоритм: 1. Просматриваем два массива со значениями координат. 2. Находим длину одной стороны, потом второй и третьей. 3. Значения нашедших сторон складываем и получаем периметр. Вот теперь вопрос: как сделать так, чтобы находя периметр определить, что он максимально возможный при данных точках? |
![]() ![]() |
| MonaMi |
4.12.2012, 13:52
Сообщение
#2
|
|
Новичок ![]() Группа: Продвинутые Сообщений: 5 Регистрация: 3.12.2012 Город: Ростов-на-Дону Учебное заведение: ЮФУ |
Ограничений по времени нет. проверять на расположение точек на одной прямой,предполагаю тоже не надо.
Спасибо за подсказку. Единственная проблема возникает-как записать полученние длины сторон в двумерный массив? Я двумерные массивы плохо знаю. Семантически как это будет? массив размера n/3 на 3 и в каждом столбце записаны три длины сторон треугольника? Как я поняла, мне достаточно будет проверять,что точки не одинаковые и читая значения длин из массива считать периметры,а потом искать максимальным? По логике, максимальный периметр получится при наибольших сторонах. |
| Sergio Ramos |
4.12.2012, 16:00
Сообщение
#3
|
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 86 Регистрация: 16.11.2010 Город: Saratov |
Ограничений по времени нет. проверять на расположение точек на одной прямой,предполагаю тоже не надо. Спасибо за подсказку. Единственная проблема возникает-как записать полученние длины сторон в двумерный массив? Я двумерные массивы плохо знаю. Семантически как это будет? массив размера n/3 на 3 и в каждом столбце записаны три длины сторон треугольника? Как я поняла, мне достаточно будет проверять,что точки не одинаковые и читая значения длин из массива считать периметры,а потом искать максимальным? По логике, максимальный периметр получится при наибольших сторонах. >>> двумерные массивы плохо знаю. ничего сложного. это массив одномерных массивов. пример инициализации статического двумерного массива int array[10] [20] ; пример инициализация динамического двумерного массива int ** array = new int * [N]; for(int i=0; i < N; i++) array[i] = new int[N]; >>> массив размера n/3 на 3 и в каждом столбце записаны три длины сторон треугольника? массив n x n, где array[i][j] = длине между i-ой и j-ой точкой. исправите lens[i][j] на lens[i][k]. а то 2 раза одно и тоже расстояние прибавляется. |
MonaMi Массивы на c++ в среде CodeBlock 3.12.2012, 18:35
MonaMi Функция нахождение периметра треугольника. Не рабо... 3.12.2012, 18:49
Sergio Ramos
Функция нахождение периметра треугольника. Не раб... 3.12.2012, 20:46
MonaMi
Спасибо большое) буду пробовать)
Массивы соде... 4.12.2012, 19:46
daslex Массивы содержат значения координат точек на плоск... 4.12.2012, 15:56
daslex
>>system("CLS");
очищает экран (... 4.12.2012, 20:38![]() ![]() |
|
Текстовая версия | Сейчас: 19.4.2026, 23:57 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru