На многих серверах по проверке олимпиадных заданий пишется максимальное время на прохождение каждого теста, например 0.1 с. Есть 2 вопроса:
1. Ведь разные по мощности компьютеры выполнят программу за разное время
2. Есть ли средства Паскаль (хоть в какой-нибудь среде) для определения времени выполнения программы?
Другие языки программирования и технологии
Время работы программы в Паскаль
нет таких средств. есть функции, которые получают время милисикундах, используя их можно получить фактическое время работы, но спрогнозировать нет. Ну я о таких точно не слышал.
Игорь Толкушкин
И как тогда на олимпиадах это определяют?
Игорь Толкушкин
Спасибо
Время выполнения там обычно дается на пару порядков больше необходимого, т. е. если у тебя не слишком тупорылый алгоритм, ты в него гарантированно уложишься.
Для проверки можно запомнить текущее время в начале выполнения программы и в конце, а затем вычесть одно из другого, конвертировать в строку и вывести на экран.
Для проверки можно запомнить текущее время в начале выполнения программы и в конце, а затем вычесть одно из другого, конвертировать в строку и вывести на экран.
Игорь Толкушкин
Ага... Уложишься, когда надо перебирать тысячи путей по тысячам путей. Или теорию графов учить...)))
Это там чепуха написана. Время выполнения операции на современном компьютере - порядка одной миллиардной доли секунды, это сколько же в программе должно быть действий, чтобы она длилась 0,1 с? А Windows работает в многозадачном режиме, так что вообще функции определения времени работы программы будут определять время работы всех запущенных вместе с данной программ, в том числе служб Windows, вместе.
Николай Ляпин
Я тут делал одну задачку на паскале - минут 30 тарабанила))
Игорь Толкушкин
Ну, когда приходится сортировать массивы типа Longint...
посмотри это
Модуль Timers
--------------------------------------------------------------------------------
Таймеры позволяют выполнять указанное действие периодически через равные промежутки времени. Процедуры и функции для управления таймерами содержатся в модуле Timers.
Функция CreateTimer(ms,TimerProc) создает таймер, выполняющий каждые ms миллисекунд действие, содержащееся в процедуре без параметров TimerProc, и возвращает его целочисленный описатель. Созданный таймер сразу же запускается.
Функция CreateTimerExt(ms,TimerProcExt) создает таймер, выполняющий каждые ms миллисекунд действие, содержащееся в процедуре с одним целочисленнным параметром TimerProcExt, и возвращает его целочисленный описатель. Созданный таймер сразу же запускается. Целочисленный параметр, передаваемый процедуре TimerProcExt, хранит описатель таймера, вызвавшего эту процедуру.
Процедура StartTimer(n) запускает таймер с описателем n.
Процедура StopTimer(n) останавливает таймер с описателем n.
Процедура SetTimerInterval(n,ms) устанавливает у таймера с описателем n интервал в ms миллисекунд.
Функция TimerInterval(n) возвращает интервал у таймера с описателем n.
Функция TimerEnabled(n) возвращает True, если таймер запущен, и False в противном случае.
Процедура DestroyTimer(n) разрушает таймер с описателем n.
Модуль Timers
--------------------------------------------------------------------------------
Таймеры позволяют выполнять указанное действие периодически через равные промежутки времени. Процедуры и функции для управления таймерами содержатся в модуле Timers.
Функция CreateTimer(ms,TimerProc) создает таймер, выполняющий каждые ms миллисекунд действие, содержащееся в процедуре без параметров TimerProc, и возвращает его целочисленный описатель. Созданный таймер сразу же запускается.
Функция CreateTimerExt(ms,TimerProcExt) создает таймер, выполняющий каждые ms миллисекунд действие, содержащееся в процедуре с одним целочисленнным параметром TimerProcExt, и возвращает его целочисленный описатель. Созданный таймер сразу же запускается. Целочисленный параметр, передаваемый процедуре TimerProcExt, хранит описатель таймера, вызвавшего эту процедуру.
Процедура StartTimer(n) запускает таймер с описателем n.
Процедура StopTimer(n) останавливает таймер с описателем n.
Процедура SetTimerInterval(n,ms) устанавливает у таймера с описателем n интервал в ms миллисекунд.
Функция TimerInterval(n) возвращает интервал у таймера с описателем n.
Функция TimerEnabled(n) возвращает True, если таймер запущен, и False в противном случае.
Процедура DestroyTimer(n) разрушает таймер с описателем n.
Игорь Толкушкин
Спасибо
Похожие вопросы
- Программа на паскале! Помогите(бесплатно)
- Нужно написать программы в Паскале! Массивы! Срочно! Помогите!
- Нужно написать программу на паскале
- Срочно!!! Не займет много времени!!! Ломаю голову над вопросом, Помогите!!! Программа. Pascal. Паскаль
- Написать программу в Паскале для построения графика функций. К программе желательно составить алгоритм.
- Программа в Паскале
- Помогите составить программу на паскале!
- Объясните как работает программа в паскаль!!!
- помогите с программами в паскале
- найти все семизначные числа, которые делятся на 15 и записываются только цифрами 0 и 1. Составить программу на паскале