![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Uriah |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
На плоскости заданы множество точек и прямая. Определить точку, ближайшую к прямой, из точек, лежащих выше прямой, и точку ближайшую к прямой, из точек, лежащих ниже.
Метод решения: Пусть прямая задана уравнением ax+by+c=0, где a,b,c – коэффициенты в уравнении, входные данные, вещественные числа. n – количество точек множества, входные данные, целое число. (xi,yi)│i=1..n ─ координаты множества точек, входные данные, вещественные числа. l ─ расстояния от заданной прямой до точек прямой, промежуточные данные, вещественные число Ввод a,b,c. Ввод n. Для i от 1 до n вводим координаты точек множества (xi,yi), где i изменяется на единицу (i = i+1). При (a*a+b*b)>0, находим расстояния от прямой до заданных точек: l = (a*xi+b*yi+c)/sqrt(a*a+b*b) Если (a*xi+b*yi+c)>0, то точка находится выше прямой, и тогда определяем какая точка находится ближе к прямой, путём сравнения расстояний от прямой до точек. Выводим координаты точки ближайшей к прямой из точек, лежащих выше неё. Если (a*xi+b*yi+c)<0, то точка находится ниже прямой, и тогда определяем какая точка находится ближе к прямой, путём сравнения расстояний от прямой до точек. Выводим координаты точки ближайшей к прямой из точек, лежащих ниже неё. Часть проги я написал: задал множество точек и нашёл расстояния от них до прямой, необходимо токо кусок чтобы определить точку, ближайшую к прямой, из точек, лежащих выше прямой, и точку ближайшую к прямой, из точек, лежащих ниже. ПОМОГИТЕ, ктонить, ПОЖАЛУЙСТА!!!!!!!!! заранее БЛАГОДАРЕН! |
![]() ![]() |
мисс_граффити |
![]()
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
для начала, приведи код уже написанного тобой.
а если прямая вертикальная - как считать "выше" и "ниже"? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Гость |
![]()
Сообщение
#3
|
Гость ![]() |
|
Гость |
![]()
Сообщение
#4
|
Гость ![]() |
вот часть исходника:
Код program Mnogestvo; uses Crt; const n=5; var a,b,c:real; i:integer; X: array [1..n] of real; Y: array [1..n] of real; l: real; begin ClrScr; writeln ('Введите a,b,c'); readln (a,b,c); for i:=1 to n do begin writeln ('Введите координаты', ' ', i, '-й точки множества'); readln (X[i],Y[i]); end; for i:=1 to n do begin if (a*a+b*b)<>0 then l:= (a*X[i]+b*Y[i]+c)/sqrt (a*a+b*b); writeln (l); end; readkey; end. |
-Uriah- |
![]()
Сообщение
#5
|
Гость ![]() |
Никто помочь не может?
|
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 8:29 |