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