program task; begin var (x1, y1):= readreal2 ('введите координаты первой точки: '); var (x2, y2):= readreal2 ('введите координаты второй точки: '); var (x3, y3):= readreal2 ('введите координаты третьей точки: ');
//находим значения A, B, C для формирования общих уравнений прямых для каждой стороны
var (A12, A23, A31):= (y1-y2,y2-y3,y3-y1); var (B12, B23, B31):= (x2-x1,x3-x2,x1-x3); var (C12, C23, C31):= (x1y2-x2y1,x2y3-x3y2,x3y1-x1y3); var (x,y):=readreal2 ('введите координаты точки: '); //проверяем совпадение знака при подстановке третьей точки в уравнение прямой и даной точки //таким образом убеждаемся, что они лежат с однй стороны от данной прямой
if ( sign(a12x + b12y + c12) = sign(a12x3 + b12y3 +c12) ) and ( sign(a23x + b23y + c23) = sign(a23x1 + b23y1 +c23) ) and ( sign(a31x + b31y + c31) = sign(a31x2 + b31y2 +c31) ) then writeln (‘точка лежит внутри треугольника’) else writeln (‘точка не лежит внутри треугольника’); end.
{введите координаты первой точки: 34.5 11.8 введите координаты второй точки: 22.8 4 введите координаты третьей точки: 196.3 5 введите координаты точки: 120 -5 точка не лежит внутри треугольника}
{введите координаты первой точки: 3 3 введите координаты второй точки: 3 3 введите координаты третьей точки: 3 3 введите координаты точки: 3 3 точка лежит внутри треугольника}