Sapiens 807 punti

Ordinamento crescente/decrescente di un array utilizzando il bubble sort

procedure TForm1.OrdinaClick(Sender: TObject);
const
n = 20;
var
i,j,k,aux,tmp,lim: integer;
trovato: boolean;
vett:array [1..20] of integer;
begin
if Decrescente.Checked then
begin {inizia l'ordinamento decrescente}
lim:=n;
trovato:=true;
while (lim>0) and (trovato=true) do
begin
trovato:=false;
for i:=1 to lim-1 do
begin
if vett<vett[i+1] then
begin
tmp:=vett;
vett:=vett[i+1];
vett[i+1]:=tmp;
trovato:=true;
end;
end;
lim:=lim-1;
end; {finisce l'ordinamento decrescente}

for i:=1 to 20 do {inizio stampa dell'array ordinato su string grid}
begin
k:=i-1;
StringGrid1.Cells[k,1]:=IntToStr(vett);
end; {fine stampa dell'array ordinato}
end
else
begin {inizia l'ordinamento crescente}
for j := n downto 2 do
for i := 1 to j-1 do
begin
if vett > vett[i+1] then
begin
aux := vett;
vett := vett[i+1];
vett[i+1] := aux;
end;
end;{finisce l'ordinamento crescente}
for i:=1 to 20 do {inizio stampa dell'array ordinato su string grid}
begin
k:=i-1;
StringGrid1.Cells[k,1]:=IntToStr(vett);
end;
end; {fine stampa dell'array ordinato}
end; {fine della procedura}

Registrati via email