Автор работы: Пользователь скрыл имя, 28 Февраля 2011 в 13:45, контрольная работа
Целью выполнения курсового проектирования было реализовать алгоритмы сортировки одномерных массивов (метод пузырька и метод простых вставок), и исследование каждого метода сортировки массива.
Введение……………………………………………………...4
Постановка задачи……………………………………………6
Рабочее проектирование……………………………………..8
Методы сортировок…………………………………………..12
Общее
Метод "Пузырька"
Метод "Простых вставок.
Выводы……………………………………………………….16
Последним пунктом меню является меню “Спрвака” в этом меню содержится справочная информация по приложению.
Под
меню располагается рабочая область, которая
делится на две части: ввод массива и операции
над ним, и отображение отсортированного
и
исходного массива в виде
Системные
требования: Pentium 133, 16 MB RAM, Windows 95/98/2000 NT/XP.
ПРИЛОЖЕНИЕ Г
Текст разработанного модуля SortMass 1.0:
public
{ Public declarations }
mass=array of integer;
procedure puzerek(n:integer; var a:mass);
procedure prostvst(n:integer; var a:mass);
var
Form1: TForm1;
n,i:integer;
a:mass;
implementation
uses
Unit2;
{$R *.dfm}
// процедура открытия массива из файла *txt (ввод массива)
procedure TForm1.Button1Click(Sender: TObject);
var name:string;
f:textfile;
begin
if opendialog1.Execute then name:=opendialog1.FileName;
if
name='' then showmessage('Пожалуйста, выберите файл')
else
begin
assignfile(f,name);
reset(f);
readln(f,n);
label1.caption:=inttostr(n);
Label4.Caption:='';
Series1.Clear;
SetLength(a,n+1);
for i:=1 to n do
begin
read(f,a[i]);
Label4.Caption:=Label4.
Series1.AddXY(i,a[i]);//
end;
closefile(f);
end;
end;
// сортировка методом пузыртка
procedure
puzerek(n:integer; var a:mass);
var j,tmp:integer;
begin
for i:=1 to n-1 do
for j:=1 to n-i do
if (a[j+1]<a[j]) then
begin
tmp:=a[j+1];
a[j+1]:=a[j];
a[j]:=tmp;
end;
end;
// сортировка методом простых вставок
procedure prostvst(n:integer; var a:mass);
var j,tmp:integer;
begin
for j:=2 to n do
begin
tmp:=a[j];
i:=j-1;
while (i>0) and (a[i]>tmp) do
begin
a[i+1]:=a[i];
i:=i-1;
end;
a[i+1]:=tmp;
end;
end;
//вызов функций puzerek и prostvst
procedure TForm1.Button2Click(Sender: TObject);
begin
case Radiogroup1.ItemIndex of
0:puzerek(n,a);
1:prostvst(n,a);
end;
// Отчистка полей перед вводом массива
Label5.Caption:='';
Series2.Clear;
for i:=1 to n do
//
Ввод массива в поля и
begin
Label5.Caption:=Label5.
Series2.AddXY(i,a[i]);
end;
end;
// Процедура сохранения сортировки
procedure TForm1.Button3Click(Sender: TObject);
var name:string;
f:textfile;
begin
if savedialog1.Execute then name:=savedialog1.FileName;
if name='' then showmessage('Не выбран файл для сохранения') else
begin
assignfile(f,name);
rewrite(f);
writeln(f,label5.caption);
closefile(f);
end;
end;
// Возврашение на первую форму
procedure TForm1.N2Click(Sender: TObject);
begin
application.Createform(
form2.visible:=true;
form1.Hide;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
Form3.Visible:=True;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
Form1.Button1Click(
end;
procedure TForm1.N5Click(Sender: TObject);
begin
Form1.Button3Click(
end;
// Вывод времени и даты в строку состояния
procedure TForm1.Timer1Timer(Sender: TObject);
begin
statusBar1.Panels[0].
StatusBar1.Panels[1].
StatusBar1.Panels[0].
end;
procedure TForm1.N8Click(Sender: TObject);
begin
Close;
end;
// Отчитска полей ввода
procedure TForm1.Button4Click(Sender: TObject);
begin
Label4.Caption:='';
Label5.Caption:='';
Series1.Clear;
Series2.Clear;
end;
// открытие окна Сравнение методов
procedure TForm1.Button5Click(Sender: TObject);
begin
application.Createform(
form2.visible:=true;
form1.Hide;
end;
end.
Текст модуля “Сравнение методов”
Form2: TForm2;
s:array of string;
p,q:integer;
implementation
uses
Unit1;
{$R *.dfm}
//
procedure TForm2.Button1Click(Sender: TObject);
var a,a1:mass;
n1,n2,d,i:integer;
st,fn,freq:int64;
T1,T2:real;
begin
n1:=strtoint(edit1.Text)
n2:=strtoint(edit2.Text)
d:=strtoint(edit3.Text);
Progressbar1.Max:=n2;
SetLength(a,n2+1);
SetLength(a1,n2+1);
q:=round((n2-n1)/d)+1;
SetLength(s,q+1);
p:=1;
randomize;
while n1<=n2 do
begin
queryperformancefrequenc
for i:=1 to n1 do
begin
a[i]:=random(2001)-1000;
a1[i]:=a[i];
end;
queryperformancecounter(st);
Unit1.puzerek(n1,a);
queryperformancecounter(fn);
T1:=(fn-st)/freq*1000;
queryperformancecounter(st);
Unit1.prostvst(n1,a1);
queryperformancecounter(fn);
T2:=(fn-st)/freq*1000;
s[p]:='Количество элементов '+
Series1.AddXY(n1,T1);
Series2.AddXY(n1,T2);
Progressbar1.Position:=n1;
p:=p+1;
n1:=n1+d;
end;
end;
//
Процедура сохранения
procedure TForm2.Button2Click(Sender: TObject);
var name:string;
f:textfile;
begin
Информация о работе Иследование методов сортировки "Метод пузырька" и "Метод простых вставок"