Program Grupul_radacinilor_din_unitate;
uses crt, graph, dos;
var
 gd,gm:integer;
 cx,cy,ex,ey,r,o,s,ls,i:word;
 i2, cl, k, inter:real;

begin
clrscr;
gd:=Detect;
//InitGraph(gd,gm,'');
SetSVGAMode(640,480,8,0);
SetWriteMode(1);
 ex:=getmaxx div 2;
 ey:=getmaxy div 2;
 r:=(ex+ey) div 3;
 inter:=0.005;  i2:=inter;
 k:=0;
 o:=1;
 GetTime(cx,cy,s,i);ls:=s+15;
repeat
 GetTime(cx,cy,s,i);
Circle(ex,ey,r);
Line(ex-r,ey,ex+r,ey);
Line(ex,ey-r,ex,ey+r);
 cx:=ex+round(r*cos(k)/2);
 cy:=ey+round(r*sin(k)/2);
 setcolor(trunc(k+i*$ffff/o));
 SetWriteMode(1);
Circle(cx,cy,r div 2); Circle(cx,cy,r div 2);
SetWriteMode(0);
Line(ex+2*(cx-ex),ey,ex,ey+2*(cy-ey));

k:=k+i2;
if (ls+60-s)mod 60<1 then begin
 inc(o); I2:=Inter*(o);
 ls:=(s+13)mod 60;
end;
if keypressed then begin
 case readkey of
  #72:inc(o);  #80:dec(o);
  #27:begin closeGraph; halt;end;
 end;
 if o=0 then o:=1;
 I2:=Inter*o;
end;
until false;
end.