下面原文照抄一本delphi教材上的,但总是不会排序输出,问题在哪里,请大侠们指教小的一下,不胜感激!type
queue =array[1..10] of integer;
procedure sort1(var queue1:queue;n:integer); //排序过程
procedure swap(var x,y:integer); //两个数交换过程var
Form1: TForm1;
i:integer; //统计输入数据个数
dataarray:queue; //存放待排序数据数组implementation
{$R *.dfm}
//过程sort1对queue1数组的前n个数排序
procedure sort1(var queue1:queue;n:integer);
var k,j:integer;
flag:boolean;
begin
for k:=1 to n-1 do; //K控制扫描的趟数
begin
flag:=true;
for j:=1 to n-k do //第K趟扫描的两两比较次数
if queue1[j]>queue1[j+1] then
begin
flag:=false;
swap(queue1[j],queue1[j+1]);
end;
if flag then
exit;
end;
end;//过程swap交换X、Y的值,X和Y是变量参数
procedure swap(var x,y:integer);
var temp:integer;
begin
temp:=x;
x:=y;
y:=temp;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
i:=i+1; //每输入一个数i加1
//将在dataedit中输入的数赋给dataarray的第i个元素
dataarray[i]:=strtoint(edit1.Text);
//将dataedit.text添加到列表框datalist中
listbox1.Items.Add(edit1.Text);
edit1.text:='';
edit1.SetFocus ;
end;procedure TForm1.Button2Click(Sender: TObject);
var j:integer;
begin
label2.Caption :='这组数从小到大排列为:'+chr(13);
//调用sort1对dataarray中和前i个元素排序
sort1(dataarray,i);
for j:= 1 to i do //输出排序后数据
label2.Caption :=label2.Caption +' '
+inttostr(dataarray[j]);
i:=0;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;end.
queue =array[1..10] of integer;
procedure sort1(var queue1:queue;n:integer); //排序过程
procedure swap(var x,y:integer); //两个数交换过程var
Form1: TForm1;
i:integer; //统计输入数据个数
dataarray:queue; //存放待排序数据数组implementation
{$R *.dfm}
//过程sort1对queue1数组的前n个数排序
procedure sort1(var queue1:queue;n:integer);
var k,j:integer;
flag:boolean;
begin
for k:=1 to n-1 do; //K控制扫描的趟数
begin
flag:=true;
for j:=1 to n-k do //第K趟扫描的两两比较次数
if queue1[j]>queue1[j+1] then
begin
flag:=false;
swap(queue1[j],queue1[j+1]);
end;
if flag then
exit;
end;
end;//过程swap交换X、Y的值,X和Y是变量参数
procedure swap(var x,y:integer);
var temp:integer;
begin
temp:=x;
x:=y;
y:=temp;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
i:=i+1; //每输入一个数i加1
//将在dataedit中输入的数赋给dataarray的第i个元素
dataarray[i]:=strtoint(edit1.Text);
//将dataedit.text添加到列表框datalist中
listbox1.Items.Add(edit1.Text);
edit1.text:='';
edit1.SetFocus ;
end;procedure TForm1.Button2Click(Sender: TObject);
var j:integer;
begin
label2.Caption :='这组数从小到大排列为:'+chr(13);
//调用sort1对dataarray中和前i个元素排序
sort1(dataarray,i);
for j:= 1 to i do //输出排序后数据
label2.Caption :=label2.Caption +' '
+inttostr(dataarray[j]);
i:=0;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;end.
Butoton,Label,Listbox,Button1Click没有声明
估计你button控件也没拖进窗体里
要不然不知道哪个是哪个 也就是如下结构type
//class1
定义类1
end;
//class2
定义类2
end;
//interface1
定义接口1
end;
//interface2
定义接口2
end;