Delphiben programozok egy demonstrációs programot algoritmusokra, a beszúrásos rendezésnél azoban fellépet egy olyan probléma, hogy az algoritmusban a t[j-1]értéke átvált nullára igy hibásan működik a dolog. Valakinek valami ötlet?
begin // beszurasos rendezes leptetese
sz1:=sz1+1;
case sz1 of
1:listbox2.ItemIndex:=sz1;
2:begin
listbox2.ItemIndex:=sz1;
if sz2<9 then
sz2:=sz2+1
else sz1:=12
end;
3:begin
if t[sz2]<t[sz2-1] then
listbox2.ItemIndex:=sz1
else sz1:=1;
end;
4:begin
ment:=t[sz2];
label3.Caption:=inttostr(ment);
with stringgrid1 do
a:=cells[sz2,1];
listbox2.ItemIndex:=sz1;
end;
5:begin
sz3:=sz2;
listbox2.ItemIndex:=sz1
end;
6:listbox2.ItemIndex:=sz1;
7:begin
listbox2.ItemIndex:=sz1;
dec(sz3);
end;
8:begin
listbox2.ItemIndex:=sz1;
t[sz3+1]:=t[sz3];
with stringgrid1 do
cells[sz3+1,1]:=cells[sz3,1];
end;
9: begin
label2.Caption:=inttostr(t[sz3-1]);
label4.Caption:=inttostr(sz3);
listbox2.ItemIndex:=sz1;
if (sz3=0) or (t[sz3-1]<=ment) then
sz1:=9
else
sz1:=6;
end;
10: begin
listbox2.ItemIndex:=sz1;
t[sz3]:=ment;
with stringgrid1 do
cells[sz3,1]:=a;
end;
11: begin
listbox2.ItemIndex:=sz1;
sz1:=1;
end;
12: listbox2.ItemIndex:=sz1;
end;
ez a kód
Szia.
Gond lehet még az, hogy a a listboxban nullától indul a listaelemek indexelése (tehát az első elemre itemindex:=0 -val hivatkozunk), és ez nálad például nincs lekezelve. (és Listbox.items.count-1 -ig vannak az elemek)
Itt az elmélet, bár gondolom ez tudod : [link]
Sok sikert.
Üdv.
Dehogynem lehetne!
Biztos tisztában vagy a ciklusok használatával?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!