< -->

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.

Назад