Помощь - Поиск - Пользователи - Календарь
Полная версия: Принадлежность точки.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Catherinektz
Помогите, пожалуйста, решить задачу в Pascal: Составить программу, определяющую, принадлежит ли точка M(x,y) одной из высот треугольника с вершинами A(a1,b1), B(a2,b2), c(a3,b3].
Lapp
Кать, у тебя есть хоть какие-то свои соображения? Наработки?
Что ты понимаешь под словом помочь? Тебе хватит наброска пути решения плюс советы по его воплощению и ответы на вопросы по ходу, или ты предпочитаешь просто получить окончательный код?
Catherinektz
Цитата(Lapp @ 29.02.2012 2:28) *

Кать, у тебя есть хоть какие-то свои соображения? Наработки?
Что ты понимаешь под словом помочь? Тебе хватит наброска пути решения плюс советы по его воплощению и ответы на вопросы по ходу, или ты предпочитаешь просто получить окончательный код?

Мне хватит набросков и дальнейших ответов на мои вопросы, если что-то будет не получаться!
Lapp
Цитата(Catherinektz @ 29.02.2012 10:04) *
Мне хватит набросков и дальнейших ответов на мои вопросы, если что-то будет не получаться!

Правильный ответ, +1 ))

Я думаю, тут все просто в лоб надо делать.
1. Написать функцию для проверки, попадает ли точка на отрезок.
2. Найти координаты высот, как отрезков (концов).
3. Проверить, принадлежит ли точка одному из этих отрезков с помощью функции из п.1

Тут есть одно неприятное обстоятельство.. Так сказать, ложка дегтя.
Вероятность точного попадания точки на отрезок математически равна нулю. Но это ничего - точку можно заранее рассчитать по формулам )). Самое плохое то, что даже в этом случае (когда точка ТОЧНО должна быть на высоте) результат все равно может быть отрицательным - потому, что компьютерные вычисления производятся с некоторой точностью.
И как тогда быть?
Короче, условие в том виде, в котором оно есть - неполное. И его надо дополнить, уточнить. Ты можешь задать такой вопрос своему препу? Если он не дурак, должен отреагировать положительно (одобрительным взглядом)).

Я могу попробовать предвосхитить его ответ, если хочешь. Нужно производить проверку с некоторой точностью (заведомо большей, чем точность машинных вычислений). Точность должна задаваться заранее. Думаю, это единственный нормальный способ решить такую задачу. Но мне хочется, чтоб ты это (ну, или что-то другое..) улсышала от своего препа.
Ок?
Годится такой "набросок"? ))
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.