Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/14: Рейтинг темы: голосов - 14, средняя оценка - 4.50
Harrison
3 / 3 / 1
Регистрация: 07.11.2010
Сообщений: 73
1

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

03.06.2011, 22:18. Просмотров 2539. Ответов 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)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2011, 22:18
Ответы с готовыми решениями:

Вставить после каждой буквы "Б" букву "А", удалить все сочетания "ХА"
Вставить после каждой буквы "Б" букву "А" , удалить все сочетания "ХА" . ...

Вводятся три строки. Зашифровать каждую из них, заменив все буквы "с" на "о", создав процедуру
Собственно, сабж. var s,t,y:string; procedure zam(n:string); var...

Исправить ошибки в тексте. Во все слова "длиный" и "Геадьевна" вставить букву Н
Помогите, заранее спасибо большое!!

В английском слове после каждого символа "n" вставить символ "a"
Дано слово на английском языке. После каждого символа "n" вставьте символ "a"....

Ввести строку. После каждой буквы "А" вставить слог "МА"
Ввести строку. После каждой буквы "А" вставить слог "МА"

12
Puporev
Модератор
55433 / 42554 / 29407
Регистрация: 18.05.2008
Сообщений: 100,671
04.06.2011, 18:22 2
Лучший ответ Сообщение было отмечено как решение

Решение

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

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

Добавлено через 35 секунд
Или Вам все нужно в Турбо Паскале?
на моём компьютере старый паскаль не поддерживается, поэтому пользуюсь АBC..
просто преподаватель сказал, чтоб посчитали время выполнения программы, искал эту процедурку, нашёл..да вот не смог слепить...если Вы можете дать другой вариант-я буду очень благодарен Вам.
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
04.06.2011, 21:23 4
Harrison, на ABCPascal никак
на TP можно!
1
Puporev
Модератор
55433 / 42554 / 29407
Регистрация: 18.05.2008
Сообщений: 100,671
04.06.2011, 21:28 5
Цитата Сообщение от 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
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
04.06.2011, 21:33 6
Цитата Сообщение от Puporev Посмотреть сообщение
Не правда. Подключаем модуль

Не по теме:

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

1
Puporev
Модератор
55433 / 42554 / 29407
Регистрация: 18.05.2008
Сообщений: 100,671
04.06.2011, 21:40 7
go, Можно и системное
CurrentDateTime - функция, возвращающая текущие дату и время;
1
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
04.06.2011, 21:52 8
Цитата Сообщение от Puporev Посмотреть сообщение
CurrentDateTime - функция, возвращающая текущие дату и время;
Спасибо, а я сколько ни искал, так и не смог взять системное.
1
Puporev
Модератор
55433 / 42554 / 29407
Регистрация: 18.05.2008
Сообщений: 100,671
04.06.2011, 22:14 9
В Помощи к АВС есть описание модуля Utils
1
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
05.06.2011, 00:11 10
Цитата Сообщение от Puporev Посмотреть сообщение
В Помощи к АВС есть описание модуля Utils
а можно пример, а то не могу понять, что она возвращает
читал в содержании - ничего внятного не нашел
1
Puporev
Модератор
55433 / 42554 / 29407
Регистрация: 18.05.2008
Сообщений: 100,671
05.06.2011, 09:12 11
Вот пример часиков....

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  [ТС] 12
Спасибо Вам большое. Программа Puporev работает, это то, что нужно).
0
kosword
1 / 1 / 1
Регистрация: 17.11.2011
Сообщений: 14
08.12.2011, 20:34 13
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
08.12.2011, 20:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2011, 20:34

Вставить после каждого элемента "a", элемент со значением "-a"
Сформировать список из N целочисленных случайных элементов (N – вводится ...

Из слова "клоун" путем "вырезок" и "склеек" его букв получить слова "уклон","кулон" и "колун"
Из слова &quot;клоун&quot; путем &quot;вырезок&quot; и &quot;склеек&quot; его букв получить слова...

После каждой буквы "в" вставить "а"
Ребята помогите задали простенькую задачку: после каждой буквы &quot;в&quot; вставить...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru