![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Составить программу (Pascal), которая позволяет провести сравнение трех алгоритмов нахождения НОД по характеристике "временная сложность"(тоесть за какое время выполняется каждый алгоритм).
Программа выполняется циклически. В каждом цикле выбирается пара случайных чисел из заданного диапазона. Для выбранной пары чисел находится НСД тремя методами. Определяется временная сложность для каждого из методов. Для каждого метода подсчитывается среднее и наибольшее значение временной сложности. Полученные результаты оперативно отображаются на экране. Оператор может остановить программу в любой момент. Помогите пожалуйста, очень нужна эта программа! |
|
#2
|
|||
|
|||
|
Ну, для начала, тебе неплохо было бы найти алгоритмы для этих 3х способов. Потом написать код, реализующий эти алгоритмы как функции. А в конце - все завернуть в бесконечный цикл, который прерывается по комманде оператора, типа:
Код:
var
IsAbort : Boolean;
...
procedure TForm1.Button1Click(Sender : TObject);
begin
IsAbort := True;
end;
...
begin
IsAbort := False;
While Not IsAbort Do
Begin
N1 := Random(1000000)+1;
N2 := Random(1000000)+1;
tm0 := Now();
DoFirst(N1,N2);
tm1 := Now();
DoSecond(N1,N2);
tm2 := Now;
DoThird(N1,N2);
tm3 := Now;
Application.ProcessMessages;
Memo1.Lines.Add(Format('N1=%d, N2=%d: T1=%s, T2=%s, T3=%s'),[N1,N2,TimeToStr(tm1-tm0),TimeToStr(tm2-tm1),TimeToStr(tm2-tm3)]);
End;
... |