Даны действительные числа x1,y1,x2,y2,x3,y3,x4,y4. Лежит ли точка с координатами (x4,y4) внутри треугольника, вершины которого имеют координаты (x1,y1),(x2,y2) и (x3,y3)?
Прямоугольник на координатной плоскости задается координатами его верхней левой и нижней правой вершин. Даны три прямоугольника. Найти прямоугольник, являющийся пересечением данных трех прямоугольников и минимальный прямоугольник, содержащий в себе данные три.
Дано натуральное число N. Удалить из записи числа N каждую цифру 0, если слева от нее в исходной записи N находится цифра 1.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
GIGNCSKA писал(а):Выкладываем...различные варианты решения этих задач
Даны действительные числа x1,y1,x2,y2,x3,y3,x4,y4. Лежит ли точка с координатами (x4,y4) внутри треугольника, вершины которого имеют координаты (x1,y1),(x2,y2) и (x3,y3)?
Прямоугольник на координатной плоскости задается координатами его верхней левой и нижней правой вершин. Даны три прямоугольника. Найти прямоугольник, являющийся пересечением данных трех прямоугольников и минимальный прямоугольник, содержащий в себе данные три.
Дано натуральное число N. Удалить из записи числа N каждую цифру 0, если слева от нее в исходной записи N находится цифра 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,4,1));
readln;
End.