Всем привет. Помогите найти ошибку в алгоритме.
Код:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
list=array of Integer;
Arr=array of array of Integer;
var
mid,Low,High,i,temp,n,m,j:Integer;
A:Arr;
B:list;
procedure Binar(var Data:List);
begin
i:=0;
while i<m do
begin
low:=0; high:=i;
while low<high do
begin
mid:=(low+high) div 2;
if Data[i]<Data[mid] then high:=mid;
if Data[i]>=Data[mid] then low:=mid+1;
end;
temp:=Data[i];
j:=i-1;
while j>low do
begin
Data[j+1]:=Data[j];
Dec(j);
end;
Data[low]:=temp;
Inc(i);
end;
end;
begin
n:=9;m:=7;
Setlength(A,n,m);
SetLength(b,m);
for i:=0 to n-1 do
begin
for j:=0 to m-1 do
begin
A[i,j]:=Random(1000);
end;
end;
for i:=0 to n-1 do
begin
for j:=0 to m-1 do
begin
b[j]:=a[i,j];
end;
Binar(b);
write(b[j],' ');
end;
readln;
end.
Админ: Пользуемся тегами для оформления кода!
Процедура binar не работает, если массив индексируется с нуля.