Program Trigon;
{$G+,N+,E-,D-}
type Real = Extended;
var
x, y : array[0..3] of Real;
i : Integer;
yy : Real;
Function FLine(indx1, indx2, dot : Integer) : Real;
begin
FLine := (x[dot]-x[indx1])*(y[indx2]-y[indx1])-(y[dot]-y[indx1])*(x[indx2]-x[indx1]);
end;
Function WhereDot : Byte;
var
tmp : Byte;
t : Real;
S : String;
begin
if ((FLine(1, 2, 0)=0) and (FLine(3, 0, 1)*FLine(3, 0, 2)<=0)) or
((FLine(2, 3, 0)=0) and (FLine(1, 0, 2)*FLine(1, 0, 3)<=0)) or
((FLine(3, 1, 0)=0) and (FLine(2, 0, 3)*FLine(2, 0, 1)<=0)) then
WhereDot := 0 else
if (FLine(1, 2, 3)*FLine(1, 2, 0)>0) and (FLine(2, 3, 1)*FLine(2, 3, 0)>0) and (FLine(1, 3, 2)*FLine(1, 3, 0)>0)
then WhereDot := 1 else WhereDot := 2;
end;
begin
WriteLn('Введите координаты точки:');
Write('Введите x: ');
ReadLn(x[0]);
Write('Введите y: ');
ReadLn(y[0]);
WriteLn('Введите координаты треугольника:');
for i := 1 to 3 do
begin
Write('x',i,': ');
ReadLn(x[i]);
Write('y',i,': ');
ReadLn(y[i]);
end;
case WhereDot of
0: WriteLn('Точка на стороне треугольника');
1: WriteLn('Точка внутри треугольника');
2: WriteLn('Точка снаружи треугольника');
end;
end.