Arrays paraméterek

Az alprogramok paraméterei nemcsak egyszerű, hanem összetett típusok, például tömbök, rekordok, készletek változóinak is lehetnek. Illusztrációként vegye figyelembe a tömböket.

A feladat. Két tömb van, két szám mindegyik. Adja meg az egyes tömbök elemeinek összegét. Használja az összeg függvényt, amelynek egyetlen paramétere az összegző tömb neve.

TYPE vektor = az Integer [1..2] tömbje;

FUNKCIÓ összege (c: vektor): Integer;

WriteLn (összeg (a), '', összeg (b));

A függvény összegének (a) kiszámításának kezdete. A Pascal helyettesíti az a tömb elemeinek értékét a cellákban a c tömb elemei számára. A (b) függvényösszeg számításából kiindulva. A Pascal helyettesíti a b tömb elemeinek értékeit a cellákban a c tömbelem elemei számára.

A funkció címében hibás lenne írni

függvény összege (c: tömb [1..2] egész szám): Integer.

Először meg kellett határozni a tömb típusát a TYPE szakaszban. majd ezt a definíciót használjuk a és b leírásában. és a funkció fejlécében. Ez a Pascal szintaxisának követelménye.

Paraméter-értékek és paraméterek-változók

Sok eljárás nem csak rajzol vagy hangzik, hanem a funkciókhoz hasonlóan kiszámít valamit hasznosnak. Például a következő program B művelete növeli az x globális változót az y paraméter értékével.

B) PROCEDURE (y: Integer);

A 1001-es szám nyomtatódik.

A projektmenedzserek azonban nem szeretik a szubrutinok globális változóinak nevét. Függetlenül attól, hogy ez nem elég - a fejre gondolni fogunk, hogy megváltoztassuk a változó nevét, és mi az akkor - újraírni az összes szubrutinokat? Ezért az úgynevezett változó paraméterekkel jöttek létre. Itt van ugyanaz a program a használatukkal:

B eljárás (y: Integer; var c: Integer);

Itt y egy jól ismert paraméter. Ezt paraméter-értéknek hívják. A szubrutin végrehajtásának kezdetén az értékparaméter egy helyre kerül a veremre, és ott a megfelelő tényleges paraméter (1) értéke kerül elküldésre.

Kérdés: Van értelme írni B (1, 1000). Válasz: Nem, mert az alprogram nem tudja, melyik változó adja az eredményt 1001-re. Természetesen a Pascal hibaüzenetet fog adni.

Feladatok a "Eljárások és funkciók" témakörben

Mi az eljárás? Mi a funkció? Mi a különbség?

Soroljon be néhány szabványos funkciót és eljárást.

Kapcsolódó cikkek