3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108
1

Определить время выполнения программы

16.03.2010, 16:47. Показов 40024. Ответов 27
Метки нет (Все метки)

Как в рабочую программу вставить подсчёт время её выполнения? мне нужно ., чтобы программа вконце выводила время, за которое она выполнила все действия. я слышала, что это можно делать с помощью модуля времени.. // если нужно могу выложить сюда текст программы.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.03.2010, 16:47
Ответы с готовыми решениями:

Нужно посчитать время выполнения программы
сделать через функционал pascal abc, или в коде вывести как, подскажите

Определить, на сколько процентов сократилось время необходимое для выполнения работы
Производительность труда при выполнении некоторой работы повысилась на 40%. На сколько процентов...

Не могу вставить процедуру "время выполнения программы"
Как в рабочую программу вставить подсчёт время её выполнения? мне нужно, чтобы программа в конце...

Определить, сколько элементов массива будет <0 после выполнения фрагмента программы
For n:=1 to x+1 do For k:=1 to n do Begin A:=A-1; ...

27
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108
18.03.2010, 16:03  [ТС] 2
как в мою программу вписать функцию , которая считает время выполнения программы/?
вот программа
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Program Tower_of_hanoi;
 
uses CRT;
 
procedure Hanoi (n : integer; x, y, z : char);
begin
     if n <> 0 then
     begin
          Hanoi (n - 1, x, z, y);
          writeLn ('Перемещаем диск ', n, ' c  ',  x,  ' на ', y);
          Hanoi (n - 1, z, y, x)
     end
end;
  procedure GetTime(var Hour, Minute, Second, Second100:word);
var
   disk : integer;
begin
     ClrScr;
     write ('Сколько дисков ?');
     readLn (disk);
     Hanoi (disk, 'X', 'Y', 'Z')
end; GetTime(var Hour, Minute, Second, Second100:word);
end.
 
 
а вот функция
 
function fGetTime: LongInt;
var hr, min, sec, sec_100: word;
begin
  GetTime(hr, min, sec, sec_100);
  fGetTime := longint(hr)*360000 + longint(min)*6000 + sec*100 + sec_100;
end;
 
{ и работать с ней: }
var before, after: longint;
begin
  before := fGetTime;
  ...
  after := fGetTime;
  writeln('Действие выполнялось ', (after - before) / 100:0:2,' секунды')
end;
0
Почетный модератор
64272 / 47571 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
18.03.2010, 16:28 3
Цитата Сообщение от Studentka Посмотреть сообщение
Как в рабочую программу вставить подсчёт время её выполнения?
Все что угодно есть, только программы не. Куда вставлять?
Вообще определение времени делают в начале и в конце программы, потом считают разницу.
0
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108
18.03.2010, 16:31  [ТС] 4
программа-


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Program Tower_of_hanoi;
 
uses CRT;
 
procedure Hanoi (n : integer; x, y, z : char);
begin
     if n <> 0 then
     begin
          Hanoi (n - 1, x, z, y);
          writeLn ('Перемещаем диск ', n, ' c  ',  x,  ' на ', y);
          Hanoi (n - 1, z, y, x)
     end
end;
  procedure GetTime(var Hour, Minute, Second, Second100:word);
var
   disk : integer;
begin
     ClrScr;
     write ('Сколько дисков ?');
     readLn (disk);
     Hanoi (disk, 'X', 'Y', 'Z')
end; GetTime(var Hour, Minute, Second, Second100:word);
end.
Добавлено через 1 минуту
функция-
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function fGetTime: LongInt;
var hr, min, sec, sec_100: word;
begin
  GetTime(hr, min, sec, sec_100);
  fGetTime := longint(hr)*360000 + longint(min)*6000 + sec*100 + sec_100;
end;
 
{ и работать с ней: }
var before, after: longint;
begin
  before := fGetTime;
  ...
  after := fGetTime;
  writeln('Действие выполнялось ', (after - before) / 100:0:2,' секунды')
end;
0
Почетный модератор
64272 / 47571 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
18.03.2010, 16:32 5
Цитата Сообщение от Studentka Посмотреть сообщение
procedure GetTime(var Hour, Minute, Second, Second100:word);
Это у Вас все описание процедуры?
0
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108
18.03.2010, 16:34  [ТС] 6
функция-
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function fGetTime: LongInt;
var hr, min, sec, sec_100: word;
begin
  GetTime(hr, min, sec, sec_100);
  fGetTime := longint(hr)*360000 + longint(min)*6000 + sec*100 + sec_100;
end;
 
{ и работать с ней: }
var before, after: longint;
begin
  before := fGetTime;
  ...
  after := fGetTime;
  writeln('Действие выполнялось ', (after - before) / 100:0:2,' секунды')
end;
Добавлено через 55 секунд
программа-
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Program Tower_of_hanoi;
 
uses CRT;
 
procedure Hanoi (n : integer; x, y, z : char);
begin
     if n <> 0 then
     begin
          Hanoi (n - 1, x, z, y);
          writeLn ('Перемещаем диск ', n, ' c  ',  x,  ' на ', y);
          Hanoi (n - 1, z, y, x)
     end
end;
 
var
   disk : integer;
begin
     ClrScr;
     write ('Сколько дисков ?');
     readLn (disk);
     Hanoi (disk, 'X', 'Y', 'Z')
end.
Добавлено через 1 минуту


