Наберите и протестируйте программу, имитирующую часы:
Program Clock;
uses GraphABC;
const
wndRad = 250;
radPercents = 80;
var
clkRad: integer
minutes, seconds: integer;
procedure Init;
begin
SetWindowSize(2*wndRad,2*wndRad);
{ Радиус циферблата}
clkRad:= Round(radPercents/100
*wndRad);
end;
procedure DrawMarks;
var i: integer;
begin
SetBrushColor(clBlue);
for i:=0 to 11 do
Circle(wndRad+Round(clkRad*cos(2*3.14*i/12)),
wndRad+Round(clkRad*sin(2*3.14*i/12)),10);
end;
procedure Tick;
begin
inc(seconds);
if seconds = 60 then
begin
seconds:= 0;
inc(minutes);
if minutes = 60 then minutes:= 0;
end;
end;
procedure DrawArrows;
var x,y: integer;
begin
x:=wndRad+Round(clkRad*sin(2*3.14*seconds/60));
y:=wndRad-Round(clkRad*cos(2*3.14*seconds/60));
Line(wndRad, wndRad, x, y);
x:=wndRad+Round(0.8*clkRad*
sin(2*3.14*minutes/60));
y:=wndRad-Round(0.8*clkRad*
cos(2*3.14*minutes/60));
Line(wndRad, wndRad, x, y);
end;
var i: integer;
begin
Init;
while True do
begin
Tick;
ClearWindow;
DrawMarks;
DrawArrows;
sleep(100);
end;
end.