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

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

03.06.2011, 22:18. Показов 4697. Ответов 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
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
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
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
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
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
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
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
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
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru