Tömbök (tömb), és együttműködik
Array - rendszeres adatszerkezet által bejelentett egy speciális nyelvi konstrukció
Array [index tartományok] a TipKomponentov
A leggyakrabban használt tárolására egy sor értékek vektorok, például:
V. Array [1..3] Real;
ezáltal bejelenti szerkezete három Valós típusú értékek indexelt egy előre meghatározott tartományban egészek (V [1], V [2], és V [3]). Ha indexelés komponensek (elemek) a tömb kap egy numerikus tartomány, mint ebben a példában, meg kell megfigyelni csak két követelmények: Először is, a tartomány nem tartozik a típusú LongInt, azaz meg kell „fit” típusú maximális Word, egy második, a termék a komponensek száma a tömb által meghatározott egy sor indexek, a méret a komponens bájtban, nem haladhatja meg a 65520 bájt (kb 64K). Az utóbbi követelmény közös nemcsak az összes tömböt, hanem más adatszerkezeteket. Így, tömbök lehet leírni
Ez nagyon kényelmes, mivel lehetővé teszi, hogy nem kell aggódnia hozza az index, hogy egy sor 1..n, például, meg kell tennie, ha dolgozik, Fortran vagy egyes verziói BASIC.
Általában semmi sem kötelezi, hogy állapítsa meg az index tartományban a tömb számokat. Ahogy egy index, akkor bármilyen felsorolás típusú, mind a beépített, és belépett. Az indexek is meg lehet határozni az előző tartományban, és ha a zenekar illik minden típusát, akkor ehelyett egyszerűen csak írjuk le a nevét ennek a enum típus:
ComplectType = Array [MonthType] Word;
Alpha. Array [ 'A' .. 'Z'] Char;
Switch. Array [Boole] bájt; <два элемента>
Tekinthető tömbök - egydimenziós, azaz amelyekben az összetevők - skalár. Engedélyezett tömböt tömbök:
VectorType = Array [1..3] Real; <вектор>
MatrixType = Array [1..10] az VectorType; <матрица10x3>
Típusának leírása kétdimenziós tömb MatrixType lehetne írni másképp:
MatrixType = Array [1..10] az Array [1..3] Real;
MatrixType = Array [1..10, 1..3] Real;
Az utolsó lehetőség a leginkább vizuálisan mátrix leírást. A mérések száma formálisan nem korlátozott, de az összeg a mérete minden eleme a tömb nem haladhatja meg a 64 ezer. Minden mérés teljesen független a többitől, és akkor tömböt különböző indexek:
M. Array [-10..0, 'A' .. 'C', Boole] bájt;
Array [Boole] bájt;
Érdekes, hogy milyen típusú a tömb elem M számától függ az említett át helyezzünk el rajta. Például,
M [0] - mátrix-tömb típusú Array [ 'A' .. 'C', Boole] bájt,
M [0, 'B'] - vektor típusa Array [Boole] bájt,
M [0, a 'B', False] - Byte érték típusú.
ArrayBType = Array [Boole] bájt;
ArrayCType = Array [ 'A' .. 'C'] a ArrayBType;
ArrayMType = Array [-10..0] a ArrayCType;
és csak azután, hogy engedélyezve lesz a típusú feladat
Turbo Pascal írhatunk indexek nem vesszővel elválasztva, hiszen izoláltuk:
M [-3, 'B', True] ekvivalens M [-3] [ 'B'] [Igaz]
Component tömb lehet nem csak egy másik tömböt, hanem egy rekordot és egy mutatót, és minden más típusú. Ha R - array rekordok (record), a hozzáférés területén minden rekord keletkezik megadása után az index:
Turbo Pascal egy különleges válogatás módot választott a kulcs $ R. Ha a teljes program vagy egy fragmense volt lefordítva a módban, elérésekor a tömb elemeinek ellenőrizni fogják hovatartozását az index bejelentett tartományban, és abban az esetben, egy sor birtokháborítási program megszakad egy hiba 201 (tartomány ellenőrzés hiba). Éppen ellenkezőleg, a nem termelt semmilyen ellenőrzési rendszert, és helytelen index értéke kivonat „mintha semmi sem történt volna” valamilyen érték -, de sajnos, nem tartozik ebbe a tömbbe. Általában a program hibakereső mód $ R +, és működtetjük $ mode R-. Ez némileg csökkenti a méretét a futtatható fájlt és futás közben.
A két kompatibilis tömbök A és B csak akkor alkalmazható, értékadó operátor:
amely másolatot a elemenkénti tömb B tömb A.
Mindenféle matematikai műveleteket tömbök (mátrixok) kell végrehajtani, vagy ha különleges könyvtárakat (pl Turbo numerikus Toolbox).
Kompatibilitás más változatai Pascal Turbo Pascal megengedi az összetett karakterek (és ..) helyett szögletes zárójelbe:
M [0] egyenértékű M (. 0).
Ezen túlmenően, kulcsszó leírások Array tömbök előzheti fenntartott szó csomagolva (csomagolva, tömörített):
X. CSOMAGOLVA Array [1..100] Real;
Összefoglalva megjegyezzük egyik jellemzője a Turbo Pascal fordító. Sok programozási nyelvek meglehetősen szabály: a munka a tömb elem hosszabb ideig tart, mint egy skalár változó (ez kiszámításához szükséges az elem helyét a memóriában). Ha az indexek elérésekor az elemek egy meghatározott változó vagy kifejezés, akkor az is igaz, Turbo Pascal. De ha az index által meghatározott konstans, akkor utalnak rá sebesség az a legnagyobb, mivel a fordító ebben az esetben számítani a helyét az elem szakaszában A program fordítása.