Arraysok az eljárások és funkciók paramétereiben - élet-prog
A tömbök, mint más típusú adatok, paraméterekként működhetnek az eljárásokhoz és funkciókhoz. Így néz ki a függvény, amely a valós számok egy csoportjában átlagértéket számol:
const Max = 63; típus TStatistics = tömb [0..Max] Double; függvény Átlagos (const A: TStatistics): Dupla; var I: Integer; kezdő Eredmény: = 0; I: = Alacsony (A) - Magas (A) eredmény esetén: = Eredmény + A [I]; Eredmény: = Eredmény / (Magas (A) - Alacsony (A) + 1);
A függvény Átlag egy argumentumként ismert dimenzió tömböt veszi fel. A tömbparaméter fix méretű követelménye gyakran túlzott visszatartó tényező. A középérték megállapítására szolgáló eljárásnak tetszőleges hosszúságú tömbökkel kell dolgoznia. Ebből a célból nyitott paramétercsoportokat vezetnek be a Delphi nyelvre. Ezeket a tömböket a Modula-2 Delphi nyelvének fejlesztői vették kölcsön.
1. Nyitott tömb-paramétert írunk le a. míg a tömb határai elmaradnak:
függvény Átlagos (const A: tömb kettős): kettős; var I: egész szám; kezdő Eredmény: = 0; I: = Alacsony (A) - Magas (A) eredmény esetén: = Eredmény + A [I]; Eredmény: = Eredmény / (Magas (A) - Alacsony (A) + 1);
2. alprogram belsejében átlag alsó határa a nyitott tömb nulla (Low (A) = 0), de a felső (High (A)) nem ismert, és úgy tűnik, csak a végrehajtás szakaszában a program.
3. Nyitott tömbök csak kétféleképpen használhatók. hozzáférést biztosít a tömbelemekhez, és átviheti a tömböt egy másik alprogramba, amely elfogad egy nyílt tömböt. Nem adhat meg egy nyitott tömböt a másikhoz, mert méretüket nem ismerik előre.
Íme egy példa az átlagos funkció használatáról:
var Statisztika: tömb [1..10] dupla; Átlag: Dupla, kezdődik. Átlag: = átlag (statisztika); Átlag: = átlag ([0, véletlenszerű, 1]); végén;
4. A második állításban a nyitott tömb az átlagos függvény hívásakor épül fel. A nyílt tömb konstruktora a kifejezések egy zárójelű listája. A konstansok, változók és függvények kifejezésekben használhatók. A kifejezés típusának kompatibilisnek kell lennie a tömbelemek típusával. Egy nyílt tömb létrehozása megegyezik egy ideiglenes változó létrehozásával és inicializálásával.
5. A nyitott tömbök csak szubrutinokra adhatók át értékként vagy parametrikus állandóként.
6. A Delphi nyelv egyes könyvtár rutinjai a konstans konstans tömbök típusának tömbjét veszi fel. Az ilyen paraméterként átadott tömb szükségképpen létrejön a szubrutinhívás idején, és különböző típusú elemekből (!) Állhat. Fizikailag olyan rekordokból áll, mint a TVarRec. a tömbelemek típusának és értékének kódolása (a bejegyzések alább kerülnek ismertetésre). A nyitott konstans tömb lehetővé teszi a különböző típusú paraméterek változó számú különböző típusainak emulálását, és például a Formázás függvényben formázza a karakterláncot.