Sortowanie

0

Witam wszystkim mam taki programik w Loglanie 82 ;-). Czy ktos z was możne mi pomóc bo gdzieś w kodzie mam błąd i i podczas sortowania zostaje wyczyszczona tablica którą sortuje.

 program zad
const N =20;
var a:arrayof integer;
unit pokaz:procedure;
begin
for ii := 1 to N do    
write(tab(ii));
od;
writeln;
end pokaz;
unit heapsort:procedure;
var i,j,l,p,x:integer;
unit przesiewanie:class;
var koniec:boolean;
begin
do inner;
if koniec then exit fi;
i:=l; j:=2*i; x:=a(i);
while j<=p do
if j<p and_if a(j)<a(j+1) then
 j:=j+1 fi;
if x>a(j) then exit fi;
a(i):=a(j); i:=j; j:=2*i;
od;
a(i):=x
od;
end przesiewanie;
unit tworzstog: przesiewanie procedure;
begin 
koniec:= l= lower(a); l:=l-1;
end tworzstog;
unit sortuj:przesiewanie procedure;
begin
koniec:= p= lower(a); x:=a(lower(a));
a(lower(a)):=a(p); a(p):=x; p:= p-1
end sortuj;
begin
l:= upper(a) div 2+1; p:=upper(a);
call tworzstog;
call sortuj;
end heapsort;
var temp:integer;
var ii:integer;
begin
temp:=N;
array a dim (1:N);
for ii := 1 to N do
    a(ii) :=temp;
temp:=temp-1;
od;
call heapsort;
call pokaz;
end zad;
1

Problem rozwiazany

1 użytkowników online, w tym zalogowanych: 0, gości: 1