Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2010, 21:02   #1
dimok5
Пользователь
 
Регистрация: 10.10.2010
Сообщений: 51
По умолчанию механические часы

Помогите пожалуйста составить программы, которая рисует механические часы на языке паскальABC. Нужно использовать процедуру delay.
dimok5 вне форума Ответить с цитированием
Старый 22.11.2010, 21:34   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Код:
repeat
cleardevice;
x:=200+sin(time)*100;
y:=200+cos(time)*100;
line(200,200,x,y);
time:=time+0.01;
delay(1000);
until keypressed;
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 22.11.2010, 22:01   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

помогите предполагает, что Вы что-то пытались делать и у Вас не получилось...
А так это называется - сделайте за меня..

ладно. Чисто по приколу переделал исходник, взятый, если не ошибаюсь, отсюда
Код:
program clock;
uses CRT, graphABC, Utils;
var x1,y1,xh,yh,xm,ym,xc,yc,gd,gm,X,Y,i,a:integer;
    n:array[0..12] of string;
    curTime : DateTime;
    s:string;
    
procedure ShowCurArrows(ShowColor : ColorType);
begin
  SetPenColor( ShowColor );
  xc:=round(X-180*cos(pi/180*(90+6*CurTime.Second)));
  yc:=round(Y-180*sin(pi/180*(90+6*CurTime.Second)));
  line(x,y,xc,yc);
  xm:=round(X-155*cos(pi/180*(90+6*CurTime.Minute)));
  ym:=round(Y-155*sin(pi/180*(90+6*CurTime.Minute)));
  line(x,y,xm,ym);
  xh:=round(X-115*cos(pi/180*(90+6*((CurTime.Hour mod 12)*5+ CurTime.Minute div 12))));
  yh:=round(Y-115*sin(pi/180*(90+6*((CurTime.Hour mod 12)*5+ CurTime.Minute div 12))));
  line(x,y,xh,yh);
end;

begin
n[1]:=' I'; n[2]:=' II'; n[3]:='III';
n[4]:='IV'; n[5]:='V'; n[6]:='VI';
n[7]:='VII'; n[8]:='VIII'; n[9]:='IX';
n[10]:='X'; n[11]:='XI'; n[12]:='XII';
X:=WindowWidth div 2;
Y:=WindowHeight div 2;
circle(X,Y,235);
a:=270;
for i:=1 to 60 do
  begin
   x1:=round(X-205*cos(pi/180*a));
   y1:=round(Y+205*sin(pi/180*a));
   a:=a+6;
   if (a-6) mod 30=0 then TextOut(x1-16,y1-18,n[12-(i div 5)])
   else
    begin
      circle(x1,y1,2);
    end;
  end;
  xh:=X; yh:=Y;
  xm:=X; ym:=Y;
  xc:=X; yc:=Y;
  circle(X,Y,3);
  circle(X,Y,6);
  circle(X,Y,9);
repeat
  CurTime := CurrentDateTime;
  ShowCurArrows( clBlack);

  delay(1000);
  
  ShowCurArrows( clWhite );
until keypressed;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часы в С++ voffka_C++ Помощь студентам 1 14.11.2010 21:29
Идущие часы ArtJuhn JavaScript, Ajax 5 12.11.2010 21:25
Цифровые часы Dayvil Паскаль, Turbo Pascal, PascalABC.NET 5 06.11.2009 16:15
Аналоговые часы skalt12 Общие вопросы Delphi 12 07.07.2009 15:01
Часы Bingam Vici Свободное общение 5 18.05.2009 14:50