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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2017, 17:06   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
p.s. кстати, проверка на то, что диагональ ровно в два раза больше - избыточно.
Все так, за исключением случая, когда все 4 точки совпадают. Это можно конечно и другим способом проверить )
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.01.2017, 17:25   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Все так, за исключением случая, когда все 4 точки совпадают.
ну, боюсь, что в этом случае
0 = 2*0

Тут просто нужна банальная проверка на то, что длина стороны больше нуля.
остальное уже приложится.

ura_111. вы ошибаетесь насчёт параллельности сторон.
вот это, например, квадрат:
квадрат.png

а это - не квадрат:
ромб.png
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.01.2017, 17:43   #13
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Значит условия квадрата такие:
1) параллельность сторон
2) равенство сторон
3) один из углов равен 90 град.

p.s.: Kef1r, подумай как реализовать эти условия через координаты:
Код:
X[0]
Y[0]
X[1]
Y[1]
ura_111 вне форума Ответить с цитированием
Старый 11.01.2017, 17:56   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от ura_111 Посмотреть сообщение
Значит условия квадрата такие:
вот, это уже ближе.

много можно написать определений.
например,
квадрат это прямоугольник (4-х угольник у которого все углы 90 градусов), все стороны которого равны.

но, чисто для прикладных вычислений намного удобнее использовать алгоритм, предложенный выше (см., например, пост #7 от Аватар).
найти расстояния между точками и сравнить намного проще, чем проверять параллельность сторон или искать величину угла между сторонами.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.01.2017, 18:43   #15
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Допустим дан квадрат ABCD. Точки например обозначены по часовой стрелке.
AC и BD - диагонали.
Если вы знаете координаты точке А и С:
- как найти координаты центра квадрата?
- как вычислить координаты B и D?
А если вычислим координаты B и D, то есть они в заданных координатах?
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 12.01.2017, 01:06   #16
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Kef1r, наверно тебе будет тяжело набирать "с ходу" свою программу, поэтому делай её по частям - напиши (для начала) три отдельные программы:
___________________________________ ___________________________________ ________
1) даны 4-ри точки (задаются своими координатами)
Код:
X1, Y1
X2, Y2
X3, Y3
X4, Y4
Программа должна сказать квадрат ли это или нет... Протестируй хорошенько эту программу - подсовывай её разные координаты точек и смотри правильно ли реагирует на них программа.
___________________________________ ___________________________________ ________
2) Даны 15 точек (задаются своими координатами). Известно, что первые 4-е точки образуют квадрат (это должен быть действительно квадрат)... Подсчитайте, сколько точек (начиная с 5-й по 15-ю) вошло в этот квадрат.

1.jpg
___________________________________ ___________________________________ ________
3) Дан массив "int X[7]". Вывести на экран все возможные "четверичные комбинации". Например:
Код:
X[1], X[2], X[3], X[4]
X[1], X[2], X[3], X[5]
X[1], X[2], X[3], X[6]
X[1], X[2], X[3], X[7]
................
X[2], X[3], X[4], X[5]
X[2], X[3], X[4], X[6]
................
...............
X[4], X[5], X[6], X[7]
...............
...............
___________________________________ ___________________________________ ________

Как только сделаешь эти три (отдельные) программы, переходи к решению свой задачи... По сути дела нужно будет только "совместить" предыдущие программы в одну, при этом "механизм перебора" оставляешь в "main()", а остальные "программы" делаешь как отдельные функции.

Последний раз редактировалось ura_111; 12.01.2017 в 02:30.
ura_111 вне форума Ответить с цитированием
Старый 12.01.2017, 12:32   #17
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 111
По умолчанию

Решил делать на C#. Сделал только для 4-х точек. Дальше не знаю как.
Ссылка на тему: http://programmersforum.ru/showthread.php?t=302560
Kef1r вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделить из заданных точек вершины квадрата, содержащего максимальное число заданных точек 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