Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/22: Рейтинг темы: голосов - 22, средняя оценка - 4.86
 Аватар для Harrison
3 / 3 / 1
Регистрация: 07.11.2010
Сообщений: 73

Не могу вставить процедуру "время выполнения программы"

03.06.2011, 22:18. Показов 4729. Ответов 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
program shell;
 
uses
  crt; //ìмодуль, который подключает clrscr, readkey
 
var
  a: array[1..100] of integer; //массив
  i, n, incr, j, x: integer; //используемые переменные
//начало программы
begin
  writeln('введите размерность массива');//читаем с экрана
  readln(n);//считываем введённое число
  writeln('исходный массив');
  for i := 1 to n do //цыкл от 1 до введенного нами n
  begin
    a[i] := random(10); //заполнение случайными числами массива
    write(a[i], ' '); //вывод на экран
  end;
 
  incr := n div 2; //делим по палам массив
  //и сортируем каждую его часть
  while incr > 0 do //пока числа больше нуля 
  begin// то
    for i := incr + 1 to n do//сортировка по обычному начиная от первого элемента
    begin
      j := i - incr;
      while j > 0 do // входим в цикл и сравниваем первый и следующий за ним элемент
        if a[j] > a[j + incr] then // если он больше него
        begin //òî
          x := a[j]; //производится обмен этих элементов
          a[j] := a[j + incr];
          a[j + incr] := x;
          j := j - incr; //и уменьшения j
        end
        else // в ином случае
          j := 0;
    end;
    incr := incr div 2;
  end;
  readln;
 
  for i := 1 to n do
  begin
    write(a[i], ' ');//Вывод отсортированного массива
end.

вот процедура "Время выполнения программы":

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;//прошло времени

подскажите пожалуйста, как их соединить...
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.06.2011, 22:18
Ответы с готовыми решениями:

Переопределить процедуру во время выполнения программы
Привет всем! У меня есть вот такая процедура, после вставки которой в код формы, кнопка закрытия окна (крестик) становится неактивной:...

Уменьшить время выполнения работы программы, увеличить скорость выполнения
Подскажите, пожалуйста, как можно сократить время при компиляции, нужно не более 1 секунды, при некоторых данных выполняется дольше,...

Уменьшить время выполнения работы программы, увеличить скорость выполнения
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace...

12
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
04.06.2011, 18:22
Лучший ответ Сообщение было отмечено как решение

Решение

Никак,
GetTime(hour,min,sec,hund);//определяем время начала программы
Это из Турбо Паскаля, модуль Dos, которого нет в АВС.
Нужно писать по своему.

Добавлено через 35 секунд
Или Вам все нужно в Турбо Паскале?
3
 Аватар для Harrison
3 / 3 / 1
Регистрация: 07.11.2010
Сообщений: 73
04.06.2011, 21:17  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Никак,
GetTime(hour,min,sec,hund);//определяем время начала программы
Это из Турбо Паскаля, модуль Dos, которого нет в АВС.
Нужно писать по своему.

Добавлено через 35 секунд
Или Вам все нужно в Турбо Паскале?
на моём компьютере старый паскаль не поддерживается, поэтому пользуюсь АBC..
просто преподаватель сказал, чтоб посчитали время выполнения программы, искал эту процедурку, нашёл..да вот не смог слепить...если Вы можете дать другой вариант-я буду очень благодарен Вам.
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
04.06.2011, 21:23
Harrison, на ABCPascal никак
на TP можно!
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
04.06.2011, 21:28
Цитата Сообщение от go Посмотреть сообщение
Harrison, на ABCPascal никак
Не правда. Подключаем модуль
uses Utils;
читаем справку и выбираем подходящие функции, например milliseconds;

Добавлено через 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
43
44
45
46
program shell;
 
uses
  crt, //ммодуль, который подключает clrscr, readkey
  utils;//модуль для определения времени
var
  a: array[1..100] of integer; //массив
  i, n, incr, j, x: integer; //используемые переменные
  t:integer;
