{ геометрические алгоритмы: С какой стороны вектора лежит точка? Вариант 1 }
{ ------------------------------------------------------------------------ }
{ Идея: обходим треугольник по часовой стрелке. }
{ Точка должна лежать справа от всех сторон, если она внутри }
{ ------------------------------------------------------------------------ }
{ функция определеяет положение точки относительно вектора }
Function WherePoint(ax, ay, bx, by, px, py: real): integer;
var s: real;
begin
s := (bx - ax) * (py - ay) - (by - ay) * (px - ax);
if s > 0 then WherePoint := 1
else if s < 0 then WherePoint := -1
else WherePoint := 0;
end;
{ функция определеяет относительное положение точки: внутри или нет }
Function PointInsideTreangle(ax, ay, bx, by, cx, cy, px, py: real): boolean;
var s1, s2, s3: integer;
begin
PointInsideTreangle := FALSE;
s1 := WherePoint(ax, ay, bx, by, px, py);
s2 := WherePoint(bx, by, cx, cy, px, py);
if s2 * s1 <= 0 then EXIT;
s3 := WherePoint(cx, cy, ax, ay, px, py);
if s3 * s2 <= 0 then EXIT;
PointInsideTreangle := TRUE;
end;
Begin {* Тело основной программы *}
writeln(PointInsideTreangle(1, 1, 8, 1, 1, 8, 2, 2));
writeln(PointInsideTreangle(1, 1, 8, 1, 1, 8, 6, 6));
End.