Eljárás hívás eljárás hívás rutinok által végzett bizonyos operátor az űrlap

CALL szubrutin neve ([aktuális paraméter lista])

A funkció egy operandus egy expressziós. Ez jelen lehet a jobb oldali a értékadó operátor. Például:







a = függvény neve ([aktuális paraméter lista])

Tényleges paraméterek lehetnek kifejezések, nyelvtani és konstansok, egyszerű változók, tömbök és a keresztmetszete, mezőelemekre felvétel elemek feljegyzések, húrok, részsztring, eljárások és a beépített funkciókat. Ha a tényleges paraméter a külső eljárás, ez DOL-feleségek leírásban olyan külső attribútum. Ha az aktuális paraméter egy beépített Xia eljárást meg kell állapítani, belső tulajdonság.

A formális paraméterei az eljárást a leírás és aktuális paraméterek amikor hivatkozva meg kell felelnie a vonatkozó szabályok:

- megfelelés számát (formális paraméterek, ugyanazokat a bizonyítékokat);

- megfelelő sorrendje: az első tényleges paraméter megfelel az első hivatalos, a második - a második stb

- megfelelés típusa: típusoknak megfelelő paramétereket meg kell egyeznie.

1. példa A program számításokat a hossza a háromszög oldalai, a koordinátáit csúcsok megadott, segítségével a belső funkciót.

Program Treug1

R = S (x1, y1, x2, y2); print * r! 1.414214

R = S (x1, y1, x3, y3); print * r! 1.000000

R = S (x2, y2, x3, y3); print * r! 1.000000

valós függvény S (W1, z1, w2, z2)

end program flocal

2. példa A program számításokat a hossza a háromszög oldalai, a koordinátákat a csúcsok által meghatározott külső rutin.

Program Treug2

CALL S (x1, y1, x2, y2, R); print * r! 1.414214

CALL S (x1, y1, x3, y3, R); print * r! 1.000000







CALL S (x2, y2, x3, y3, R); print * r! 1.000000

end program Treug2

szubrutin S (W1, z1, w2, z2, L)

igazi w1, z1, w2, z2, L

A matematikában, az úgynevezett rekurzív definíció bármely fogalom önmagában. A klasszikus példa a meghatározása a faktoriális nagyobb egész szám, vagy egyenlő nullával.

Itt a funkció faktoriális úgy definiáljuk, a faktoriális. Ez könnyen érthető érvényességét ennek megállapítását. Ahol n> 0

0. lehetőség! = 1 triviális. De opornoe érték, ahonnan indul „lassulhat” minden további értékek a faktoriális:

1! = 1 * 0! = 1 * 1 = 1; 2! = 2 * 1 = 2; 3! = 3 * 2! = 6, stb

Tekintsük eljárás funkciót, használjuk a leírásában a rekurzív fenti képlet.

Rekurzív függvény ifact (n) eredmény (FAV)

Az eredmény típusa egy rekurzív függvényt lehet meghatározni, és a következő két módon:

rekurzív integer függvény ifact (n) eredmény (FAV)

integer rekurzív függvény ifact (n) eredmény (FAV)

A rekurzív függvények definiálása szükséges a változó használható az eredmény. Ebben a példában, egy változó fav.

A fő program, amely a külső ifact funkció értékének kiszámítására K. a következő formában:

Egész k ifact

Nyomtatás *, 'Type R'

Write (*, '(2X, I2, A, I6)') K, '! =', Ifact (K)

Tegyük fel, hogy a fő program egy egész változó, hogy egy bemeneti szám 3. Amikor számolási funkció ifact érv 3 ismét fellebbezni az ifact funkció (2). Ez a kezelés megköveteli kiszámításához ifact (1). Végül, a számítás ifact (0) számszerű eredményt kapunk 1. Azután számítástechnikai sodratlan lánc fordított sorrendben:

ifact (1) = 1 * ifact (0) = 1,

ifact (2) = 2 * ifact (1) = 2,

ifact (3) = 3 * ifact (2) = 6.

A sorozat rekurzív hívások kell feltétlenül megy egy bizonyos értéket. A légy az útvonal egymást követő események gép tárolja egy speciális területe a memória, az egy verem. Így a megvalósítása egy rekurzív függvény zajlik két szakaszból áll: az előremenetben - kitöltésével a verem; fordított - a lánc számításai a fordított útvonalon a veremben tárolt.

Használata rekurzív függvények - Jó örvendetes a szempontból az esztétika programozó. Azonban ez az út nem mindig a legésszerűbb. Figyelembe véve a probléma n. Ez megoldható az alábbiak szerint:

Nyilvánvaló, hogy ez a változat a program gyorsabban fut, mint a rekurzív. És amikor fontos, hogy csökkenjen a műsoridő, előnyben kell részesíteni az utóbbi lehetőséget.