二分法查找函数的PASCAL语言程序找错
下面给出的二分查找函数中有一个错误,试用调试方法找出错误并给出排错后的程序?
Function BINARY(Key:integer;List:lists)
Var Y,Z:real;{下标}
begin
if (List[1] <=Key) and (Key <=List[N]) then
begin
Z:=N;
Y:=-N;
while(Y <-1) and (List[trunc(Z)] <>Key) do
begin
Y:=Y/Z;
if Key <= List[trunc(Z+Y)] then Z:=Z+Y;
end; {while}
BINARY :=trunc(Z)*ord(List[trunc(Z)]=Key); {0或1乘以trunc(Z)}
end {if-then}
end BINARY:=0 {不在表中}
end;{ BINARY}