![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 18.11.2020
Сообщений: 6
|
![]()
Пользователь вводит 4 координаты (x1,y1, x2, y2, x3, y3, x4, y4) и если эти 4 точки образуют квадрат, то выводиться 1, если нет, то 0.
Помогите пожалуйста реализовать это. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]()
1. квадрат это ромб с равными диагоналями.
2. ромб это четырехугольник с четырьмя равными сторонами. 3. расстояние между двумя точками это корень квадратный из суммы квадратов dx и dy, где dx --разность координаты x для этих точек dy --разность координаты y для этих точек 4. посчитать расстояния(длины сторон и диагоналей), можно и просто квадраты оных (без расчета корня). 5. проверить их на совпадения(см. пп.1., 2.).
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 28.11.2020 в 17:47. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,378
|
![]()
Другой путь:
Вариант а) 1. Проверяем равенство двух соседних сторон. У квадрата они равны. 2. Проверяем Перпендикулярность этих сторон. У квадрата они перпендикулярны. 3. Проверяем равенство диагоналей. У квадрата они равны. Вариант б) 1. Ищем координаты точек, которые являются серединами диагоналей. Если совпадают, то точки лежат на окружности, а иначе не квадрат. 2. Проверяем равенство двух соседних сторон. Если равны, то квадрат, а иначе - не квадрат. PS: Второй вариант проще.
Как-то так, ...
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,716
|
![]()
Тут ещё засада: координаты могут вводиться не в порядке обхода по сторонам 4-угольника (по часовой или против). Например: 1-я, 3-я,4-я, 2-я. Нужно ещё определить этот порядок. Но для 8-го класса СШ это, наверно, излишне.
А если всё-таки надо, то я бы вычислил условный центр где-то в середине 4-угольника и упорядочил точки по возхрастанию величины угла между осью, положим, Х и направлением от центра на точку. Эта тема регулярно появляется с началом нового учебного года. Я и сам на неё отвечал минимум 1 раз, да лень искать. ------------------------------ А вообще можно тупо рассчитать расстояния от каждой точки до каждой, и если 4 совпадут (в пределах допустимой ошибки) и две оствшиеся - тоже меж собой совпадут - пишем КВАДРАТ и идём пить кофий. А в мои студенческие времена получивший двойку на экзамене на вопрос "Ну как?" отвечал "Квадрат !" Последний раз редактировалось digitalis; 28.11.2020 в 19:16. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
По моему - проще всего так:
Берем любую из точек , считаем расстояния до 3-х других. Получаем 3 величины. Для квадрата - две из этих величин равны, третья в корень из 2 раз больше. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,716
|
![]()
"Красиво и просто, в стиле чемпиона" © О.Бендер
|
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 17.06.2012
Сообщений: 1,027
|
![]()
Программа на языке высочайшего уровня qbasic бэйсик qb64
Код:
Результат: 1 Исправлено вычисление сторон и следующее сообщение устарело Проверочные точки прямоугольника: Код:
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
Последний раз редактировалось сфинкс; 29.11.2020 в 19:38. |
![]() |
![]() |
![]() |
#8 | ||
Старожил
Регистрация: 23.10.2010
Сообщений: 2,378
|
![]()
сфинкс
Цитата:
Код:
Код:
Для прямоугольника это так же верно. type_Oleg Цитата:
В этом случае нужно задавать и epsilon. Если вводятся координаты, то они все либо целые, либо рациональные числа. Другие, предложенные тут методы этого лишены. Так что получить ошибочное решение весьма вероятно. PS: Навеяло, так как недавно познакомился в Python с такими типами данных, как Fraction и Decimal. PSS: "Красиво и просто, в стиле чемпиона" © О.Бендер А чё он там спёр? Туру (ладью) или лошадь (коня)? ![]() ![]()
Как-то так, ...
|
||
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,716
|
![]()
Малость переврал, бо по памяти
![]() Ласкеру проворно подставили мраморную лестницу, и бодрый экс-чемпион, сдувая с левого рукава пылинку, севшую на него во время полета над Силезией, упал в объятия одноглазого. Одноглазый взял Ласкера за талию, подвел его к чемпиону и сказал: — Помиритесь! Прошу вас об этом от имени широких васюкинских масс! Помиритесь! Хозе-Рауль шумно вздохнул и, потрясая руку старого ветерана, сказал: — Я всегда преклонялся перед вашей идеей перевода слона в испанской партии с b5 на c4! — Ура! — воскликнул одноглазый. — Просто и убедительно, в стиле чемпиона! И вся необозримая толпа подхватила: — Ура! Виват! Банзай! Просто и убедительно, в стиле чемпиона! ! ! Если квадрат не параллелен осям координат, то при вычислении расстояний методом Пифа Горыча - независимо от выбранного метода - неизбежно приходим к действительным числам, а сравнивать их - без ёпсилона никак, хошь-не-хошь. Последний раз редактировалось digitalis; 29.11.2020 в 22:22. |
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,378
|
![]()
digitalis
Цитата:
![]()
Как-то так, ...
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
С++ и матан. Как проверить то, что три точки лежат на одной прямой? | Алексей_2012 | Помощь студентам | 30 | 16.12.2016 15:19 |
нарисовать точки и проверить их циклом(DELPHI) | beygul | Помощь студентам | 1 | 24.03.2014 14:46 |
решение задачи в Pascal - Проверить принадлежность точки с заданными координатами кругу с заданным радиусом и координатами центра | Екатерина23 | Помощь студентам | 1 | 05.12.2013 16:35 |
Как в С квадрат поставить? | Ol'ga | Общие вопросы C/C++ | 10 | 31.10.2010 10:31 |
Имеются координаты точки. Как проверить какого цвета соседние точки на форме? | Rin | Мультимедиа в Delphi | 2 | 10.11.2009 22:47 |