в прошлом было не верно...извените.
0
Почетный модератор
64272 / 47571 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
18.03.2010, 16:36 7
Вот фрагмент программы, никакой специальной процедуры и функции и не нужно.
Pascal
1
2
3
4
5
6
7
8
9
10
GetTime(hour,min,sec,hund);//определяем время начала программы
writeln(hour,':',min,':',sec,':',hund);
t1:=sec*100+min*6000+hund;
 
sort(1,n);//программа сортировки
 
GetTime(hour,min,sec,hund);//время окончания
writeln(hour,':',min,':',sec,':',hund);
t2:=sec*100+min*6000+hund;;
t:=t2-t1;//прошло времени
2
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108
18.03.2010, 16:44  [ТС] 8
тоесть первую часть - для подсчёта t1 мне нужно написать перед вызовом процедуры в основной программе, а для t , t2 нужно написать 2ю часть после вызова программы, так?
а gettime- стандартная процедура для модуля DOS?
А вот - sort(1,n);//программа сортировки - это что такое и зачем оно нужно, куда его писать?
0
Почетный модератор
64272 / 47571 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
18.03.2010, 16:46 9
Studentka, Все правильно поняли, а сортировка Вам не нужна, на этом месте Ваш Ханой будет, это пример из случайной программы.
1
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108
18.03.2010, 16:52  [ТС] 10
у меня при запуске пишет- неизвестный идентификатор GetTime
как это можно исправить?
0
3308 / 1370 / 110
Регистрация: 28.04.2009
Сообщений: 4,822
18.03.2010, 16:56 11
вроде модуль Dos надо подключить
0
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108
18.03.2010, 18:58  [ТС] 12
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
rogram Tower_of_hanoi;
 
uses CRT;
 
procedure Hanoi (n : integer; x, y, z : char);
begin
     if n <> 0 then
     begin
          Hanoi (n - 1, x, z, y);
          writeLn ('Перемещаем диск ', n, ' c  ',  x,  ' на ', y);
          Hanoi (n - 1, z, y, x)
     end
end;
 
var
   disk : integer;
begin
     ClrScr;
     write ('Сколько дисков ?');
     readLn (disk);
       GetTime(hour,min,sec,hund);//определяем время начала программы
writeln(hour,':',min,':',sec,':',hund);
t1:=sec*100+min*6000+hund;
     Hanoi (disk, 'X', 'Y', 'Z')
 
GetTime(hour,min,sec,hund);//время окончания
writeln(hour,':',min,':',sec,':',hund);
t2:=sec*100+min*6000+hund;;
t:=t2-t1;//прошло времени
end.


такая должна быть программа?

Добавлено через 1 час 46 минут
народ! если у меня нету модуля dos, то может попробывать через модуль timers?
Процедура StartTimer(n) запускает таймер с описателем n.

Процедура StopTimer(n) останавливает таймер с описателем n.

подскажите !
0
Почетный модератор
64272 / 47571 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
19.03.2010, 07:01 13
Цитата Сообщение от Studentka Посмотреть сообщение
у меня нету модуля dos
Да не может быть? Это стандартный модуль Паскаля, идет в комплекте.
Uses Dos;
0
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108
20.03.2010, 13:56  [ТС] 14
у меня при запуске пишет- модуль dos не найден..
может у меня паскаль не нормальный? или это особенности программного обеспечения моего компьютера?
0
Почетный модератор
64272 / 47571 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
20.03.2010, 14:10 15
Наверняка он у Вас лежит в паке Units.
Вот возьмите мой.
Вложения
Тип файла: rar DOS.rar (3.2 Кб, 328 просмотров)
0
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108
21.03.2010, 13:09  [ТС] 16
МНЕ НУЖНО СКОПИРОВАТЬ DOS.TPU В ПАПКУ UNITS? У МЕНЯ PASCAL ABC, ИЛИ НУЖЕН ДЛЯ ЭТОГО КАКОЙ-ТО ДРУГОЙ?
0
Почетный модератор
64272 / 47571 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
21.03.2010, 17:37 17
Studentka, Нужно сразу писать какой у Вас Паскаль.
В АВС свой модуль, поскольку он рабртает под Виндой, Модуль Timers.
0
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108
21.03.2010, 18:17  [ТС] 18
эя вкурсе, что там есть такой модуль. Я даже піталась с помощью процедур StartTimer(n) -запускает таймер с описателем n и StopTimer(n)- останавливает таймер с описателем n найти время віполнения.
но почему -то у меня не получилось.
можете мне подсказать как его использовать правильно.
0
Почетный модератор
64272 / 47571 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
21.03.2010, 18:47 19
У нас здесь мало кто в АВС постоянно пишет.
0
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108
21.03.2010, 18:52  [ТС] 20
ну тогда я могу другой паскаль скачать. вы только объясните мне как время выполнения кода найти .
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2010, 18:52
Помогаю со студенческими работами здесь

Определить, чему будут равны элементы массива после выполнения программы
1) В программе описан одномерный целочисленный массив с индексами от 0 до 10 и целочисленные...

Определить время работы программы
есть готовая сортировка хоара Uses crt; type mas=array of integer; Var n,i:integer; ...

Дан отрывок программы.Определить чему будет равно значение переменных в течение цикла и после его выполнения если с клав
Дан отрывок программы.Определить чему будет равно значение переменных в течение цикла и после его...

Определить время выполнения программы
uses crt; var a:array of integer; i,k,n:integer; begin writeln('n='); readln(n); for i:=1...

Уменьшить время выполнения программы
У меня есть программа var n,i:integer; begin read(n); for i:=1 to n do if n mod i = 0 then ...

Уменьшить время выполнения программы
Здравствуйте, мне дана задача, на решение которой дан лимит по времени: 400ms. В моем решении на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru