Formális és aktuális paraméterek Turbo Pascal 7

10.3. Formális és aktuális paraméterek

funkció Max (A: arrayt1..100] Real): Real;

Megfelelően rögzíteni a cím kell, hogy legyen a fő program, adja meg, hogy milyen típusú a tömb, és utána azt a címben:

írja Tarr = arrayt1..100] Real; működni Max (A: Tarr): Real;

Ha alprogram hívása formális paraméterek helyett a megfelelő tényleges hívó program vagy alprogram.

10.3.1. paraméterek értékeit

Érték paramétereket kap a fő program rutin a köteget a másolat formájában, és ennek következtében a saját opciós program alprogram nem változik.

A paraméter értéke a fejlécben megadott az alprogram a nevét és vastagbél - típus. Típusú paraméter értékek bármelyike ​​lehet, kivéve a fájlt.

Ha a paraméter-értékeket adjuk meg néhány fajta, akkor lehet kombinálni jól csoport od forgalomba nevük vesszővel elválasztva, majd meghatározza az általános típusát mint említettük, az egyes paraméter csoportok pontosvesszővel elválasztva.

eljárás lnp (Max, Min: Real; N: Word);
működnek Mult (X, Y: Integer): Real;

A tényleges paraméterértékek helyett a paramétert, ha a szubrutin hívás, lehet bármilyen kompatibilis kifejezést rendeljen (lásd 9.3 ..) Nem komponenst tartalmazó fájlt, például:

Np (Abs (Z), -abs (T), 2 * K);
M: = Mult (X + Y, X - Y);
MA: = Max (B, 5);

Példa. Funkció kiszámításához a maximális elem a tömbben. Hagyja, hogy a fő program meghatározott típusú tömb, egy sor ilyen típusú és egy változó típusú egész szám

típus
Tarr = array [1..100] az egész;
var
Massiv: Tarr;
Maxim: integer;

A funkció ebben az esetben lehet:

működnek Max (Mas: Tarr, N: Byte): egész;
var Ma: integer;
i: Byte;
kezdődik
Ma: = Mas [l];
i: = 2 és N do
ha Ma

Meg kell jegyezni, hogy az alprogram csak dolgozni tömbök Tarr. Más típusú tömbök lesz létrehozni egy másik hasonló rutin. Továbbá, ha a szubrutin verem egy másolatot készít az eredeti tömb, ami csökkenti a töltési sebesség és a túlzott verem információkat.

10.3.2. változó paraméterek

Változó paraméter meg van adva a fejlécben az alprogram hasonló a paraméterértékek, de csak előtte a paraméter neve van írva var kulcsszóval. Action szó var kell alkalmazni a legközelebbi pont az a lényeg, hogy van. E. belül az azonos csoportba.

eljárás MaxMin (A: Tarr; var Max, Min: Real; N: Word);

Itt, Max, Min - változó paraméterek, A és N - paraméterek értékei.

Típusú változó paraméterek lehetnek, beleértve a fájlt.

Egy szubrutin hívás helyét paraméter változó, mint az aktuális paraméter azonos típusú változót kell használni (lásd. F. 9.1). Így, ha a formális paraméter típusának meghatározása a következő:

írja Tarr = array [1..100] az egész;

és a tényleges paraméter egy változó vagy egy gépelt állandó típusú Tarr.

Példa. Funkció kiszámításához a maximális elem a tömbben. Mi módosítani szubrutin azzal példa 10.3.1 segítségével változtatható paraméter, amely az első paraméter .:

funkció Max (var Mas: Tarr, N: Byte): egész;
var Ma: integer;
i: Byte;
kezdődik
Ma: = Mas [l];
i: = 2 és N do
ha Ma

10.3.3. Paraméterek állandók

A paraméter állandó a fejlécben megadott az alprogram hasonló érték paraméterekkel, de még mielőtt a paraméter neve van írva kulcsszó const. Action szó const vonatkozik a legközelebbi pont az a lényeg, hogy van. E. belül az azonos csoportba.

funkció NewString (const S: string): string;

Típusú paraméter értékek bármelyike ​​lehet, kivéve a fájlt.

Egy szubrutin hívás helyét paraméter változó, mint az aktuális paraméter lehet bármilyen kompatibilis kifejezést rendeljen (lásd. F. 9.3) nem tartalmazó fájl komponenst.

Paraméter-konstans nem vihetők át a másik alprogram mint tényleges paraméter.

