76
BEGIN
r:=1;
FOR I:=1 TO N DO
r:=i*r;
FK:=r;
END;
BEGIN (*əsas hissə*)
READLN(X);
WRITELN ('X=',X);
P:=FK(X);
WRITELN ('P=',P:8);
END.
Burada funksiyanın adı
FK-dır
.
İndi isə proseduraya aid programı verək:
Misal: (x+y)
n
ifadəsini hesablamaq üçün proseduradan istifadə etməklə proqram
qurun.
PROGRAM PROSEDURA;
USES CRT;
VAR
X,Y,N:REAL;
PROCEDURE KV (A,B,K:REAL); (*prosedura hissəsi*)
VAR
Q:REAL;
BEGIN
Q:=EXP(K*LN(ABS(A+B)));
WRITELN ('NATICA- ',Q:8:2);
END;
BEGIN (*əsas proqram hissəsi*)
READLN (X,Y,N);
WRITELN('X=',X:6:2,' Y=',Y:6:2,' N=',N:4:2);
KV(X,Y,N);
END.
Bu proqramda proseduranın adı KV-dir.
Qeyd etmək lazımdır ki, Turbo Paskal dilində funksiya
və ya prosedura özü-
özünə də müraciət edə bilər. Bu rekursiya adlanır.
77
Bir çox hallarda Turbo Paskal dilində proseduranın özü verilməmişdən də ona
müraciət etmək mümkündür. Bu halda sadəcə olaraq proseduranın adı verilir və onun
sonuna FORWARD sözü də əlavə olunur. Məsələn aşağıda
verilən proqramda SK
prosedurası özündən sonra verilən MP prosedurasına müraciət edir və bu səhv hesab
edilmir.
PROGRAM NN;
USES CRT;
...................................
PROCEDURE SK (R, L:REAL); FORWARD;
PROCEDURE MP (Z, T:REAL);
VAR
A, B, TS:REAL;
BEGIN
…………………….
A:=2*Z;
B:=2*T;
TS:= SK(A,B);
..……………………
END;
PROCEDURE SK(R, L);
VAR
F, V, NX:REAL;
BEGIN
F:=sqr(R);
V:=sqr(L);
NX:= MP(F,V);
………………………
END;
…………………………
END.
Alt proqramın adından dərhal sonra aşağıdakı standart direktivlərin birinin adını
vermək olar: ASSEMBLER, EXTERNAL, FAR, FORWARD, INLINE,
INTERRUPT, NEAR.
Bu direktivlər proqramın kompilyasiyasına təsir edir.
78
Direktivlərin təyinatları aşağıdakı kimidir:
ASSEMBLER – standart maşın instruksiyalarını ləğv edir
və alt proqramin
realizəsi daxili assemblerlə həyata keçirilir;
EXTERNAL – alt proqram xarici alt proqram kimi élan olunur;
FAR – alt proqram uzaq çağırış üçün kodlaşdırılır ( yəni bu alt proqrama əsas
proqramın ixtiyari yerindən müraciət etmək olar);
NEAR - alt proqram yaxın çağırış üçün kodlaşdırılır ( yəni alt proqrama yalnız
64 Kbayt hüdudunda müraciət etmək olar);
FORWARD – kompilyatora məlumat verir ki. alt proqramin elanı sonra
veriləcək;
İNLİNE – alt proqramın daxili maşın instruksiyaları ilə realizə (yerinə yetirmə)
olunmasını göstərir;
İNTERRUPT – icra zamanı əmələ gələn kəsilmələri emal edir.