Задержка на Pascal
помогите написать процедуру которaя делает задержку в секундах (минимум 0.01)
А чем Delay не устраивает?
Ни что так не ограничивает фантазию программиста, как компилятор...
-
- Сообщения: 296
- Зарегистрирован: 13 фев 2008, 20:10
- Откуда: Беларусь. Орша
- Контактная информация:
DELAY неустраивает скорее всего отсутствием модуля CRT в USES'aх
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
C_O_D_E писал(а):DELAY неустраивает скорее всего отсутствием модуля CRT в USES'aх
Да вот в том то и вопрос - то ли человек не знает такой процедуры, то ли все задание в том и состоит, чтобы её написать.
Ни что так не ограничивает фантазию программиста, как компилятор...
-
- Сообщения: 296
- Зарегистрирован: 13 фев 2008, 20:10
- Откуда: Беларусь. Орша
- Контактная информация:
MOTOCoder, мы забыли, что нужно еще высчитать задержку, и передать ее в качестве параметра.
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
C_O_D_E писал(а):MOTOCoder, мы забыли, что нужно еще высчитать задержку, и передать ее в качестве параметра.
В смысле перевести секунды в миллисекунды?
Врядли все так просто...
Ни что так не ограничивает фантазию программиста, как компилятор...
Процедура Delay вообще странно себя ведёт. На некоторых компах delay(100) это 0.1 с, на некоторых 1 с...
Ваши руки совершили идиотскую ошибку и будут оторваны!
[OK]
[OK]
Да, есть такое дело...
С современными компами Delay не дружит.
Да и вообще, эта задача попахивает работой с прерываниями...
С современными компами Delay не дружит.
Да и вообще, эта задача попахивает работой с прерываниями...
Ни что так не ограничивает фантазию программиста, как компилятор...
-
- Сообщения: 375
- Зарегистрирован: 31 авг 2007, 03:06
тогда можно вот так (точности отсчёта времени НЕТ!! причём, чем меньше время паузы, тем больше погрешность!!!!!!! - за счёт вычислений в теле процедуры!):
p.s. время задаётся в сотых секунды (т.е. 0.01 с ~= MyDelay(1) )
Добавлено
пока писал, обсуждение вона куда уже дошло - до прерываний.. так, глядишь и до программирования таймера высокой точности дойти может ;-)
Код: Выделить всё
procedure MyDelay(HundSecond : longInt);
var
Ticks : LongInt absolute 0:$46c;
begin
HundSecond:=round(HundSecond * 0.185) +Ticks;
repeat until (Ticks>HundSecond);
end;
Добавлено
пока писал, обсуждение вона куда уже дошло - до прерываний.. так, глядишь и до программирования таймера высокой точности дойти может ;-)
А не проще получить текущее время, сохранить его и потом ничего не делать, пока текущее время не превысит сохраненное плюс время задержки?
Тему переименовал
Тему переименовал
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.