Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal]изобразить часы


Автор: Miila 28.12.2007, 12:06
задача из лабораторной:

Изобразить на экране часы с часовой и минутной стрелками, вращающимися в одном направлении.

HELP!!!

Автор: Miila 29.12.2007, 10:03
Ну сделайте же бедной студентке подарок на НГ...Где ты, Дедушка Мороз??? АУ!!!!

Автор: orthrus 29.12.2007, 11:41
Я тут  smile 
вот нечто отдаленно напоминающее часы:

Код

USES graph,crt;
VAR
   gd,gm:integer;
   c_x,c_y,e_x_m,e_y_m,e_x_s,e_y_s,radius:integer;
   x,y,i,j:integer;
   deg_m,deg_s:integer;
function degtorad(deg:real):real;
begin
  degtorad := (Pi * deg) / 180;
end;
BEGIN
   gd := DETECT;
   InitGraph(gd,gm,'..\bgi\');
   c_x := GetMaxX div 2;
   c_y := GetMaxY div 2;
   radius := 100;
   deg_m := 0;
   while not KeyPressed do
   begin
        SetColor(15);
        Circle(c_x,c_y,radius);
        e_x_m := trunc(c_x + (radius - 10)*sin(degtorad(deg_m)));
        e_y_m := trunc(c_y - (radius - 10)*cos(degtorad(deg_m)));
        deg_s := 0;
        while (deg_s <= 360) do
        begin
          SetColor(11);
          Line(c_x,c_y,e_x_m,e_y_m);
          SetColor(13);
          e_x_s := trunc(c_x + (radius - 10)*sin(degtorad(deg_s)));
          e_y_s := trunc(c_y - (radius - 10)*cos(degtorad(deg_s)));
          Line(c_x,c_y,e_x_s,e_y_s);
          for i:=1 to 32767 do for j:=1 to 2767 do ;
          SetColor(0);
          Line(c_x,c_y,e_x_s,e_y_s);
          deg_s := deg_s + 30;
        end;
        SetColor(0);
        Circle(c_x,c_y,radius);
        Line(c_x,c_y,e_x_m,e_y_m);
        deg_m := deg_m + 30;
        if deg_m > 360 then deg_m := 30;
   end;
   ReadLn;
END.

Автор: Miila 29.12.2007, 12:42
orthrus, СПАСИБО, Дедушка Мороз!!!!!! СПАСИБО!!!

Добавлено через 2 минуты и 48 секунд
мне бы еще блок схемуsmile)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)