//начало программы
begin
  writeln('введите размерность массива');//читаем с экрана
  readln(n);//считываем введённое число
  writeln('исходный массив');
  for i := 1 to n do //цыкл от 1 до введенного нами n
  begin
    a[i] := random(10); //заполнение случайными числами массива
    write(a[i], ' '); //вывод на экран
  end;
 
  incr := n div 2; //делим по палам массив
  //и сортируем каждую его часть
  while incr > 0 do //пока числа больше нуля
  begin// то
    for i := incr + 1 to n do//сортировка по обычному начиная от первого элемента
    begin
      j := i - incr;
      while j > 0 do // входим в цикл и сравниваем первый и следующий за ним элемент
        if a[j] > a[j + incr] then // если он больше него
        begin //то
          x := a[j]; //производится обмен этих элементов
          a[j] := a[j + incr];
          a[j + incr] := x;
          j := j - incr; //и уменьшения j
        end
        else // в ином случае
          j := 0;
    end;
    incr := incr div 2;
  end;
  for i := 1 to n do
  write(a[i], ' ');//Вывод отсортированного массива
  t:=milliseconds;
  write('Время выполнения=',t/1000:0:2,' с.');
    
end.
Но это не будет работать в Турбо...
1
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
04.06.2011, 21:33
Цитата Сообщение от Puporev Посмотреть сообщение
Не правда. Подключаем модуль

Не по теме:

Согласен
но, правда, говоря "никак", я думал, что никак нельзя взять системное время

1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
04.06.2011, 21:40
go, Можно и системное
CurrentDateTime - функция, возвращающая текущие дату и время;
1
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
04.06.2011, 21:52
Цитата Сообщение от Puporev Посмотреть сообщение
CurrentDateTime - функция, возвращающая текущие дату и время;
Спасибо, а я сколько ни искал, так и не смог взять системное.
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
04.06.2011, 22:14
В Помощи к АВС есть описание модуля Utils
1
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
05.06.2011, 00:11
Цитата Сообщение от Puporev Посмотреть сообщение
В Помощи к АВС есть описание модуля Utils
а можно пример, а то не могу понять, что она возвращает
читал в содержании - ничего внятного не нашел
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
05.06.2011, 09: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
uses crt,utils;
var i:integer;
    t:datetime;
    f:boolean;
begin
hidecursor;
window(36,12,47,14);
textbackground(0);
clrscr;
f:=true;
repeat
t:=CurrentDateTime;
if (Milliseconds mod 1000=0)and f then
 begin
  clrscr;
  textcolor(10);
  gotoXY(3,2);
  if t.hour<10 then write('0',t.hour,':')
  else write(t.hour,':');
  if t.minute<10 then write('0',t.minute,':')
  else write(t.minute,':');
  if t.second<10 then write('0',t.second)
  else write(t.second);
  f:=false;
 end
else f:=true;
until keypressed;
end.
2
 Аватар для Harrison
3 / 3 / 1
Регистрация: 07.11.2010
Сообщений: 73
05.06.2011, 09:14  [ТС]
Спасибо Вам большое. Программа Puporev работает, это то, что нужно).
0
1 / 1 / 1
Регистрация: 17.11.2011
Сообщений: 14
08.12.2011, 20:34
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
uses
  Utils,Crt;
type
  DateTime=record
    Day,Month,Year,Hour,Minute,Second,Milliseconds:integer;
  end;
var
  time:DateTime;
begin
  HideCursor;
  repeat
    time:=CurrentDateTime;
    write('C начала работы программы прошло: ',Milliseconds div 1000,'  сек. Дата: ',time.year,'.',time.month,'.',
          time.day,' Время: ',time.hour,':',time.minute,':',time.second,':',time.Milliseconds div 100);
    GotoXY(1,1)
  until
    1<0
end.

часики и время/дата
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.12.2011, 20:34
Помогаю со студенческими работами здесь

При попытке запустить процедуру Saving во время выполнения saveFileDialog1.ShowDialog выходит ошибка
Есть код: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; ...

Время выполнения программы
Не подскажите как сделать таймер, чтоб подсчитать время выполнения программы.... Пожалуйста

Время выполнения программы
Здравствуйте.Я до сих пор новичок в программировании,сразу скажу,и тонкостей не знаю. Собрал я тут программу с использованием CUDA.И...

Время выполнения программы
Есть программа, которая показывает сколько мс компьютеру необходимо, чтобы миллион раз выполнить прибавление слагаемого √(5). Почему...

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru