Попыталась написать, а кое-где нагло скопировать код для программы, но она все равно выдает ошибку, в чем причина - не знаю.
В теории: программа создает одноизмерный массив с заданным числом колонок, в ячейки можно вписывать числа самому, а можно сгенерировать кнопкой "рандом". - эта часть работает. Затем, при нажатии на кнопку "sort!", программа должна расскидать числа в порядке возростания.
На практике: при нажатии на кнопку "сортировка" мне выдает ошибку...помогите разобраться, пожалуйста р.р
Код:
unit Unit_grew;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
StringGrid1: TStringGrid;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
a:array[1..10] of integer;
i,prom,j,k, min:integer;
m,n:byte;
implementation
{$R *.dfm}
function randomreal (mini, max:single):single;
begin
randomreal:=mini+(max-mini)*random;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
m:= strtoint(edit1.text);
Stringgrid1.colcount := m;
stringgrid1.rowcount := n;
Stringgrid1.Height:= stringgrid1.defaultrowheight*(n+2)+n;
stringgrid1.Width:= stringgrid1.DefaultColWidth*(m+1);
end;
procedure TForm1.Button2Click(Sender: TObject);
var i : integer;
begin
for i:= 0 to m do
stringgrid1.cells[i,j]:=inttostr(-127+random(255));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
end;
procedure TForm1.Button4Click(Sender: TObject);
var
a:array[1..10] of integer;
min:integer;
j:integer;
buf:integer;
i,k:integer;
begin
for i:=1 to m do
a[i]:=StrToInt(StringGrid1.Cells[m-1,0]) ;
for i:=1 to m-1 do
begin
for j:=i+1 to m do
if a[j] < a [min]
then min:=j;
buf:=a[i]; a[i]:=a[min]; a[min]:=buf;
end;
end;
end.