Код:
uses crt,graph;
var xc,yc,x,y,d1,d2,r1,r2,d:integer;
k:char;
procedure Fig(x,y,c:integer);
begin
setcolor(c);
r1:=10;r2:=20;d1:=r2+r1;
d2:=r2+2*r1;
circle(x,y,r2);
circle(x-r2-r1,y,r1);
circle(x,y-r2-r1,r1);
circle(x+r2+r1,y,r1);
circle(x,y+r2+r1,r1);
rectangle(x-d1,y-d1,x+d1,y+d1);
rectangle(x-d2,y-d2,x+d2,y+d2);
line(x-d2,y+d2,x+d2,y-d2);
line(x-d2,y-d2,x+d2,y+d2);
end;
begin
initgraph(xc,yc,'');
xc:=getmaxX div 2;
yc:=getmaxY div 2;
outtextXY(xc-80,20,'Upravlenie - Strelki');
outtextXY(xc-50,40,'Exit - Esc');
x:=xc;y:=yc;
Fig(x,y,12);
repeat
if keypressed then
begin
k:=readkey;
if k=#80 then
begin
delay(100);
Fig(x,y,0);
if y>getmaxY-d2-10 then d:=0
else d:=10;
y:=y+d;
Fig(x,y,12);
end;
if k=#72 then
begin
delay(100);
Fig(x,y,0);
if y<2*d2+10 then d:=0
else d:=10;
y:=y-d;
Fig(x,y,12);
end;
if k=#77 then
begin
delay(100);
Fig(x,y,0);
if x>getmaxX-d2-10 then d:=0
else d:=10;
x:=x+d;
Fig(x,y,12);
end;
if k=#75 then
begin
delay(100);
Fig(x,y,0);
if x<d2+10 then d:=0
else d:=10;
x:=x-d;
Fig(x,y,12);
end;
if k=#27 then exit;
end;
until k=#27;
end.
а эта как вам?правилна ли?почему то ошибка выходит,про деление на ноль.-Error 200: by zero