12 Rekurzív rutinok a Pascal nyelvi szervezetben, használati példák

Minden Pascal-rutin (és funkciók, eljárások) rekurzív. Ez azt jelenti, hogy a szubrutinon belül hozzáférhet a szubrutinhoz. Az ilyen fellebbezésnek azonban értelme van, a szubrutint megfelelően szervezni kell, azaz végrehajt egy rekurzív algoritmust. Például létrehozunk egy olyan függvényt, amely kiszámítja az egydimenziós tömb elemeinek összegét. Ha egy olyan összeg felhalmozására szolgáló ismert módszert alkalmazunk, amely magában foglalja a ciklus összegének kiszámítását, akkor egy ilyen függvény a következő formában létezhet:

típus mas = array [1..nn] valós;

ha n = 1 akkor sum: = a [n]

Közvetett rekurzió létrehozásakor felmerül a probléma: hogyan kell leírni a hívott eljárást. Mint tudják, a Pascal-ban minden változót, konstansot, címkét, eljárást le kell írni, mielőtt azokat megemlítenék a kijelentésekben vagy kifejezésekben, ellenkező esetben a fordító kijelenti nevüket. Közvetett rekurzióban az "A" eljárás a "B" eljárást jelenti, amelyet nem ismertetünk. A helyzet elhagyása a következő: a FORWARD direktíva előretekintő leírást alkalmaz. Ez az irányelv csak a hívott eljárás fejlécét deklarálja, helyettesíti az eljárás testét, és elhalasztja a tartalom leírását (a kezelői részt) a következőre. Az operátorok részének helye már nem számít, és nem adhat meg formális paramétereket, csak a szubrutin nevét: B eljárás (y: egész szám); Előre;

Mostantól az "A" eljárás lehetővé teszi a "B" eljáráshoz való hozzáférést, mivel az utóbbit már leírták, formális paraméterei ismertek és a fordító helyesen szervezi meg a hívását. A "B eljárás" fejléc, mielőtt a "B" eljárás szövege csak az eljárás nevét tartalmazza, mert A formális paraméterek felsorolása a fentiek szerint került felsorolásra.

13 A kezdeti értékek megadása a változókhoz. Példák a felhasználó által meghatározott különböző típusú adatokhoz való programokban történő felhasználásra.

A programban az inicializált változók módosíthatók, valamint a szokásosak is

Kapcsolódó cikkek