{ Программа рисует секундную стрелку используя знач. внутр. таймера Автор: Богданов В.С., programming@mail.ru } program seclock; uses graph,crt; const radius=200; var grDriver,grMode,ErrCode:Integer; time,MidX,MidY:word; timer:longint absolute $0040:$006C; sec:longint; procedure DrawArrow(t,c:word); var x,y:word; begin x:=MidX+round(radius*cos(((60-t)*Pi)/30+pi/2)); y:=Midy-round(radius*sin(((60-t)*Pi)/30+pi/2)); setcolor(c); line (midX,midY,x,y); end; begin grDriver := Detect; InitGraph(grDriver, grMode,'N:\BP\BGI'); ErrCode := GraphResult; if ErrCode <> grOk then begin Writeln('Ошибка инициализации графики:', GraphErrorMsg(ErrCode)); halt(1); end; MidX:=GetMaxX div 2; MidY:=GetMaxY div 2; time:=0; setcolor(7); circle(midx,midy,radius+30); DrawArrow(time,7); while not(KeyPressed) do begin sec:=round(timer+18.2); while (timer59 then time:=0; DrawArrow(time,7); end; end.