![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
cooler |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 178 Пол: Мужской Репутация: ![]() ![]() ![]() |
Есть секундомер
Но что-то он сильно быстро бегает. В чём может быть проблема? Код uses crt; function Zero (i: integer): string; var s: string[2]; begin str (i, s); if i < 10 then s := '0' + s; Zero := s; end; procedure ShowTime (t: word); var mm, ss: word; begin mm := t div 60; { целое кол-во при делении на 60 секунд } ss := t mod 60; {остаток от деления на 60 секунд } write (mm:2, ':', Zero(ss): 2); end; var elapsed: word; {истёкшее время} begin elapsed := 0; while Not Keypressed do begin inc (elapsed); delay (1000); {1 sec = 1000 msec} clrscr; ShowTime (elapsed); end; end. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
cooler, возможно вот такое решение проблемы (только для TP !!!):
{$M $1000,0,0}(вкратце - пишешь свой обработчик прерывания таймера, который вызывается раз в 55 миллисекунд, поэтому если обрабатывать каждый второй тик, то время увеличивается на 11 сотых секунды, а потом уже проверяешь, если больше 100 сотых, то увеличиваешь секунды, потом - минуты, потом - часы) |
![]() ![]() |
![]() |
Текстовая версия | 2.08.2025 8:24 |