|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.01.2017, 12:00 | #1 |
Форумчанин
Регистрация: 13.05.2016
Сообщений: 111
|
Написать программу, которая определяет вершины квадрата содержащего макс. число заданных точек
На двумерной плоскости задано N точек с координатами (X1,Y1), (X2,Y2), ..., (Xn,Yn). Написать программу, которая из этих точек выделяет вершины квадрата, содержащего максимальное число заданных точек. Точки, расположенные на сторонах квадрата, принадлежат ему.
Вот что я смог сделать: Код:
|
11.01.2017, 14:04 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Надо все точки сохранить в массив, потом создавать прямоугольники из всех комбинаций, проверить какие из прямоугольников являются квадратами и наконец подсчитывать сколкоь точек попадают в квадрат и запоминать результат.
|
11.01.2017, 14:25 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Kef1r, а чем Вас ваша предыдущая тема не устроила?
|
11.01.2017, 15:29 | #4 |
Форумчанин
Регистрация: 13.05.2016
Сообщений: 111
|
|
11.01.2017, 15:52 | #5 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Так что ты уже сделал?
|
11.01.2017, 16:00 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
если задача найти любой квадрат (универсально, т.е. стороны квадрата не обязательно параллельны осям координат),
то можно брать 4-ре точки, искать расстояния между ними и сравнивать. посмотрите вот здесь - Ответы Mail.Ru_ Образуют ли 4 точки квадрат_ или на форуме Точки на плоскости, нахождение квадрата идея простая до безобразия. берём точку A и находим расстояния от неё до 3-х других (B C D). если две длины равны (стороны AB и AD) , а третья больше (диагональ AC), то тогда проверяем расстояние между этими двумя вершинами (вторая диагональ DB) и две другие стороны (BC и DC). если стороны равны между собой и диагонали равны - то это квадрат. p.s. расстояние находить легко по теореме Пифагора (как корень квадратный из суммы квадратов разностей соответствующих координат). ____________________________ Внимание! Важно! При сравнении вещественных величин (это дробные числа, с плавающий запятой) нельзя использовать прямое равенство! вместо это используйте проверку на близость: вместо Код:
Код:
Последний раз редактировалось Serge_Bliznykov; 11.01.2017 в 16:03. |
11.01.2017, 16:01 | #7 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
11.01.2017, 16:32 | #9 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
p.s. кстати, проверка на то, что диагональ ровно в два раза больше - избыточно. Если стороны равны и диагонали между собой равны - то это квадрат. Но, разумеется, это утверждение верно! AC^2 = BC^2 = 2*(AB^2) = 2*(BС^2) = 2*(СD^2) = 2*(DA^2) |
|
11.01.2017, 17:03 | #10 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
1.jpg
Нужно проверять все потенциальные 4-ки (в надежде что они окажутся квадратом).... но ты можешь (для начала) сделать только для первой 4-ки: Код:
p.s.: ну ты понял, да? У тебя, контрольный пример будет из 8-ми точек (как на картинке). Ты пишешь 2-е функции - 1-а проверяет по 4-м координатам квадрат ли это; а вторая функция считает кол-во точек. Для начала в эти функции передай только первую 4-ку точек (а перебор потом сделаешь)... Последний раз редактировалось ura_111; 11.01.2017 в 17:12. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выделить из заданных точек вершины квадрата, содержащего максимальное число заданных точек | Kef1r | C# (си шарп) | 8 | 12.01.2017 16:00 |
Написать программу, которая определяет, попадает ли точка с заданными координатами в область, закрашенную на рисунке серым цветом. | MegaMan123 | Помощь студентам | 4 | 10.06.2014 11:40 |
Написать программу, которая определяет, попадает ли точка с заданными координатами в область, закрашенную на рисунке серым цветом. | d_dima | Помощь студентам | 1 | 05.03.2013 21:43 |
(С#)Написать программу, которая определяет, попадает ли точка с заданными координатами в область | Nekro95 | Помощь студентам | 1 | 25.10.2012 11:00 |
написать программу..которая с использованием метода наименьших квадратов определяет параметры зависимости | Марго | Помощь студентам | 3 | 14.10.2007 15:47 |