峻
峻祁连
Unregistered / Unconfirmed
GUEST, unregistred user!
下面是快速排序的代码,可就是编译不过去,说是变量i没有定义。
过程说明里不是定义了吗?如果我重新定义,又告诉我redeclare。
各位大侠帮忙看看,我动了什么机关?还是我真的写的不对?我用delphi时间还不长,
当我实在没看出来,这么写有什么没定义的。怪!
procedure TfrmMain.qkPass(var r: array of integer
s, t: integer
Var i: integer);
//快速排序
//对r[s..t]中的记录进行一趟快速排序,执行后求得i (s<=i<=t)
//若s<i则r[s..i-1]中的关键字均不大于r的关键字,若i<t则r[i+1..t]
//中记录的关键字均不小于r中的关键字
var
rp: integer;
begin
i :=s
//出错信息定义在这一行,但是不固定,因为我把这句和其它的语句换
j :=t
//后,出错信息就不一定指到那行去了,甚至会在begin行上。
rp:=r;
x:= r
//选r为轴枢记录
while i<j do
begin
while (i<j) and (r>=x) do j := j-1;
r := r[j];
while (i<j) and (r<=x) do i := i+1;
r[j] := r;
end;
r := rp;
end;
过程说明里不是定义了吗?如果我重新定义,又告诉我redeclare。
各位大侠帮忙看看,我动了什么机关?还是我真的写的不对?我用delphi时间还不长,
当我实在没看出来,这么写有什么没定义的。怪!
procedure TfrmMain.qkPass(var r: array of integer
s, t: integer
Var i: integer);
//快速排序
//对r[s..t]中的记录进行一趟快速排序,执行后求得i (s<=i<=t)
//若s<i则r[s..i-1]中的关键字均不大于r的关键字,若i<t则r[i+1..t]
//中记录的关键字均不小于r中的关键字
var
rp: integer;
begin
i :=s
//出错信息定义在这一行,但是不固定,因为我把这句和其它的语句换
j :=t
//后,出错信息就不一定指到那行去了,甚至会在begin行上。
rp:=r
x:= r
//选r
while i<j do
begin
while (i<j) and (r>=x) do j := j-1;
r := r[j];
while (i<j) and (r<=x) do i := i+1;
r[j] := r;
end;
r := rp;
end;