Nyílt tömbök - studopediya

Statikus (standard) tömbök

Bejelentés egy vektor vagy egy egydimenziós tömb a következő általános formában (itt és a következőkben használjuk az ajánlás, amely szerint strukturált felhasználói típusú nyilvánították külön változó deklarálási ilyen típusú):

Itt két azonos bejelentett tömb az A és B, amelynek minden eleme van egész típusú, és egy tömb arrStudent, bázis típusú TarrStudent, bejelentett alszakasz 5.2. A elemeinek száma egyes tömb A és B jelentése a 13., a tömb 101 tartalmaz arrStudent elemet. Egy sor karakter S - ez valójában egy string, akkor lehet kezelni, mint egy húr.

Ebben a példában, indexek korlátozták egy adott típusú. Így gyakran előfordul, de nem feltétlenül. bármilyen korlátozott, vagy felsorolt ​​típusú lehet használni, hogy indexelt tömb. Megadhatjuk tömb arrColor alábbiak szerint:

Color = (vörös, zöld, kék);

Most tudjuk alkalmazni, például azért, hogy a második tagja egy vektor arrColor arrColor [Zöld].

Nem tilos feltenni egy karaktert index.

A fizikai szerkezete a vektor képviseli az MA-busz memória azonos szekvencia hossza mentén a memória részek (slot) egyes Koto-ryh tárolására vektor elemet. Jellemzően, a vektor elemek vannak elrendezve a memóriában emelkedő sorban címek megfelelő nyílásaiba. A leíró vektor tartalmazhat olyan területeken, mint a neve a vektor, a cím memóriában a kezdeti-dik eleme (t. E. Az első rés), az alsó felületek és a felső-lógiai index típusú elemet és területének méretét. A fizikai szerkezete az A vektor, fenti ábrán látható 5.1.

Nyílt tömbök - studopediya

5.1 ábra - Példa vektor fizikai szerkezete a bázis Integer

Amikor bármelyik dostupek elementuimya vektor-index és a jelenlegi átalakul egy fizikai címet, a horony, amelyben található az elem. Amint látható risunka5.1, lo-cal és fizikai szerkezetét a vektor egybeesik, mind - a lineáris szekvenciája elemek. Ha a logikai szerkezetét az átmenet az egyik elemet egy másik elemhez az szekvencia index változik az egyik, majd a közötti átmenet az egymást követő elemek a fizikai struktúra, a cím megváltozik összeggel egyenlő a méret a bázis típusú nyílásba.

5.2.2 többdimenziós tömbök statikus

Amint azt a fentiekben megjegyeztük, a vektor - egy egydimenziós tömbben. Minden többdimenziós tömböket lehet nyilvánítani programozási nyelvek, azaz a. E. tömbök, amelynek elemei tömbök. Például egy kétdimenziós tömb lehet nyilvánítani az alábbiak szerint:

Ugyanez lehet nyilvánítani tömörebben:

Hozzáférés a elem értékeit egy többdimenziós tömb, amelyet egy, a változó nevét a „tömb” és indexek át egy vesszőt, például X [3, 0]. A szám azt jelzi, az index egyenlőnek kell lennie a méret a tömb: hozzáférés az elem M-dimenziós tömb meg kell adnia az M indexeket.

Minden az elemek a tömb azonos típusú. Ellentétben vektormezőt általános típusú átalakítja a logikai struktúrát a fizikai van egy bonyolult forma. Ezt az átalakítást úgy végezzük linearizáló, amelynek során az M-dimenziós logikai tömb struktúrát átalakul egydimenziós EGYÉNEKNEK-iai szerkezet képviselő lineárisan rendezett szekvenciát chennuyu-helyekkel. Ez az átalakítás úgy valósítjuk meg, egy megfelelő rendelési függvény, amelynek argumentum eleme az rendezett halmaza index-baglyok, és az érték - a címét a megfelelő vezető nyílásba. Például, ha egy sorozat hasonló elemeket kezelik, mint egy kétdimenziós tömböt, és az alsó határai indexek az i és j értéke 0, a cím (i, j) -element mátrix kiszámítása a következő rendelési funkciók:

