dinamikus tömbök

dinamikus tömbök

PascalABC.NET - egy új generációs programozási nyelv Pascal, beleértve a klasszikus Pascal, Delphi legtöbb nyelvi funkciók, valamint számos saját kiterjesztéseket. Megvalósítása a Microsoft.NET platform és tartalmazza az összes modern nyelven azt jelenti: osztályok, operátor túlterhelés, interfészek, kivételkezelés, generikus osztályok és rutinok, szemétgyűjtő, lambda kifejezéseket, párhuzamos programozási eszközök.







PascalABC.NET a multiparadigmikus nyelv: ez lehet programozni a strukturált, objektum-orientált és funkcionális stílusban.

PascalABC.NET - ez is egy egyszerű és hatékony integrált fejlesztői környezet, amely támogatja IntelliSense technológiát tartalmazó automatikus formázási eszközöket, integrált hibakereső és integrált formában tervezők.

Könyv: Nyelv Leírás PascalABC.NET

dinamikus tömbök

Szakaszok ezen az oldalon:

Leírás Dinamikus Array

egy sor dinamikus típusú a következőképpen van felépítve:

arrayoftip elemek (egydimenziós tömb)

Egy változó típusú dinamikus tömb egy referencia. Ezért, egy dinamikus tömb igényel inicializáló (memória allokációs elemek).

Memórialefoglalás egy dinamikus tömb

Kiosztani dinamikus tömbben használt két módon. Az első módszer egy új műveletet a stílus az osztály konstruktor hívás:

egy: ​​= új egész szám [5];

Ez a módszer azért jó, mert lehetővé teszi, hogy összekapcsolják a leírása a tömb és a elosztását memória is:

egy: ​​tömb integer: = új egész szám [5];

Leírás típus tehát elhagyható - Auto kimenet típusa:

egy: ​​= új egész szám [5];

A második út memóriát a dinamikus tömb segítségével a standard eljárással SetLength:

Tömb elemeit tele alapértékeket.

SetLength eljárásnak az az előnye, hogy ha meg kell ismételni hívás a régi tömb tartalmát tárolja.

Inicializálás dinamikus tömb

Inicializálhatja dinamikus tömb memóriát új művelet:

egy: ​​= új egész szám [3] (1,2,3);

dinamikus tömb inicializálás opeisaniya végezhetjük rövidítve:







Tehát van egy memória kiosztás mellett jobbra fent elemek száma.

Inicializálása egy egydimenziós tömb legkönnyebb szabványos funkciók szekvencia. hogy a kívánt mérete és a memória tömb van töltve a következő jelentéssel bírnak:

var egy: = Arr (1,3,5,7,8); // tömb integer

var s: = Arr ( 'Ivanov' 'Petrov' 'Sidorov'); // tömb string

var b: = ArrFill (777,5); // b = [777.777.777.777.777]

var r: = ArrRandom (10); // töltse 10 véletlenszerűen közötti egész szám 0-tól 99

Ugyanabban a stílusban, akkor a tömbökre tömbök:

var egy: = Arr (Arr (1,3,5), Arr (7,8), Arr (5,6)); // tömb tömb integer

Dinamikus tömb hosszúsága

Dinamikus tömb emlékszik a hossza (n-dimenziós tömbön emlékszik dinamikus hosszát minden dimenzió). hossza a tömb (elemeinek számát IT) visszatér egy standard funkció Hossz vagy length tulajdonság:

Többdimenziós tömb minden dimenzióban tér vissza a normál hossz hossz függvényében két paraméterrel vagy egy olyan módszert GetLength (i):

Adjon meg egy dinamikus tömb

Miután kiosztási bemeneti dinamikus tömb végezhetjük hagyományosan egy ciklusban:

a var i: = 0 a.Length-1 do

Adjon meg egy dinamikus tömb elvégezhető standard funkció ReadSeqInteger:

var egy: = ReadSeqInteger (10);

Ebben az esetben a dinamikus tömb kiosztott memória méretét.

Következtetés dinamikus tömb

write eljárás felvesz egy dinamikus tömböt körülvevő tárgyak szögletes zárójelben, vesszővel elválasztva:

var egy: = Arr (1,3,5,7,9);

n-dimenziós dinamikus tömb látható, így, hogy minden egyes dimenzió szögletes zárójelben:.

var m: = új egész szám [3,3] ((1,2,3), (4,5,6), (7,8,9));

A dinamikus tömb kimenete is egy módszer bővítésére vagy Print println:

Az elemek szóközzel elválasztva az alapértelmezett, de meg lehet változtatni ezt a beállítást a paraméter Print, az elválasztó elemek. Például:

kimenetek minden eleme külön sorba.

tömbök tömbök

Ha ez be egy sor tömbök

inicializálási végezhető csak a segítségével SetLength:

Inicializálni ezt a tömböt az új típusú, adjon meg egy nevet a tömb értéke:

c: = új intArray [5];

c [i]: = new egész szám [3];

Inicializáljon egy tömb tömbök is végrehajtható rövidítve:

Kiosztása dinamikus tömbök

Dinamikus tömbök azonos típusú lehet rendelni egymással, mindkét változó kapcsolatokat fog mutatni egy memória:

Vegye figyelembe, hogy a dinamikus tömböket elfogadott szerkezeti ekvivalencia fajta lehet egymáshoz rendelve, és a paraméterként átadott szubrutinok dinamikus tömböket, egybeesnek szerkezetű.

Transzfer dinamikus tömb alprogramban

Dinamikus tömb jellemzően továbbítani egy szubrutin érdemben, mivel A változó már önmagában egy hivatkozás:

eljárás négyzetek (a: tömb integer);

a var i: = 0 a.Length-1 do

var egy: = Arr (1,3,5,7,9);

Dinamikus tömb átadása hivatkozás csak egy eset: ha jön létre, vagy újra a szubrutint. Különösen meg kell tenni, ha egy sor dinamikus belül 'szubrutin SetLength:

eljárás hozzáadása (var a: tömb integer; x: integer);

var egy: = Arr (1,3,5,7,9);