Witam. Mam problem ze stworzeniem programu na sortowanie przez scalanie w pascalu oto moje dwie funkcje które mają wykonać to sortowanie:
procedure scal(le,srodek,r:integer; var t:tab);
var i,j,k:integer;
tp:tab;
begin
i:=le;
k:=1;
j:=srodek;
while (i<=srodek) and (j<=r) do
begin
if t[i]<t[j] then
begin
tp[k]:=t[i];
i:=i+1;
end
else
begin
tp[k]:=t[j];
j:=j+1
end;
k:=k+1;
end;
if(i<=srodek) then
begin
while(i<=srodek) do
begin
tp[k]:=t[i];
i:=i+1;
k:=k+1;
end;
end
else
while(j<=r) do
begin
tp[k]:=t[i];
j:=j+1;
k:=k+1;
end;
for i := l to r do t[i] := tp[i-le+1];
i
procedure scalanie(le,r: integer; var t:tab);
var
srodek:integer;
i1,i2,i:integer;
p : tab;
begin
srodek:=((le+r+1) div 2);
if(srodek>l+1) then
scalanie(le,srodek-1,t);
if(r>srodek)then
scalanie(srodek,r,t);
scal(le,srodek,r,t);
end;
Podejrzewam, że błąd jest w procedurze scal ale nie mogę go wychwycić, wszystko wydaje się być tam logiczne ale jednak jest tam błąd. Będę bardzo wdzięczny za odpowiedź. Siedzę nad tym już od czterech godzin :(.