В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
Шнуров
Шнуров
18.03.2020 07:04 •  Информатика

Все , надо нарисовать в pasalabc часы , в которых 3 стрелки, а в поле ввода, нужно ввести время, которое должно показываться на нарисованных часах, угол считать в градусах, а не в радианах, часы должны ходить

Ответ:
Moldir94
Moldir94
18.09.2020 16:23
Uses graphAbc;

const
 w = 600;
 r = 300;

dl = 40;
sl = 250;
ml = 200;
hl = 150;

var
 h,m,s: integer;
 i:integer;
 x,y: integer;
 g: real;
 
begin
 setwindowsize(w,w);
 read(h,m,s);
 h := h mod 12;
 setpenwidth(2);
 circle(w div 2, w div 2, r);
 for i := 0 to 59 do
   begin
   g := (i*360/60 - 90) * pi/180;
   if i mod 12 = 0 then
     begin
     x := w div 2 + round((r - dl) * cos(g));
     y := w div 2 + round((r - dl) * sin(g));
     end
   else
     begin
     x := w div 2 + round((r - dl div 3) * cos(g));
     y := w div 2 + round((r - dl div 3) * sin(g));
     end;
   line(x,y,w div 2 + round(r*cos(g)),w div 2 + round(r*sin(g)))
   end;
 setbrushcolor(clwhite);  while true do
   begin
   setpencolor(clwhite);
   circle(w div 2, w div 2, sl);
   setpencolor(clblack);
      setpenwidth(1);
   g := (6*s - 90) * pi/180;
   x := w div 2 + round(sl * cos(g));
   y := w div 2 + round(sl * sin(g));
   line(w div 2, w div 2, x, y);
      setpenwidth(2);
   g := ((60*m + s)/10 - 90) * pi/180;
   x := w div 2 + round(ml * cos(g));
   y := w div 2 + round(ml * sin(g));
   line(w div 2, w div 2, x, y);

   setpenwidth(3);
   g := (360*(60*60*h + 60*m + s)/12/60/60 - 90) * pi/180;
   x := w div 2 + round(hl * cos(g));
   y := w div 2 + round(hl * sin(g));
   line(w div 2, w div 2, x, y);
      s := s + 1;
   if s = 60 then
     begin
     m := m + 1;
     s := 0;
     end;
   if m = 60 then
     begin
     h := (h + 1) mod 12;
     m := 0
     end;

   sleep(1000)
   end;
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?