Первая задача. Проверка, находятся ли искомая точка по “правильную” сторону от отрезка треугольника с использованием сравнения знаков. В этом решении точка, лежащая на прямой считается частью треугольника.
//Функция проверяет знак, который имеет уравнение прямой при подстановке в него точки(её координаты - xx и yy)
//и точек, обозначающих прямую, составляющую сторону треугольника
function fu(xx,yy,m,n,l,k: real): real;
begin
Result :=sign((xx-m)*(k-n)-(yy-n)*(l-m));
end;
begin
var (x,y):=ReadInteger2('Введите координаты искомой точки');
var (a,b):=ReadInteger2('Введите координаты первой точки треугольника');
var (c,d):=ReadInteger2('Введите координаты второй точки треугольника');
var (e,f):=ReadInteger2('Введите координаты третьей точки треугольника');
if ((fu(x,y,a,b,c,d)=fu(e,f,a,b,c,d)) and (fu(x,y,e,f,c,d) = fu(a,b,e,f,c,d)) and (fu(x,y,e,f,a,b)=fu(c,d,e,f,a,b)))
or (fu(x,y,a,b,c,d)=0) or (fu(x,y,e,f,c,d)=0) or (fu(x,y,a,b,e,f)=0) then
writeln('Точка лежит внутри треугольника')
else
writeln('Точка не лежит внутри треугольника');
end.