![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
Fringe |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 6.4.2010 Репутация: нет Всего: нет |
Ув. форумчане, выручите пожалуйста. Не могу понять как можно реализовать данное условие:
Если не все отрезки лежат в окружности, то найти количество отрезков, лежащих в первой четверти. В противном случае найти отрезок наименьшей длины. Это сообщение отредактировал(а) Fringe - 22.4.2010, 21:41 |
|||
|
||||
Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: нет Всего: 54 |
Внутри окружности находятся те отрезки, начало и конец которых находятся внутри окружности. Т.о. задача сводиться к решению задачи определения вхождения точки в окружность.
В окружность входит та точка, которая удалена от цента окружности на величину не более (если учитывать точки на окружности) или менее (для точек расположенных строго внутри окружности) величина радиуса окружности. Для определения удаления точки от центра окружности необходимо решить равносторонний треугольник с катетами равными разности координат центра окружности и точки и тогда гипотенуза и будет растоянием от центра окружности до точки. Полученное значение необходимо сравнить с радиусом. Возможно я что то напутал, но по-моему так ![]() -------------------- Слава Україні! |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 4 Всего: 19 |
Элементарно.
У вас ведь есть уравнение окружности. И есть две точки которые являются координатами конца отрезка. Если отрезок лежит внутри круга, то если подставить координаты одного конца то у вас должно получится значение меньшее квадрата радиуса, и если для второго конца отрезка выполняется это же условие, то весь отрезок лежит внутри окружности. А узнать все или не все отрезки внутри окружности, то это просто всё условие проверки засовываете в цикл и проверяются все отрезки поочереди. Для уменьшения числа итераций сразу же проверяйте условие и ищите длину каждого отрезка. Нахождение минимального числа из множества чисел, описано в любом учебнике по программированию. Ну вот чуток опередили :( Это сообщение отредактировал(а) DarkProg - 22.4.2010, 22:20 -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
Fringe |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 6.4.2010 Репутация: нет Всего: нет |
минимальную длину можно так проверить же?
|
|||
|
||||
Fringe |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 6.4.2010 Репутация: нет Всего: нет |
DarkProg,
Правильно я понял? |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 4 Всего: 19 |
Не правильно, должно быть так
А вообще неужели вам сложно нарисоваь простой пример на листочке с бумагой и посмлтреть правильно ли работает программа или нет??? И в случае ошибок просто вручную проверить где и на каком этапе получается ошибка, или же трассировкой посмотреть. С длинной вроде верно ![]() Кстати существуют такие константы типа Max_Real, Max_Int т.п. это весьма удодобно если вам заранее нужно придать очень большое значение переменной. Совет на будущее, оформляйте код в более удобном виде, как для себя так и для тех кто будет смотреть ваш код. Обычно ступенчатый вид кода очень удобен, потому что сразу видно что у вас в цикле а что вне его, а равнозначные операторы старайтесь писать на одной линии, и если у вас в условии нет альтернативы(ну т.е. else )то пишите в строчку, IMHO так лучше. -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
Fringe |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 6.4.2010 Репутация: нет Всего: нет |
DarkProg, спасибо!
Совет приму на заметку ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |