Доброго времени суток, господа!
Такая проблемка нужно реализовать 2 метода сортировки чтоб результаты выводились в стрнггрид а в лейблы выводилсь количество перестановок для сровнения.
Я зделал генерацию и открытие файла содержащего масив а с сортировкой проблемка, подскажите пожалуйста.
Виснет после нажатия кнопки метода включением.
Код:
unit Grishman1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Label2: TLabel;
Label3: TLabel;
StringGrid2: TStringGrid;
Bevel1: TBevel;
Label4: TLabel;
StringGrid3: TStringGrid;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Button5: TButton;
procedure Button5Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure vkluch(var a: array of integer;n:integer);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
n=1000;
var
Form1: TForm1;
f:textfile;
a:array[1..n] of integer;
i:integer;
S:string;
implementation
{$R *.dfm}
procedure tform1.vkluch(var a: array of integer;n:integer);
var
j,i,cv,mv:integer;
f:textfile;
B: array [0..10000] of integer;
begin
if OpenDialog1.Execute then begin
assignfile(f,opendialog1.FileName);
reset(f);
i:=1;
while not eof(f) do begin
for i:=0 to n do begin
j:=i;
cv:=0;
mv:=0;
while (j>1) and (B[j-1]>A[i]) do begin
B[j]:=B[j-1];
j:=j-1;
end;
B[j]:=A[i];
end;
for i:=0 to N do begin
A[i]:=b[i];
stringgrid2.cells[i,0]:=inttostr(a[i]);
end;
end;
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
stringgrid1.colcount:=n+1;
if savedialog1.execute then
begin
assignfile(f,savedialog1.filename);
rewrite(f);
randomize;
for i:=1 to n do begin
a[i]:=random(1000)-500;
writeln(f,a[i]);
end; end;
closefile(f);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
stringgrid1.colcount:=n+1;
stringgrid1.rowcount:=0;
if opendialog1.Execute then begin
assignfile(f,opendialog1.FileName);
for i:=1 to n do begin
stringgrid1.cells[i,0]:=inttostr(a[i]);
reset(f);
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
stringgrid2.colcount:=n+1;
stringgrid2.rowcount:=0;
vkluch(a,n);
end;
end.
Изначально код был другим (процедура включ) но все равно не работало
Обясните пожалуйста как реализовать ети методы в интернете куча примеров но я немогу понять как оно работает
