Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2016, 16:03   #1
ЛеликСолнце
Новичок
Джуниор
 
Регистрация: 14.12.2016
Сообщений: 2
Восклицание [C++]: Даны N точек. найти точки пересечения прямых, проходящих через каждую пару точек. Ввод координат из файла, запись прямых в файл и поиск выполнять с помощью 3 разных ф-ций

Помогите написать программу, пожалуйста, задание такое: дано N точек, найти точки пересечения прямых проходящих через каждую пару точек.Уточнение: нужно задать как минимум 3 функции, ввод координат точек из файла и дальнейшая запись в файл прямых, которые получаться , а затем найти точки пересечения прямых.

Последний раз редактировалось Вадим Мошев; 16.12.2016 в 23:29.
ЛеликСолнце вне форума Ответить с цитированием
Старый 14.12.2016, 16:33   #2
olej.tsil
Заблокирован
 
Регистрация: 29.11.2016
Сообщений: 215
По умолчанию

Цитата:
Сообщение от ЛеликСолнце Посмотреть сообщение
задание такое: дано N точек, найти точки пересечения прямых проходящих через каждую пару точек.
Одно из удачных (и естественных) для любых задач 2D графики - это представление точки как комплексный тип данных: complex<double>.
Тогда у вас появляется простота с определениями, например:
- расстояние между точками a, b -> abs( a - b )
- угол наклона отрезка (отн. x оси) -> arg( a - b )
Отрезок между 2-мя точками:
struct line { complex<double> a, b };

При таких определениях задача ваша дальше достаточно просто записывается...
olej.tsil вне форума Ответить с цитированием
Старый 14.12.2016, 16:53   #3
ЛеликСолнце
Новичок
Джуниор
 
Регистрация: 14.12.2016
Сообщений: 2
По умолчанию

Приношу свои извинения, мне нужно это все функциями, и координаты точек вводить из файла.
ЛеликСолнце вне форума Ответить с цитированием
Старый 14.12.2016, 17:11   #4
olej.tsil
Заблокирован
 
Регистрация: 29.11.2016
Сообщений: 215
По умолчанию

Цитата:
Сообщение от ЛеликСолнце Посмотреть сообщение
мне нужно это все функциями, и координаты точек вводить из файла.
Какая разница?
Отлаживайте с терминала, а с файла введёте переадресацией:
Код:
$ ./prog < file.dat
Цитата:
Сообщение от ЛеликСолнце Посмотреть сообщение
дано N точек, найти точки пересечения прямых проходящих через каждую пару точек.
Красивая по формулировке у вас задача.
Только она ... безумная по вычислительной сложности, O( N ).
- если у вас N-угольник, N точек...
- то пар точек, отрезков, линий - L = (N-1)! ... это если отбросить попарно встречно именуемые, напр. <3,5> и <5,3> ...
- а числа пересечений L линий - число сочетаний по 2 из L: P = L! / 2! / (L-2)!

Для N=3 это 3 (да и то совпадающие с вершинами), для N=4, по идее, L=6, P=15, для N=5 - L=24 а P=24*23/2=276 ...

Где-нибудь при N=9...10 ваш компьютер запыхтит, перегреется, закипит ... и сдохнет.

Последний раз редактировалось Вадим Мошев; 16.12.2016 в 23:26.
olej.tsil вне форума Ответить с цитированием
Старый 16.12.2016, 20:38   #5
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,657
По умолчанию

Цитата:
Сообщение от olej.tsil Посмотреть сообщение
Красивая по формулировке у вас задача.
Только она ... безумная по вычислительной сложности, O( N ).
- если у вас N-угольник, N точек...
- то пар точек, отрезков, линий - L = (N-1)! ... это если отбросить попарно встречно именуемые, напр. <3,5> и <5,3> ...
- а числа пересечений L линий - число сочетаний по 2 из L: P = L! / 2! / (L-2)!

Для N=3 это 3 (да и то совпадающие с вершинами), для N=4, по идее, L=6, P=15, для N=5 - L=24 а P=24*23/2=276 ...

Где-нибудь при N=9...10 ваш компьютер запыхтит, перегреется, закипит ... и сдохнет.
olej.tsil, начинайте внимательно читать задания и прекращайте флудить, если хотите помогать другим. Задача с числом операций в пределе порядка 4-й степени.
Благими намерениями устлана дорога на programmersforum.ru
MihalNik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программирование в С# ArniLand Общие вопросы .NET 4 18.10.2011 11:17
программирование на c# lola1990 Помощь студентам 3 17.10.2011 09:28
Программирование или web-программирование? Дмитрий Батогов Помощь студентам 3 23.06.2011 14:14