uses crt;
const t=0.0001;
function Plosh(x1,y1,x2,y2,x3,y3:real):real;
begin
Plosh:=abs((x1-x2)*(y3-y2)-(y1-y2)*(x3-x2))/2;
end;
var x1,y1,x2,y2,x3,y3,tx,ty,s:real;
begin
clrscr;
writeln('Введите координаты вершин треугольника:');
writeln('Вершина 1:');readln(x1,y1);
writeln('Вершина 2:');readln(x2,y2);
writeln('Вершина 3:');readln(x3,y3);
if Plosh(x1,y1,x2,y2,x3,y3)<t then
write('Это не треугольник!')
else
begin
writeln('Введите координаты точки:');
readln(tx,ty);
s:= Plosh(x1,y1,x2,y2,tx,ty)+ Plosh(x1,y1,tx,ty,x3,y3)+ Plosh(tx,ty,x2,y2,x3,y3);
if abs(Plosh(x1,y1,x2,y2,x3,y3)-s)<t then
write('Точка принадлежит треугольнику!')
else write('Точка не принадлежит треугольнику!');
end;
readln
end.
const t=0.0001;
function Plosh(x1,y1,x2,y2,x3,y3:real):real;
begin
Plosh:=abs((x1-x2)*(y3-y2)-(y1-y2)*(x3-x2))/2;
end;
var x1,y1,x2,y2,x3,y3,tx,ty,s:real;
begin
clrscr;
writeln('Введите координаты вершин треугольника:');
writeln('Вершина 1:');readln(x1,y1);
writeln('Вершина 2:');readln(x2,y2);
writeln('Вершина 3:');readln(x3,y3);
if Plosh(x1,y1,x2,y2,x3,y3)<t then
write('Это не треугольник!')
else
begin
writeln('Введите координаты точки:');
readln(tx,ty);
s:= Plosh(x1,y1,x2,y2,tx,ty)+ Plosh(x1,y1,tx,ty,x3,y3)+ Plosh(tx,ty,x2,y2,x3,y3);
if abs(Plosh(x1,y1,x2,y2,x3,y3)-s)<t then
write('Точка принадлежит треугольнику!')
else write('Точка не принадлежит треугольнику!');
end;
readln
end.
var x1,y1,x2,y2,x3,y3,tx,ty:real;
begin
clrscr;
writeln('Введите координаты вершин треугольника по часовой стрелке:');
readln(x1,y1,x2,y2,x3,y3);
writeln('Введите координаты точки:');
readln(tx,ty);
if((tx-x1)*(y1-y2)-(ty-y1)*(x1-x2)>=0)
and((tx-x2)*(y2-y3)-(ty-y2)*(x2-x3)>=0)
and((tx-x3)*(y3-y1)-(ty-y3)*(x3-x1)>=0) then
write('Лежит') else write('Не лежит');
readln
end.