күрделетуіңізге болады. Программадан шығу үшін кез келген пернені басыңыз.
Uses Graph, CRT;
var
d,r,r1,r2,rr,k, x1,y1,x2,y2,x01,y01: Integer; Xasp,Yasp : Word;
begin
{Графиканы іске қосамыз} d:=detect;InitGraph(d, r,''); k:=GraphResult;
if k <> grOK then WriteLn(GraphErrorMSG(k))
else
begin
{Экран көлемі мен жақтаулар қатынасын анықтаймыз}
x1:=GetMaxX div 2;
y1:=GetMaxY div 2; GetAspectRatio(Xasp, Yasp); {Радиусты есептейміз:} r:=round(3*GetMaxY*Yasp/8/Xasp); r1:=round(0.9*r);{Сағат бөліктері}
r2:=round(0.95*r);{Минут бөліктері} {Циферблатты бейнелейміз} Circle(x1,y1,r);{Бірінші сыртқы дөңгелек} Circle(x1,y1,round(1.02*r) );{Екінші дөңгелек}
for k := 0 to 59 do {Циферблат бөліктері} begin
if k mod 5=0 then
y0l:=y1-Round(rr*Xasp*cos(2*pi*k/60)/ Yasp);
x2:=x1+Round(r*sin(2*pi*k/60));
y2:=y1-Round(r*Xasp*cos(2*pi*k/60)/Yasp); Line(x01,y01,x2,y2) {Бөліктерді шығарамыз}
end;
{Стрелкаларды шығаруға дайындаймыз} SetWriteMode(XORPut); SetLineStyle(SolidLn,0,ThickWidth);
{Бір сағаттағы минут санауышы} {k = минуты}
r:=0;
{Стрелкаларды шығару циклы}
repeat
for k:=0 to 59 do
if not KeyPressed then begin
{Сағат стрелкаларының координаталары}
x2:=x1+Round(0.85*r1*sin(2*pi*r/60/12));
y2:=y1-Round(0.85*r1*Xasp*cos(2*pi*r/60/12)/ Yasp);
{Минут стрелкаларының координаталары }
x01:=x1+Round(r2*sin(2*pi*k/60));
y01:=y1-Round(r2*Xasp*cos(2*pi*k/60)/
Yasp);
{Стрелкаларды бейнелейміз}
Line(x1,y1,x2,y2);
Line(x1,y1,x01,y01);
Delay(100);{Нақты жылдамдықты көрсету
үшін кешігу 60000 болуы керек} {Стрелкаларды өшіру үшін оларды тағы да шығарамыз!}
Line(x1,y1,x01,y01);
Line(x1,y1,х2,у2);
{Сағаттағы минут санауышын түзетіп, өсіреміз} inc(r);
if r=12*60 then r:=0
end