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.