Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Засечь время выполнения цикла на Delphi

244
03 июня 2007 года
UAS
2.0K / / 19.07.2006
Вообщем дело в следующем. Другу надо написать курсовую по Delphi. Сейчас встала задача тестирования циклов методом "белого ящика".

Программа исполняет элементарное: вводятся числа в строку (массив значений), потом вводится искомое значение. Программа находит это число в массиве и выводит сообщение, иначе она говорит что такого числа нет.
Код:
unit s_found_;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Grids;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Edit2: TEdit;
    StringGrid1: TStringGrid;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

{ поиск в массиве перебором }
procedure TForm1.Button1Click(Sender: TObject);
const
   SIZE=5;
var
   a: array[1..SIZE] of integer; // массив
   obr: integer;                 // образец для поиска}
   found: boolean;               // TRUE - совпадение образца с элементом массива }
   i: integer;                   // индекс элемента массива }

begin
   // ввод массива
   for i:=1 to SIZE do
       a := StrToInt(StringGrid1.Cells[i-1,0]);

   // ввод образца для поиска
   obr := StrToInt(edit2.text);

   // поиск
   found := FALSE; // пусть нужного эл-та в массиве нет
   i := 1;
   repeat
         if a = obr
            then found := TRUE
            else i := i+1;
   until (i > SIZE) or (found = TRUE);

   if found
      then ShowMessage('Совпадение с элементом номер '
                       +IntToStr(i)+#13+'Поиск успешен.')
     else ShowMessage('Совпадений с образцом нет.');
end;

end.


Логику вычисления время исполнения скрипта я знаю. По идее надо засечь кол-во секунд, прошедших с начала эпохи + доли текущей секунды до цикла, и после. Потом вычесть значения и получим искомое.
Аналог в php такой функции - microtime(). К сожалению в Delphi я чего-то не могу найти такой функции. Просьба посодействовать в поиске такой функции.

Так же просьба высказать свои предложения и методы тестирования циклов. Очень срочно надо
257
03 июня 2007 года
kosfiz
1.6K / / 18.09.2005
глянь это http://forum.codenet.ru/showpost.php?p=172993&postcount=12 может поможет. несмотря на то, что там на Free Pascal на Delphi тоже самое будет.
551
03 июня 2007 года
Pavia
357 / / 22.04.2004
GetTickCount;
244
04 июня 2007 года
UAS
2.0K / / 19.07.2006
Вообщем вермя выполнения скрипта мы сделали:
 
Код:
Application.ProcessMessages;
QueryPerformanceCounter(Start);

// тут цикл

QueryPerformanceCounter(Finish);
WaitCal := Finish - Start;


Теперь просто советы хочу спросить о том какие тесты можно проводить над циклом???
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог