Программа определения принадлежности точки отрезку

Сегодня мы рассмотрим еще одну типовую задачу из серии геометрические алгоритмы. Напишем функцию, которая будет проверять принадлежность произвольной точки отрезку, заданному координатами своего начала и конца.

Для реализации операций сравнения над вещественными данными напишем еще две функции: функцию EqPoint(), которая ,будет проверять, совпадают ли две точки на плоскости и функцию RealMoreEq() , которую будем использовать для проверки отношения «>=» (больше или равно). Причина ввода специальных функций нам уже известна.

Задача. Проверить, принадлежит ли точка отрезку.

Пусть точки — начальная и конечные точки отрезка. — произвольная точка на плоскости.

Вектор с началом в точке и концом в точке будет иметь координаты (x2-x1, y2-y1).

Если P(x, y) – произвольная точка, то координаты вектора равны: (x-x1, y – y1).

Точка Р будет принадлежать отрезку если:

  1. Векторы в и коллинеарны (равно нулю их векторное произведение):
    , т.е. (x-x1)(y2-y1)-(y-y1)(x2-x1) = 0
  2. Абсцисса точки P удовлетворяет условию: или . Иначе точка будет находиться на прямой левее или правее отрезка.

Program geom3; Const _Eps: Real = 1e-3; var x1,y1,x2,y2,x,y:real; Function RealEq(Const a, b:Real):Boolean; begin RealEq := Abs(a-b) Function RealMoreEq(Const a, b:Real):Boolean; begin RealMoreEq := a — b >= _Eps End; Function EqPoint(x1,y1,x2,y2:real):Boolean; begin EqPoint:=RealEq(x1,x2)and RealEq(y1,y2) end; Function AtOtres(x1,y1,x2,y2,x,y:real):Boolean; Begin If EqPoint( x1,y1,x2,y2) Then AtOtres:= EqPoint( x1,y1,x,y) Else AtOtres := RealEq((x-x1)*(y2-y1)- (y-y1)*(x2-x1),0)and (RealMoreEq(x,x1)and RealMoreEq( x2,x)Or RealMoreEq(x,x2)and RealMoreEq( x1,x)) end; begin writeln(Введите координаты точек: x1,y1,x2,y2,x,y’); readln( x1,y1,x2,y2,x,y); if AtOtres(x1,y1,x2,y2,x,y) then writeln(‘Да.’) else writeln(‘Нет.); end.

Определить принадлежность точки Д310

Результаты выполнения программы.

Введите координаты точек: x1, y1, x2, y2, x,y
0.5 1 2.5 2.8 1.203 1.633
Да.

Читайте также:
Программа обновления биоса для Toshiba

Результаты тестирования в программе GeoGebra:

Точка принадлежит отрезку

Сегодня мы написали функцию AtOtres() , которая проверяет принадлежность произвольной точки отрезку, заданному своими координатами.

Ввели еще две функции: EqPoint() и RealMoreEq() для реализации операций сравнения над вещественными данными. Первая проверяет, совпадают ли две точки на плоскости, вторая — используется для проверки отношения «>=».

На следующем уроке, на основе ранее написанных процедур, напишем процедуру определения координат точки пересечения двух отрезков.

На этом я с вами прощаюсь. До встречи на следующем уроке.

Источник: gospodaretsva.com

Определить принадлежность точки отрезку — Pascal

Дана точка с координатами (x,y), требуется определить принадлежность точки отрезку (a,b).

Определение принадлежности точки x отрезку [a,b] на языке программирования Паскаль с условием

Код к задаче: «Определить принадлежность точки отрезку»

Листинг программы

uses crt; const t=0.001; var ax,ay,bx,by,x,y,p:real; begin clrscr; writeln(‘Введите координаты отрезка:’); readln(ax,ay,bx,by); writeln(‘Введите координаты точки’); readln(x,y); if ax=bx then if (x=ax) and(((y<=ay)and(y>=by))or((y>=ay)and(y<=by))) then write(‘Принадлежит’) else write(‘Не принадлежит’) else begin p:=(x-bx)/(ax-bx); if (abs(p*ay+(1-p)*by-y)=0)and(p<=1))then write(‘Принадлежит’) else write(‘Не принадлежит’); end; readln end.

Источник: studassistent.ru

что надо вписывать в скобках чтоб программа получилась в приложении паскаль?

program n_9;
var x,a,b:real;
begin
writeln(‘определение принадлежности точки отрезку’);
write(‘введите a, b>>’);
readln(a,b);
write(‘введите x>>’);
readln(x);
if (x>=a) and (x<=b)then
writeln(‘точка принадлежит отрезку’)
else writeln(‘точка не принадлежит отрезку’)
end.

Ответы

Автор ответа: aiaoaiaiaoaaaaaooo

Ответ:

writeln(‘определение принадлежности точки отрезку’);

else writeln(‘точка не принадлежит отрезку’);

Объяснение:

нужна была тчк с запятой после действия в else, в этом была ошибка. (еще ни разу не видела, чтобы переменные в паскале вводили через запятую, так что не рискуй.)

а это советы на будущее:

нормальные скобки в условиях.

Источник: sous-otvet.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru