Hogyan kell elemet törölni egy feltöltött tömbből?
ha így kell megcsinálni hogy
elmozgatod és mindegyik elemet kiv azt átmásolod egy másikba akkor:
csin 2 tömböt
forciklussal meg léptetsz egy változót ami a tömb elemére fog utalni!
szerintem
Muszáj Turbo Pascalba? (Használ egyáltalán valaki turbo pascalt manapság?) Free Pascal-ba nem jó?
Most kíváncsiságból letöltöttem egy Turbo Pascal-t, mit nem mondjak, úgy érzem mintha le lenne kötve a kezem és lábbal kéne programoznom, néztem a dinamikus tömbkezelés lehetőségét.
Ha törölsz akkor a tömb mérete változik, ezért dinamikus tömböt kell használni mert statikus tömb méretét nem lehet módosítani.
Turbo Pascal-ba pointerek-kel kell szórakozni, úgy látom hogy ANSI c-be elegánsabb és egyszerűbb (konkrétan ez).
Free Pascal-ba egyszerűen dekralálsz egy dinamikus tömböt, (sokkal egyszerűbb mint ansi c-be)
tomb: array of ElemTipus
A megfelelő értékek átmásolását elvégzed.
Csökkented a tömb méretét a tömb méret állító eljárással
setlength(tomb,ujmeret).
A tömbindexelés 0-ától kezdődik vagyis setlength(tomb,10) első eleme tomb[0] és az utolsó tomb[9].
A tömb mérete length függvényel-el lekérdezhető.
Sikerült megoldani?
Pszeudo kód.
Eljárás Elemtörlés (index, Tomb,Tombmeret Torolni)
index = 1;
Ciklus amig (index <= Tombmeret es Tomb[index] nem= Torolni)
index = index + 1;
Ha index <= Tombmeret akkor
felszabaditas Tomb[index];
Remélem tudtam segíteni.
egy kis C# program ehhez
int index = 0;
int Torolni = 5;
int[] tomb = new int[7] {1,2,3,4,5,6,7};
while (index < tomb.Lenght && tomb[index] != Torolni)
{
index ++;
}
if (index < tomb.Lenght)
{
tomb[index] = torlod az index erteket vagy nullba alitod;
}
megjegyzés: A tömb statikus lista, fix a mérete. Ezért én a helyedben inkább láncolt listákat használnék. pl beépített ArrayList
Ha nincs dinamikus tömb, én úgy csinálnám, hogy
j - a törlendő index
A - a régi tömb
B - legyen A-nál eggyel "rövidebb" tömb
aztán ciklus (i = 1 -től (A elemszáma - 1)-ig (ami, ugye a B elemszáma lesz)
ha i < j , akkor B[i] = A[i]
ha i > j, akkor B[i] = A[i+1]
előző folyt.:
... vagy, persze, ha az első elem 0 indexű, akkor onnan kezdjük, de mindenképp az utolsó előtti elemig megyünk...
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!