![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 05.11.2015
Сообщений: 167
|
![]()
Помогите, пожалуйста, с заданием.
На плоскости есть какое-то количество точек (задается во входном файле, от 1 до 100 точек). Нужно узнать, какие точки лежат на одном отрезке, то есть подстроив программу под различные случаи количества городов. Как я понимаю, нужно провести отрезок с 1 точки во вторую, и уравнением прямой, проходящей через две точки, проверить, лежат ли на этом отрезки точки 3 и 4. Потом провести с 1 по 3, и проверить, лежит ли на ней 2 и 4, потом с 1 и 4, проверить 2 и 3. Далее все тоже самое, только проводить отрезки уже со следующих точек. Как написать программу, которая узнает, какие точки лежат на одной прямой? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
100 точек? Там только отрезков соединяющих каждую с каждой 99!. Представляешь хоть сколько нулей в конце этого числа? 22. Плюс еще в начале куча циферей. Сколько времени для решения потребуется?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
![]()
Ну вы хоть понимаете в чем нужно писать программу??
Или совсем все туго? Что вы все путаете понятия... "Не хочу писать (сложно, времени нету, хомячок рожает) - идем во фриланс ставим ценник вам решают и все довольны" "Хочу писать но не получается - показываем наработки, указываем где затор слушаем советы, исправляем и все довольны". Вам вариант какой?
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 05.11.2015
Сообщений: 167
|
![]()
Отрезков, напротив, будет больше. Ведь соединять нужно первую со всеми, потом вторую со всеми, кроме первой, и т.д.
А относительно нулей, вы, наверное, не так поняли. Нам известны координаты. допустим, ста точек. И не известно, может, там все на одной линии, тогда ответом будут все точки, может, только три лежат на одной линии. То есть считаем кол-во отрезков, соединяющих точки, то есть n-1 + n-2+ ...+ n-99 и это число удваиваем. А потом проверяем на принадлежность сначала точки 3 к отрезку 1 - 2, потом 4 на принадлежность к один 2, и так далее. Потом идет вторая точка, и её тоже нужно соединить с остальными. И то число, удвоенное, как раз и будет количеством проведенных отрезков для проверки на принадлежность к прямой. А как дальше, не знаю. просто не могу связать цикл, который все это будет считать. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 05.11.2015
Сообщений: 167
|
![]()
Вот мои наработки.
Код:
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 05.11.2015
Сообщений: 167
|
![]()
Почему 99! ?
Если точек сто, то отрезков будет 99+98+97+..+1, то есть совсем не 99! |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Тю. А чего я зациклился на умножении? Посыпаю голову пеплом
![]()
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 04.01.2016 в 23:45. |
![]() |
![]() |
![]() |
#8 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
А что в итоге получить-то надо? Множество уравнений прямых aka y = kx + b, имеющие на борту 3 или более точек из входных данных?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 05.11.2015
Сообщений: 167
|
![]()
Вообще нужно соединить между собой все точки, и подсчитать общую длину, учитывая при этом, что несколько точек могут лежать на одной прямой, в этом случае отдельно их соединять не надо, достаточно длины этой линии.
Так что нужно узнать, какие точки лежат на одной прямой. |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 23.12.2015
Сообщений: 22
|
![]()
http://www.cleverstudents.ru/line_an..._2_points.html - почитайте тут. алгоритм будет не сложный в принципе и зациклить его можно на проверку.
Если задача кажется легкой - то решать её придется очень долго.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Определить, лежат ли точки на одной прямой Паскаль | anton.dasuik | Помощь студентам | 1 | 27.02.2013 22:52 |
Управление прямой вокруг точки Pascal ABC | Danise | Помощь студентам | 1 | 10.01.2012 00:53 |
Выяснить лежат ли точки на одной прямой | commander_spock | Помощь студентам | 10 | 20.10.2010 14:44 |
Определить Лежат ли точки на одной прямой | домик | Помощь студентам | 10 | 11.04.2010 20:12 |
Определить, лежат ли обе точки относительно прямой в одной полуплоскости - задача на С++. | Wia | Помощь студентам | 4 | 21.12.2008 02:06 |