Tablice....

0

Witajcie. Znalazłem na stronie 4prog (http://4programmers.net/view_faq.php?id=424) krótkie info o tym jak usunąć komórkę talblicy dynamicznej... próbowałem to przerobić, ale efekt nie był zbytnio odpowiednim, więc mam pytanie: jak (mając daną tablicę 20 komórkową, nie dynamiczną) usunąć jedną z komórek a resztę przesunąć, tym samym, aby puste pola były na samym końcu.

0

Nie da się zmienić rozmiarów tablicy niedynamicznej (chyba, że jakąś okrężną drogą), lepiej zastosować od razu typ TList, jest to jakby tablica, jednak dane w niej same przesuwają się odpowiednio po usunięciu.

0

pisze z glowy:

for k:=do_czyszczenia to dlugosc_tablicy do
if k<>dlugosc_tablicy then
tablica[k]:=tablica[k-1] else tablica[k]:=0;

//do_czyszczenia - komorka ktorej chcesz sie pozbyc
   dlugosc_tablicy - chyba wiadome
   k - jakas zmienna pomocnicza
   tablica - twoja tablica
0

Ja bym to zrobil tak

begin
for i := nr_elementu to length(tab)-1 do tab[i] := tab[i+1];
tab[length(tab)] := 0;
end;

0

Dziękuję za pomoc, wesoledi --- k+1 zamiast k-1, w Twoim wypadku wszystko sie zakisi... (tablica[k..length(tablica)]:=tablica[k]), ale dziekuje bo na Twoim przykladnie sie wzorowalem <-].

0

w Twoim wypadku wszystko sie zakisi... [...] ale dziekuje bo na Twoim przykladnie sie wzorowalem

dlatego pisalem ze pisze z glowy i nie testowalem, ale prosze bardzo, ciesze sie ze pomoglem :D

0

Usunięcie jednego elementu z tablicy jest strasznie długotrwałe (szczególnie gdy element ma niski indeks). Polecam poczytać trochę o listach (jedno-, dwukierunkowych lub cyklicznych). Tam nie ma problemu z szybkim usuwaniem elementu.

0

Co do list jednokierunkowych... Z teorii (poczytałem) i z praktyki (sprawdziłem) wychodzi, że aby dobrać się do 10 pozycji muszę napisać coś w stylu:
Korzen.nast.nast.nast.nast.nast.nast.nast.nast.nast.Dane:=.....
Delikatnie mówiąc - nie jestem wariatem, więc prosiłbym o delikatne wyprostowanie moich myśli

Uczyłem się z:
http://www.binboy.org/index.php?show=a_list1k.htm

0

Korzen.nast.nast.nast.nast.nast.nast.nast.nast.nast.Dane:=.....

nast := korzen;
for i := 1 to 10 do nast := nast.nast;

0

A nie ma odpowiednika bibliotek STL z BCB w Delphi? Na pewno coś jest. W takim razie można wykorzystać odpowiednik szablonu deque, vector lub list - w zależności od potrzeb.

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