Отримання знань

дистанційна підтримка освіти школярів


Тут ви можете виконати завдання чи задати питання по змiсту цього уроку.

Михальов Володимир (StarRover) 2013-10-03 15:19:33
Задача про спільну частину двох відрізків
---------------------------------------------
На площині задано два відрізки, паралельні осі абсцис. Координати кінців відрізків - цілі числа. Визначити, чи є у цих відрізків спільна частина. Відповідь у вигляді «точка», «відрізок», «немає спільної області».
---------------------------------------------
{Otrezki}
var
ax,ay,bx,by,cx,cy,dx,dy:longint;
procedure ChangeEnd(var p1,p2:longint);
var
p3:longint;
begin
if p1>p2 then begin
p3:=p1;
p1:=p2;
p2:=p3;
end;
end;
procedure ChangeInterval(var m1,m2,n1,n2:longint);
var
t:longint;
begin
if m1>n1 then begin
t:=m1;
m1:=n1;
n1:=t;
t:=m2;
m2:=n2;
n2:=t;
end;
end;

begin
Read(ax,ay,bx,by,cx,cy,dx,dy);
if ay<>cy then WriteLn('­не має спільної області')
else begin
ChangeEnd(ax,bx); ChangeEnd(cx,dx);
ChangeInterval(ax,bx,cx,dx);
if bx else if bx=cx then WriteLn('точка ')
else WriteLn('відрізок')
end;
end.
Михальов Володимир (StarRover) 2013-10-03 15:51:18
Задача Demo_A

Два відрізка на площині задані координатами своїх вершин. Знайти спільну частину їх проекцій на вісь абсцис.
---------------------------------------------------
{Demo_A}
var
ax,ay,bx,by,cx,cy,dx,dy:longint;
procedure ChangeEnd(var p1,p2:longint);
var
p3:longint;
begin
if p1>p2 then begin
p3:=p1;
p1:=p2;
p2:=p3;
end;
end;
procedure ChangeInterval(var m1,m2,n1,n2:longint);
var
t:longint;
begin
if m1>n1 then begin
t:=m1;
m1:=n1;
n1:=t;
t:=m2;
m2:=n2;
n2:=t;
end;
end;

begin
Read(ax,ay,bx,by,cx,cy,dx,dy);
ChangeEnd(ax,bx); ChangeEnd(cx,dx);
ChangeInterval(ax,bx,cx,dx);
if bx else if bx=cx then WriteLn('0')
else if bx else WriteLn(Abs(dx-cx));
end.

Повернутися до уроку

Повернутися до перелiку уроків курсу

В системі: гості - (1); користувачі - (0)