REM Start of BASIC! Program REM АНАЛОГОВЫЕ ЧАСЫ REM с КАЛЕНДАРЕМ REM UVG !Включение графического режима  GR.OPEN 255,255,255,255 GR.ORIENTATION 1 GR.SCREEN w,h gr.set.antialias 0 gr.color 255,255,255,0,0 for f=0 to 128 gr.line fon,0,f*10,h,f*10 gr.line fon,0,f*10+1,h,f*10+1 gr.line fon,f*10,0,f*10,h gr.line fon,f*10+1,0,f*10+1,h next f gr.color 255,255,255,255,1 gr.circle fon,w/2,h/2,250 for c=0 to 25 %step -1 gr.color c*10,255,0,0,0 gr.circle f1,w/2,h/2,250-c next c gr.color 255,255,255,255,1 gr.rect p1,w-100,h-100,w-600,h-200 gr.color 255,0,0,255,0 gr.rect p2,w-100,h-100,w-600,h-200 !Проинициализируем начальные точки стрелок XS=0:YS=0:XM=0:YM=0:XCH=0:YCH=0 ! Читаем системное время  TIME year$, month$, day$, hour$, minute$, second$, weekday, isdst ! Определяем, который сейчас час  Chas = VAL(MID$(hour$, 1, 2))  ! А если больше 12, то высчитываем насколько больше  IF Chas > 12 THEN Chas = Chas - 12  ! Теперь смотрим, сколько минут прошло с начала часа  Min = VAL(MID$(minute$, 1, 2))  ! Теперь секунд и превращаем строчку времени в цифры: часы, минуты, секунды  sek = VAL(MID$(second$, 1, 2))  ! Разметка часов - 12 штук  FOR I = 0 TO 360 STEP 30  ! Вычисление координат X и Y меток, переводя при этом градусы в радианы  X = 190 * SIN(I / 180 * 3.14)  Y = 190 * COS(I / 180 * 3.14)  ! Исходная точка в левом верхнем углу рисуем эти точки  gr.color 255,0,0,0,1 gr.circle nc1,w/2+X,h/2-Y,5 NEXT I for s=0 to 360 step 6 x=190*sin(s/180*3.14) y=190*cos(s/180*3.14) gr.circle nc2,w/2+x,h/2-y,1 next s for q=0 to 360 step 90 x=190*sin(q/180*3.14) y=190*cos(q/180*3.14) gr.circle nc3,w/2+x,h/2-y,10 next q ! Показ часов, цикл до нажатия клавиши  cikl: ! Количество секунд, прошедших после полуночи, и добавляем секунду  T = TIMER + 1  ! Ждем пока эта секунда пройдет  Z: IF T > TIMER GOTO Z  ! Добавляем к тем еще одну  sek = sek + 1  ! Если больше 60, прибавляем минуту, а секунды превращаем в 1  IF sek > 60 THEN sek = 1: Min = Min + 1 ! Количество минут, и делаем то же с часом  IF Min > 60 THEN Chas = Chas + 1  !С часами, если их больше 12  IF Chas > 12 THEN Chas = 0: sek = 1: Min = 0  ! Выключаем цвет, ! рисуем стрелки по текущим координатам,  ! чтобы затереть их старое положение  gr.color 255,255,255,255 GR.LINE Ls,w/2, h/2,w/2 + XS, h/2 - YS GR.LINE Ls,w/2, h/2,w/2+ XM, h/2 - YM GR.LINE Ls,w/2, h/2,w/2 + XCH, h/2- YCH ! Вычисляем новые положения концов стрелок для секундной, минутной и часовой  XS = 180 * SIN(sek * 6 / 180 * 3.14)  YS = 180 * COS(sek * 6 / 180 * 3.14)  XM = 160* SIN(Min * 6 / 180 * 3.14)  YM = 160* COS(Min * 6 / 180 * 3.14)  XCH = 140 * SIN((Chas * 30 + (Min / 2)) / 180 * 3.14) YCH = 140 * COS((Chas * 30 + (Min / 2)) / 180 * 3.14)  ! Включаем цвет, свой для каждой стрелки  gr.COLOR 255,255,0,0 ! Рисуем стрелки из центра в точки, согласно вычисленным координатам  GR.LINE L1,w/2, h/2,w/2 + XS, h/2 - YS gr.COLOR 255,0,0,0 GR.LINE L2,w/2, h/2,w/2 + XM, h/2 - YM gr.COLOR 255,0,0,0 GR.LINE L3,w/2, h/2,w/2 + XCH, h/2 - YCH ! Если никакая клавиша не нажата, цикл показа часов повторяется.  gr.text.size 100 gr.text.draw K1,w-600,h-110,day$+"."+month$+"."+year$ gr.render pause 1000 %настройка точности goto cikl