Kezdőoldal » Számítástechnika » Programozás » Hogyan kell elemet törölni...

Hogyan kell elemet törölni egy feltöltött tömbből?

Figyelt kérdés
2011. aug. 24. 15:27
1 2
 11/17 anonim ***** válasza:

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

2011. aug. 24. 19:42
Hasznos számodra ez a válasz?
 12/17 anonim ***** válasza:

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?

2011. aug. 25. 14:48
Hasznos számodra ez a válasz?
 13/17 A kérdező kommentje:
Igen, köszönöm!
2011. aug. 25. 14:51
 14/17 anonim válasza:
100%

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

2011. aug. 28. 14:04
Hasznos számodra ez a válasz?
 15/17 anonim válasza:

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]

2011. aug. 30. 22:10
Hasznos számodra ez a válasz?
 16/17 anonim válasza:

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...

2011. aug. 30. 23:33
Hasznos számodra ez a válasz?
 17/17 anonim válasza:
... és a második feltétel persze >= , azaz sima else. Bocsi, elgépeltem. :)
2011. aug. 31. 08:45
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!