Példa. Funkció kiszámításához a maximális elem a tömbben. . Példa 10.3.1 eluálószerként n, mint az első paraméter beállítás-állandó:

funkció Max (const Mas: Tarr, N: Byte): egész;
var Ma: integer;
i: Byte;
kezdődik
Ma: = Mas [l];
i: = 2 és N do
ha Ma

10.3.4. Paraméter nélkül típus

A Turbo Pascal, akkor a paraméterei változók és konstans paraméterek megadása nélkül a típus. Ebben az esetben a tényleges változó paraméter lehet bármilyen típusú, és a felelősséget a felhasználás megfelelőségének egy paraméter van rendelve a programozó.

funkció Egyenlő (var Paraml, param2; Len: Word): Boole;

Ott param1, param2 --variables nélküli típusú (helyett lehet használni, például bármely változók egyszerű típusú, típus-tömb típusú rögzítési, stb ...); Len - a paraméter értékét.

Meg kell jegyezni, hogy a paraméter nélküli belüli típus rutinokat, és használat előtt át kell alakítani egy bizonyos típusú alkalmazásával az azonosító a megfelelő típusú javallt Sec. 9.4, az eredmény lehet bármilyen méretben.

Példa. Funkció kiszámításához a maximális elem a tömbben. Tekintsünk egy másik példakénti kiviteli alak szubrutin n 10.3.1 használva az első paraméter a változó paraméter típustalan .:

funkció Max (var Mas; N: Byte): egész;
típus
tArray = array [1..Maxint] az egész;

var Ma: integer;
i: Byte;
kezdődik
Ma: = tArray (Mas) [1];
i: = 2 és N do
ha Ma

10.3.5. A tömbök és a nyílt vonalon

A 7.0 változat lehet adni, mint a változó paramétereket kell használni tömbök 1 és egy nyitott vonal, amelynek méretei nincsenek meghatározva. A tényleges paraméter ebben az esetben lehetőség van arra, hogy használja egy sor vagy string bármely zmera PA-1, de a tömb kell állnia az azonos alkatrészeket a komponensek j nyitott tömb. Ilyen paramétereket beírni a szubrutin MO] SFA fogantyú karakterlánc vagy tömb minden méretben. A tényleges méret a tömb ebben az esetben meg lehet határozni Magas funkció (lásd, J p. 16.1). Nyílt tömb definíciója szabályos elrendezésben, azonban nem határozza, hogy milyen típusú az index. Meg kell jegyezni, hogy az indexelés nyitott tömb mindig a nulláról kezdi, és a maximális érték az index elem Nagy funkciót.

Példa. Funkció kiszámításához a maximális elem a tömbben. Tekintsük a példakénti kiviteli alak szubrutin n 10.3.1 használ, mint egy átadott paraméter tömb nyitva .:

funkció Max (var Mas: tömb Integer): egész;
var Ma: integer;
i: Byte;
kezdődik
Ma: = Mas [0];
i: = 1 Magas (MAS) do
ha Ma

10.3.6. Paraméterek eljárások és paraméterek függvényében

Paraméterátadásra is lehet paraméterbeállítással eljárás vagy függvény, azaz a. E. beállítása eljárás típusát. Tény, hogy ez a lehetőség az érték paraméter t. Hogy. Írandó nélkül fenntartott szó var.

Egy aktuális paraméter ebben az esetben alkalmazott, egy megfelelő eljárást, vagy a funkció, amely a szükséges számú szükséges típusú paraméterek.

A paraméterek, eljárások és funkciónak vannak ugyanazon szabályok vonatkoznak, mint a többi változó eljárási típus: rutinokat kell fordítanunk a kulcs

Példa. A program a nyomtatási asztal összeadás és a szorzás két egész szám az adott tartományban.

programot EXAMPLE15;
típus
Func = függvény (X, Y: Egész): egész;
($ F +)
funkció hozzáadása (X, Y: Egész): egész;
kezdődik
Hozzáadása: = X + Y
végén;
funkció Szorzás (X, Y: Egész): egész;
kezdődik
Szorzás: = X * Y
végén;

eljárás PrintTable (A, B: egész; Működés: Func);

var
i, j: egész;
kezdődik
i: = 1-től a do
kezdődik
j: = 1 itt
Write (Operation (i, j): 5);
WriteLn
végén;
WriteLn
végén;

kezdődik
PrintTable (10, 10, hozzáadása);
PrintTable (10, 10, Szorzás)
végén.