IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Часы
Pascal
сообщение 8.05.2004 14:56
Сообщение #1





Группа: Пользователи
Сообщений: 5

Репутация: -  0  +


Подскажите, как сделать часы на Паскале, лучше со стрелками. Очень надо! smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Serega
сообщение 8.05.2004 21:31
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской

Репутация: -  0  +


Если все лишнее убрать, то получится то, что тебе надо. ;)
Код

program clock;
uses crt,graph,dos;
var gb,gm,R:integer;x,y,x1,y1,u1,u,x2,y2,u2:real;
   i:integer;
   s:string[2];
   h,m,c,d,c1:word;
begin

 gb:=detect;
 initgraph(gb,gm,'c:\bp\bgi');

 R:=80;x:=320;y:=240;
    x1:=320;y1:=240;u:=-pi/2;
    x2:=320;y2:=240;

 setfillstyle(1,6);
 bar(0,300,640,480);

 setfillstyle(10,2);
 bar(0,0,640,300);

 setfillstyle(1,7);
 setcolor(7);
 sector(250,150,35,215,30,30);
 sector(390,150,325,360,30,30);
 sector(390,150,0,143,30,30);
 setlinestyle(0,0,3);
 line(250,150,270,170);
 line(390,150,370,170);
 bar(305,120,335,125);
 line(320,125,320,170);
 setlinestyle(0,0,1);
 sector(320,360,0,180,60,40);
 setfillstyle(1,6);setcolor(6);
 fillellipse(320,370,40,25);
 setfillstyle(1,7);
 fillellipse(320,240,R+20,R+20);
 setbkcolor(0);

 for i:=1 to 12 do
  begin
   u:=u+pi/6;
   x:=(R+10)*cos(u)+317;y:=(R+10)*sin(u)+237;
   str(i,s);
   outtextxy(round(x),round(y),s);
 end;

 for i:=1 to 60 do
  begin
   u:=u+pi/30;
   x:=(R+17)*cos(u)+320;y:=(R+17)*sin(u)+240;
   putpixel(round(x),round(y),1);
  end;

 for i:=1 to 12 do
  begin
   u:=u+pi/6;
   x:=(R+17)*cos(u)+320;y:=(R+17)*sin(u)+240;
   setcolor(1);
   setfillstyle(1,7);
   fillellipse(round(x),round(y),2,2);
   circle(round(x),round(y),2);
  end;
repeat
 gettime(h,m,c,d);
 if c1<>c then
  begin c1:=c;
 setcolor(7);
 line(320,240,round(x),round(y));
 line(320,240,round(x1),round(y1));
 setlinestyle(0,0,3);
 line(320,240,round(x2),round(y2));

 x2:=(R-23)*cos(u2)+320;y2:=(R-30)*sin(u2)+240;
 setcolor(9);
 line(320,240,round(x2),round(y2));
 setlinestyle(0,0,1);

 x1:=(R-15)*cos(u1)+320;y1:=(R-15)*sin(u1)+240;
 setcolor(1);
 line(320,240,round(x1),round(y1));

 x:=(R)*cos(u)+320;y:=(R)*sin(u)+240;
 setcolor(4);
 line(320,240,round(x),round(y));

 setcolor(4);
 setfillstyle(1,4);
 fillellipse(320,240,3,3);
 u:=(c+45)*pi/30;
 u1:=(m+45)*60*pi/1800;
 u2:=(h*5+m/15+45)*3600*pi/108000;
end;
until keypressed;
closegraph;
end.

По-моему это надо отправить в "Задачи"


--------------------
Не могу сидеть, когда другие работают.
Пойду полежу.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Pascal   Часы   8.05.2004 14:56
virt   тебе татушка нужна??? а так есть системный таймер...   8.05.2004 16:31
Serega   Если все лишнее убрать, то получится то, что тебе ...   8.05.2004 21:31
Pascal   Serega Подскажи, где можно взять модуль dos.   9.05.2004 15:49
trminator   Модуль DOS -- встроенный модуль Паскаля (в Borland...   9.05.2004 18:16
Pascal   Спасибо, у меня ещё один вопрос: где-нибудь можно ...   10.05.2004 10:44
HelpAusHeaven   Какие именно тебе нужны исходники? Тебе же привели...   11.05.2004 2:53
Pascal   Часы с этим кодом у меня бегают как бешеные.   11.05.2004 14:09
BlackShadow   А ты им успокоительное синсталлируй :) Пардон за...   11.05.2004 14:36
virt   Pascal а ты перед gettime поставь delay(100...   11.05.2004 15:58
BlackShadow   virt, а я бы Delay и не советовал. Работает он сей...   11.05.2004 16:26
FreeMan   вместа дэлая юзай системный таймер по адресу ...   11.05.2004 16:40
Pascal   Ну вроде заработало. Спасибо всем! Тему можно ...   11.05.2004 20:43
Человечище   Нет!!! Тему закрывать нельзя. Может ...   19.05.2004 16:11
Atos   Для 1. надо воспользоваться тем фактом, что 11 точ...   22.05.2004 7:32
Гость   а может и мне поможете? у нас в школе началось про...   14.03.2007 20:05
Артемий2   Но он у тебя каждый раз должен просто отсчет впер...   14.03.2007 20:26
Артемий2   немного подделал по твоему наброску..Если не очень...   14.03.2007 21:22


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 6:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"