Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2011, 13:29   #1
Shift_sk
Форумчанин
 
Регистрация: 20.11.2010
Сообщений: 221
По умолчанию Таймер

У меня есть небольшой вопрос!Нужен таймер на выполнение программы.Чтобы допустим если программа не выполняеться за 1 секунду она вылетала.Или чтобы выводило на экран сколько выполнялась эта программа!Очень надо, если кто-то знает напишите!
www.bezperepl.at.ua
Код:
...

Последний раз редактировалось Shift_sk; 09.01.2011 в 13:31.
Shift_sk вне форума Ответить с цитированием
Старый 09.01.2011, 13:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А что программа то делает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.01.2011, 13:44   #3
Shift_sk
Форумчанин
 
Регистрация: 20.11.2010
Сообщений: 221
По умолчанию

А программа делает треугольник паскаля!
Код:
var a:array[1..100,1..100] of int64;
    i,j,n,k,r,l,t:integer;     
    f,f2:text;
begin
assign(f2,'in.txt');
assign(f,'out.txt');
reset(f2);
rewrite(f);
read(f2,n);
k:=n*2-1;
a[1,n]:=1;
r:=n-1;
l:=n+1;
while r>0 do begin
              for i:=2 to n do begin
                                t:=r;
                                for j:=r to l do begin
                                                  if a[i,l]=0 then begin
                                                                    a[i,l]:=1;
                                                                    a[i,r]:=1;
                                                                   end;
                                                  if r+2<l then begin
                                                                 a[i,r+2]:=a[i-1,r+1]+a[i-1,r+3]; r:=r+2;
                                                                end;

                                                  end;
                                r:=t;
                                r:=r-1;
                                l:=l+1;
                                end;
              end;
 for i:=1 to n do begin
                   for j:=1 to k do
                    if a[i,j]=0 then write(f,' ')
                     else
                      write(f,a[i,j],' ');
                    writeln(f);
                   end;
 close(f);
 close(f2);
end.
www.bezperepl.at.ua
Код:
...
Shift_sk вне форума Ответить с цитированием
Старый 09.01.2011, 13:56   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Хм...
Перед циклом получай время с помошью GetTime - она даст секунду
И ее же используй для получения следующей секунды в цикле for j:=r to l do begin
Сравнивай секунды, если они разнятся более чем на 1 сек, выходи из программы.
Смысл понятен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.01.2011, 14:05   #5
Shift_sk
Форумчанин
 
Регистрация: 20.11.2010
Сообщений: 221
По умолчанию

Да я эту фишку знаю!
дело в том что в ABC нет uses dos)
в turbo есть а там нет!а привык равотать в ABC !!!
www.bezperepl.at.ua
Код:
...
Shift_sk вне форума Ответить с цитированием
Старый 09.01.2011, 15:21   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А функция Time в нем есть? Если да используй ее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.01.2011, 17:40   #7
Vaigard
Delphi and (not C)
Форумчанин
 
Аватар для Vaigard
 
Регистрация: 04.12.2010
Сообщений: 117
По умолчанию

Через одну секунду треугольник Паскаля будет выходить далеко за пределы экрана, или будет некорректно отображаться, поэтому тут я не вижу смысла в подсчете времени.
<--Жми на весы
Vaigard вне форума Ответить с цитированием
Старый 10.01.2011, 00:08   #8
Shift_sk
Форумчанин
 
Регистрация: 20.11.2010
Сообщений: 221
По умолчанию

да дело даже не в треугольнике.На оллимпиадах всегда дают задачи...и обязательно условие что время выполнение программы не превышало 1-2 секунды.Для этого и нужен таймер)
www.bezperepl.at.ua
Код:
...
Shift_sk вне форума Ответить с цитированием
Старый 10.01.2011, 00:30   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
и обязательно условие что время выполнение программы не превышало 1-2 секунды.Для этого и нужен таймер)
ну так всё с точностью до наоборот!
Программа, которая тестирует Ваше решение засекает время.
Запускает решение.
Проверяет, сколько времени прошло.
Если больше, чем отводилось - ответ, что не уложились в заданное время.

p.s. впрочем, не исключено, что тестирующая программа умеет снимать слишком долгие (или зависшие в бесконечном цикле) программы. Но в любом случае, это делается ВНЕШНИМ по отношению к Вашему решению кодом.

p.p.s. да, к тому же, кто Вам сказал, что тестирующая программа написана на Pascal ABC ?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.01.2011, 15:02   #10
Shift_sk
Форумчанин
 
Регистрация: 20.11.2010
Сообщений: 221
По умолчанию

Не у кого тестора нет для паскаля?
www.bezperepl.at.ua
Код:
...
Shift_sk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
таймер antonov Помощь студентам 6 08.11.2010 19:17
Таймер vik85 Microsoft Office Excel 5 17.06.2010 07:10
Таймер dnskts Помощь студентам 5 11.06.2010 13:38
Таймер Ins1De Общие вопросы C/C++ 2 26.05.2010 22:29
таймер ZET78 Общие вопросы C/C++ 2 24.05.2010 12:56