Страница 1 из 1

Интересные задачи...

Добавлено: 19 ноя 2009, 23:30
GIGNCSKA
Выкладываем...различные варианты решения этих задач



Даны действительные числа 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.

Re: Интересные задачи...

Добавлено: 20 ноя 2009, 12:47
Хыиуду
2. 1 прямоугольник - максимальные координаты левого верхнего угла из всех трех и минимальные - для правого нижнего, 2 прямоугольник - наоборот, мин. левого верхнего и макс. правого нижнего
3. str(n,s);
while pos('10', s)>0 do s:=copy(s, 1, pos('10',s)-1)+'1'+copy(s, pos('10',s)+2, length(s));