Cím (i, j) = alap + Nrow * sizeof (Element) * i + j,

ahol a bázis - címét a kezdeti eleme a tömb,

Nrow - az elemek száma egy sorban,

Sizeof (Element) - elem mérete bájtban a nyílásba,

Bár a fizikai szerkezete az M-dimenziós tömb lineáris elemek rendezését a memóriában egybeesik a fizikai szerkezete a vektor, a leíró tömb eltér a leíró vektort. Különösen, az alábbi in-formáció lehet szereplő leíró tömb mezők:

- struktúra típus mező;

- Mező neve a tömb, például Matr;

- egy olyan területen, amely egy tömb dimenzióval;

- foglalkozik a memória tömb (bázis);

- tartalmazó mező egy pár határ értékei index-cos, a mezők száma egyenlő a dimenziója a tömb;

- mező tartalmazza a speciális index szorzók-li (számuk megegyezik a mérete a tömb), amelyek szükségesek a felhasználásra rendelési funkció;

- Field a bázis típusú a tömb;

- tartalmazó mező a méret a nyílásba elem.

A tömbök a Delphi határozzuk hozzárendelés működését. Ha a két tömb A és B típusú TarrVect azonosított jelölések megadott Sec. 5.2.1, az eredmény az üzemeltető

Az értékek az elemek a tömb másolja az elemek a tömb A.

De ha tömböt, mint

amikor megpróbálja hozzárendelni A: = B Delphi fordító generál inkompatibilitás hibaüzenet típusok. A tény az, hogy a fordító úgy találja, hogy a változó típusa azonos, ha azok csak deklarált ugyanazon a listán, vagy egyértelműen azonosítják valamilyen elemzi. Ez egy újabb érv a használata a típus- strukturált változók leírását.

5.2.3 A tulajdonságait statikus tömböket

Statikus tömbök jellemezve a következő tulajdonságokkal:

- strukturálják a következetesség teljes ideje alatt a létezéséről,

- contiguity elemek és a folytonosság régió pas RAM memória visszavonták egyidejűleg valamennyi eleme a szerkezet.

- egyszerűség és az állandóság közötti kapcsolatok tag-E szerkezet, amely lehetővé teszi, hogy kizárják információt a kapcsolatot a memória számára kijelölt e-zsaruk szerkezetét, és tárolja egy kompakt formában de scriptorium.

A paraméter lista, kerül a fejléc funkciókat és eljárásokat megadhatja tömbök. Ha az érzékelt felbontás a tömb van rögzítve a paraméter lista típusú paraméter készlet kizárólag típus azonosítót. Object Pascal rutinok is lehet tömböket, a mérete nem ismert. Ebben az esetben a cím szubrutin nevét a felvétel után a paraméter tömb megadott szót tömb, majd egy alaptípus, és a leírás elhagyjuk indexek. Például,

Az ilyen tömbök (a D és T) nevezzük nyitott tömbök.

Ezzel a meghatározással a tömbök D és a tömb T amely továbbítja az első eljárás InverArray mint az aktuális paraméter a stack kell másolni, és a másolatot - tömb D - fog működni eljárást. A második nyitott array (array T) meghatározott Var. Ez a tömb vezetjük „link”, azaz a. E. Ez nem másolja a verem, és a folyamat működni egy sor, melyet a továbbiakban a tényleges paraméter a hívás InverArray.

Array telt el, mint egy nyitott, érzékelhető a test egy eljárás vagy függvény, mint egy tömb egész index nullától kezdve. Nem számít, hogy mit nyilvánították tartomány az index a tömb át a szubrutin az aktuális paraméter.

Kapcsolódó cikkek