Faktik parametrlər
Yardımçı alqoritmlərin proqramlaşdırılması. Yardımçı alqoritmlərintəsviri proqramın ilkin mətninə daxil edilir. Proqramlaşdırma dillərinin əksəriy-yətində altproqramın ilk çağırılmadan öncə təsvir olunması tələb olunur.
Altproqramın təsviri başlıqdan, gövdədən və sonluqdan ibarətdir. Başlıq alt-proqramın adından və formal parametrlərin təsvirindən ibarətdir. Funksiya üçünhəm də qaytarılan qiymətin tipi göstərilir:
function Square(x: Integer) : Integer; begin
Square := x*x;
end;
Pascal dilində xüsusi sonluq operatoru olmur. Funksiyanın gövdəsibeginvəendoperatorlarının arasında yerləşdirilir.
Funksiyanın qaytardığı qiymət onun adıyla üst-üstə düşən dəyişənə mənimsədilməlidir.
Funksiyanın gövdəsinin daxilində bu dəyişəndən mənimsətmə operatorununyalnız sol tərəfində istifadə edilə bilər.
N ədədinin faktorialı dedikdə 1-dən n-dək ədədlərin hasili başa düşülür(n! = 1.2.3. ... .n). Aşağıdakı funksiya ədədin faktorialını hesablayır:
function Fact(n : Integer) : Integer; var
i : Integer; res : Integer; begin
res := 1;
for i := 1 to n do res := res * i; Fact := res; end;
Prosedurun təsvirində isə qaytarılan qiyməti hesablamağa lüzum yoxdur. Aşa-ğıda iki tam ədədin cəmini çıxışa verən prosedur təsvir olunub:
procedure PrintSum(x, y: Integer); begin
WriteLn(x+y);
end;
Adətən hesab olunur ki, altproqramın təsviri onun ilk istifadəsindən öndə yer-ləşdirilməlidir (çünki translyatora belə əlverişlidir). Ancaq bu müəyyən səbəblərdənproqramçı üçün rahat olmaya bilər. Bəzi proqramlaşdırma dilləri altproqramıntəsvirini onun birinci istifadəsindən sonra yerləşdirməyə imkan verir, ancaq bu haldaaltproqramın istifadədən öncə sadələşdirilmiş halda elan edilməsi tələb olunur.
Pascal dilində bunun üçün prosedurun başlığı təkrarlanır. Ondan sonrabegin açar sözünün olmaması bunun təsvir deyil, yalnız elan olduğunu bildirir.
procedure PrintSum(x, y: integer);
Elanın qabaqcadan olması altproqramın parametrləri haqqında translyatoraməlumat verir. Bu isə altproqramın çağırılmasını düzgün emal etməyə imkan verir.
Dostları ilə paylaş: |