375
2.14.
Prosedur və funksiyalar
Hər hansı bir məqsədə çatmağı reallaşdıran operatorlar qrupunun proqramın
bir neçə yerində dəyişməz olaraq təkrarlanması məsələsi praktikada tez-tez qarşıya
çıxır. Proqramda funksiya və prosedurlardan istifadə etməklə bu problemi evvektif
şəkildə həll etmək olar.
Prosedur – proqramda müstəqil və proqram daxilində unikal ada malik olan
proqram bloku olub, müəyyən əməliyyatların yerinə yetirilməsini təmin edir.
Prosedurların adından istifadə etməklə ona proqramın müxtəlif yerlərindən
müraciət etmək olar. Prosedurun adı ifadədə iştirak edə bilməz.
Prosedurlar iki qrupa bölünür:
1.
Istifadəçi tərəfindən yaradılan;
2.
Modullarda verilən.
Prosedurlar başlıqdan və gövdədən ibarətdir. Prosedurun başlığı
Procedure
sözündən, prosedurun adından və dairəvi mötərizənin içərisində
yazılan formal parametrlərdən ibarətdir. Hər
bir formal parametrin tipi
göstərilməlidir. Prosedurun gövdəsi proqramın quruluşuna oxşardır. Başqa sözlə
prosedurun yazılış formatı aşağıdakı kimidir:
Procedure <adı
> (
)
;
<Təsvir etmə bölməsi>
begin
<operatorlar bölməsi>
End;
Əgər zərurət yoxdursa, onda prosedurun başlığında formal parametrlərin
siyahısı verilmir.
Proqramda prosedura müraciət etmək üçün prosedurun adını və dairəvi
mötərizənin içərisində faktiki parametrlərin siyahısını vermək lazımdır.
Faktiki
parametrlər bir-birindən vergüllə ayrılmalıdırlar. Prosedura müraciət olunan zaman
faktiki və formal parametrlər arasında qarşılıqlı birqiymətli əlaqə yaranır. Faktiki
parametrlər vasitəsilə lazım olan dəyişənlərin qiymətləri prosedura ötürülür və ya
prosedurda alınan nəticələr əsas proqrama qaytarılır. Faktiki və formal
parametrlərin sayı, növü və yazılma ardıcıllıqları bir-birinə uyğun olmalıdır. Bu
uyğunluq
pozularsa, onda proqramda kəsilmə halı baş verəcək. Prosedurda 3 növ
formal parametrdən istifadə olunur: parametr - qiymət, parametr - dəyişən,
parametr – sabit. Prosedurda parametr - qiymətə əsas proqramdan faktiki
parametrlərin qiyməti ötürülür. Proqram yerinə yetirildikdə faktiki parametrin
qiyməti hesablanaraq operativ yaddaşa yazılır. Prosedura müraciət zamanı isə
operativ yaddaşdan onun surəti prosedura ötürülür və bu
qiymət formal parametrə
mənimsədilir. Bu halda faktiki parametr parametr-qiymətinin tipinə uyğun ifadə də
ola bilər.
Əgər prosedurdan əsas proqrama hər hansı dəyişənin qiymətini ötürmək
tələb olunursa, onda həmin dəyişən prosedurun başlığında formal parametr –
parametr - dəyişən kimi
va
r
sözü ilə birlikdə təsvir olunmalıdır. Bu
halda faktiki
376
parametrlər ifadə ola bilməzlər. Məsələn,
n
x
y
=
funksiyasını hesablama
proqramına baxaq.
program XN;
var
n:integer;
x,y:real;
procedure step1(m:integer; x:real;var y:real);
var
i:integer;
begin
y:=1;
for i:=1 to m do
y:=y*x;
end;
begin
writeln (' x,n -i daxil edin') ;
readln (x,n);
If n=0 then y:=1
else
if n>0 then step1(n,x,y)
else
step1(n,1/x,y);
writeln (x:4:2,' ustu ',n:3,' ðàâíî ',y:4:2);
end.
Proqram yerinə yetirildikdə monitora x və n qiymətlərinin daxil edilməsi
haqqında məlumat əks olunur. İstifadəçi x və n-in qiymətlərini daxil etdikdən sonra
n-in qiyməti yoxlanılır.
0
=
n
olduqda
0
=
y
olur.
0
>
n
olduqda
n
x
y
=
funksiyasını hesablamaq üçün
step1
proseduruna müraciət olunur. Bu zaman
prosedurun
m, x
formal
parametrlərinin qiyməti
n,x
faktiki parametrlərin
qiymətləri ilə əvəz olunur, hesablama aparılır və nəticə -
y
əsas proqrama
qaytarılır. Bundan sonra çıxış proseduru vasitəsilə nəticə operativ yaddaşdan
monitora göndərilir.
Parametr – sabit adından məlum olduğu kimi əsas
proqramdan prosedura
hər hansı sabitin ötürülməsini təmin edir. Parametr-sabit prosedurun başlığında
const
işçi sözü ilə birlikdə təsvir olunmalıdır.
Eyni bir proqramda bir neçə prosedur ola bilər. Bir neçə prosedur bir-birinin
daxilində yerləşə bilər. Bu prosedurlara müraciət etmə qaydası yuxarıdan aşağıya
doğru, yəni xarici prosedurdan daxili prosedura doğru olur.
Proqramlaşdırıcı tərəfindən təyin olunan funksiya başlıqdan və funksiyanın
gövdəsindən ibarətdir. Başlıq
Function
sözündən, funksiyanın adından, dairəvi
mötərizənin içərisində formal parametrlərin siyahısından və funksiyanın qiymətinin
tipindən ibarət ola bilər. Prosedurlarda olduğu kimi funksiyalarda da formal
parametrlər zəruri olduğu halda yazılır.
Yazılış formatı aşağıdakı kimidir:
Function (formal parametrlər): ;
<Təsvir etmə bölməsi>