ОТДАМ ВСЕ БАЛЛЫ, надобно нарисовать в PasalABC часы
ОТДАМ ВСЕ БАЛЛЫ, надо нарисовать в PasalABC часы
, в которых 3 стрелки, а в поле ввода, нужно ввести время, которое должно показываться на нарисованных часах, угол считать в градусах, а не в радианах, часы должны ходить
1 ответ
Игорь Файгер
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.
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.
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов