Помощь - Поиск - Пользователи - Календарь
Полная версия: часы
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
kasak
Как зациклить прогу чтобы она показывала точное время?

Код

program chasi;
uses dos;
var h, m, s, s10:word;
begin
writeln('the time is now:');
gettime(h, m, s, s10);
writeln(h:2,' hours ',m:2,' minutes ',s:2,' seconds');
writeln;
writeln('press ENTER to exit');
writeln;
writeln('visit us at http://karyna.h12.ru');
readln;
end.
volvo
kasak
Вот так:
Код

program chasi;
uses crt, dos;
var h, m, s, s10:word;
begin
clrscr;
gotoxy(5, 1); writeln('ESCAPE to exit timer...');
gotoxy(5, 2); writeln('the time is now:');
repeat
gettime(h, m, s, s10);
gotoxy(5, 5); writeln(h:2,' hours ',m:2,' minutes ',s:2,' seconds');
writeln;
if keypressed then
 if readkey = #27 then break;
until false;

writeln('press ENTER to exit');
writeln;
writeln('visit us at http://karyna.h12.ru');
readln;
end.
kasak
Ой, как сложно, а как это работает?
volvo
kasak
Прежде, чем выложить на форум, я тестирую программы. angry.gif
kasak
Так всё замечательно работает, спасибо, а кк это работает то? Что это за хитрые функции?
volvo
Код
if keypressed then

проверяет, было ли нажато что-нибудь на клавиатуре. Если да, то возвращает True, иначе False.

Код
if readkey = #27 then break;

Если что-то было нажато, то Readkey возвращает код нажатой клавиши. (#27 - это код Escape). Так и делается - если нажатая клавиша имеет код #27, то выйти из цикла (Break - выход из цикла)

Ну а процедура gotoxy(x, y) просто заставляет следующий оператор Writeln печатать сообщение не там, где закончилось предыдущее, а начиная с позиции (x, y)
kasak
о, уже попонятнее, спасибо большое. А вот я ещё слышал, что можно в паскале строить таблицы, используя такие символы, обозначая цифрами, но дли ннющий ряд из цифр, это как-то нерационально, а можно ли без цифр, сразу вставлять паки и углы, какие надо???
volvo
Можно. Держишь ПРАВЫЙ Alt и на цифровой клавиатуре набираешь код. (например, 196 - одиночная горизонтальная черта, 205 - двойная...) Хотя какая разница, если поставишь числа (#196 или #205), за тебя это сделает компилятор...
kasak
да, именно это я и хотел узнать, спасибо!
xds
С минимальными модификациями:
Код

program chasi;
{$B-}
uses dos,Crt;
var h, m, s, s10:word;
begin
writeln('press ENTER to exit...');
writeln;
writeln('the time is now:');
repeat
 gettime(h, m, s, s10);
 write(h:2,' hours ',m:2,' minutes ',s:2,' seconds',#13);
until KeyPressed and (ReadKey = #13);
writeln;
writeln;
writeln('visit us at http://karyna.h12.ru');
readln;
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.