Kezdőoldal » Számítástechnika » Programozás » Dynamic array és a SetLength...

Dynamic array és a SetLength használata?

Figyelt kérdés

Próbáltam rákeresni de nem találom a megoldást.


Szeretném ha egy dinamikus tömbnek (esetenként 2d-s) a hosszát megváltoztatni, majd hogy honnan kezdve meddig tartson a tömb mérete.


pl.:

SetLength( tomb, 5); = 0..4 méret:5 ok.

SetLength( tomb, -3..3 ) -3..3 méret:7 nem ok.


mínuszba nem lehet menni?



2016. márc. 7. 10:09
 1/9 anonim ***** válasza:

Minuszba nem.


Negatív tömbök nem léteznek. :)

2016. márc. 7. 10:19
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:

de ha nem dinamikus akkor lehet mínuszba...


akkor valami mást megoldás kell.


Köszi.

2016. márc. 7. 10:35
 3/9 anonim ***** válasza:

C-ben vagy FORTRAN-ban lehet mínuszba menni.


Pascalban nem.

2016. márc. 7. 11:13
Hasznos számodra ez a válasz?
 4/9 SimkoL ***** válasza:
Mond mi a gondod, mihez kell ?
2016. márc. 7. 11:15
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:

Egyszerű.

Van egy 2d-s dinamikus tömböm.


Ami azt a célt szolgálja, hogy tudom hol vannak az objektumok a képen(melyik XY ezres zónába). Ez legyen egy labda.


TLabda = record

begin

Pos,Vec: TPointF;

zona: DoubleInteger; // X,Y zóna 1000-re osztva

//ez itt csak annyi hogy Zona[1]:= Round(Pos.X/1000);

// Zona[2]:= Round(Pos.Y/1000);

end


var Zónák: Array of Array of DoubleInt;


és ha netán kifelé esik a labda (-1-es zónába) akkor a "Zónák" tömböt 0 alá kell vinni, hogy a "Zónák"-ba tudjam regisztrálni.

2016. márc. 7. 11:34
 6/9 anonim ***** válasza:

Ez az elképzelés így hibás.

De azt kell megértened, hogy minden tömbnek van egy határa és a dinamikus tömbnél ez a határ alaphelyzetben a nulla lesz, amihez hozzá lehet adni, elvenni is lehet belőle később (hiszen ezért dinamikus) de a kezdeti címfoglalást nem lehet futásidőben átírni. Ez azt jelent, hogy az egyik irányba lehet kérni memóriát (hogy nagyobb legyen a tömb) de a másik irányba már nem.

2016. márc. 7. 12:06
Hasznos számodra ez a válasz?
 7/9 A kérdező kommentje:

Értem, köszi.

Akkor valami megoldás kell erre az elképzelésre, hogy tudjam melyik "zónába" van a "labda".

2016. márc. 7. 12:15
 8/9 anonim ***** válasza:
Ha van egy Descartes-féle koordináta-rendszered, amelynek határai az x tengelyen 10 és -10, y tengelyen 5 és -5, akkor létrehozol egy 2D-s, 20x10-es tömböt, majd tegyük fel a (-2,-4) koordinátának az értékét szeretnéd módosítani, akkor így hivatkozol reá: array[const1+(-2)][const2+(-4)]. Const1 értéke 10, const2 értéke pedig 5, mert az origótól számítva ekkora távolságra van a tengely határértéke.
2016. márc. 7. 12:31
Hasznos számodra ez a válasz?
 9/9 SimkoL ***** válasza:

Ettől alapvetőbb gondok is vannak ott.

Van egy eladó 'Programozzunk Delphi 7 rendszerben' könyvem CD melléklettel, 450 oldal :)

2016. márc. 7. 12:42
Hasznos számodra ez a válasz?

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!