Parametr-qiymatlar parametrlari berilganlarni qism dasturlar (protsedura va funksiya)ga berish uchun ishlatiladi. Bunda yuqorida aytilganidek ular soxta parametrlar ro’yxatida toifalari ko’rsatilgan holda, bir-birlaridan vergul bilan ajratilgan holda sanab o’tiladi.
Masalan:
PROCEDURE PRM1(I,J5: INTEGER; R,Z: REAL);
FUNCTION PRM2(I1,J1: INTEGER; R1: REAL): REAL;
Ularga mos kelgan haqiqiy parametrlar sifatida o’sha turdagi ixtiyoriy ifoda ishlatilishi mumkin, xususiy holda konstanta (o’zgarmas) yoki o’zgaruvchi bo’lishi ham mumkin.
Yuqoridagi zqam va zq(a5Qa-5)G’(2am) misollari uchun tuzilgan dasturlardagi protsedura va funksiya qism dasturlarining sarlavhalaridagi N, X o’zgaruvchilar parametr-qiymatlaridir. Protsedura yoki funksiya qism dasturlari chaqirilganda haqiqiy parametrlar hisoblaniladi va soxta parametrlarning boshlang’ich qiymatlari sifatida ishlatiladi, ya’ni qiymatlar qo’yilishi amalga oshadi. Qism dasturlarning bajarilishi davomida soxta parametrlar o’zgarishi mumkin. Lekin qism dasturni chaqirguncha qiymatlarini saqlaydigan ularga mos kelgan haqiqiy parametr- o’zgaruvchilarga ta’sir etmaydi. Shuning uchun ham parametr-qiymatlar natijani qism dasturdan asosiy dasturga uzatishda ishlatilishi mumkin emas.
Masalan, quyidagi dastur:
Procedure PR;
x: integer;
Procedure izm(y:integer);
begin
y:q1 end;
begin
x:q0; izm(x);
writeln(x)
end.
bajarilgandan keyin bosmaga x ning 0 ga teng qiymati chiqadi.
Parametr-o’zgaruvchilar parametrlari protsedura bajarilishidan hosil bo’lgan natijani haqiqiylash uchun ishlatiladi va ular soxta parametrlar ro’yxatida VAR xizmatchi so’zidan keyin toifalari ko’rsatilgan holda sanab o’tiladi.
Masalan:
procedure prm3(var k,l: integer; var z: real);
funksiya qism dasturining sarlavhasida parametr-o’zgaruvchilarni ishlatish tavsiya etilmaydi, agar qism dasturlarni bajarilishidan hosil bo’ladigan natijalar bir nechta bo’lsa,u holda protsedura qism dasturini ishlatish maqsadga muvofiq bo’ladi.
Soxta parametr o’zgaruvchilarga mos kelgan haqiqiy parametrlar faqat o’sha turdagi o’zgaruvchilar bo’lishi mumkin.
Yuqorida keltirilgan zqam misolning STEP1 protsedura qism dasturidagi soxta parametr y o’zgaruvchi hisoblanadi.
Protseduraga murojaat qilinganda va soxta parametrlar haqiqiy parametrlar bilan almashtirilganida ularning qiymatlari emas, balki o’zgaruvchilarning adreslari beriladi. Natijada soxta parametrlarning hamma o’zgarishlari haqiqiy parametrlarga ham tegishli bo’ladi. Masalan, quyidagi dastur
Program pr;
var x: integer;
procedure izm(var y: integer);
begin y:q1 end;
begin x:q0; izm(x);
writeln(x) end.
bajarilganidan keyin bosmaga x ning 1 ga teng qiymati chiqadi.
Bundan tashqari Paskal tilida soxta parametrlar sifatida protsedura va funksiyalarning nomlarini ham ishlatish mumkin.
Parametr-protseduralar parametr sifatida ishlatilganda ular soxta parametrlar ro’yxatida PROCEDURE xizmatchi so’zidan keyin ko’rsatiladi:
PROCEDURE PRM4(I, J: INTEGER; VAR Z: REAL;
PROCEDURE FF);
Parametr-funksiyalar parametr sifatida ishlatilganda ular soxta parametrlar ro’yxatida funksiyani toifasi ko’rsatilgan holda FUNCTION xizmatchi so’zidan keyin ko’rsatiladi:
PROCEDURE PRM5(I, J: INTEGER; VAR Z: real; FUNCNION FG: REAL);
Qism dastur chaqirilganda soxta parametr-protseduralarining va parametr-funksiyalarining o’rniga ularga mos kelgan haqiqiy protsedura va funksiyalarning nomlari qo’yiladi. Bunda soxta parametrlar sifatida ishlatilgan protsedura va funksiyalar o’z navbatida parametrlarga ega bo’lsa, u holda bu parametrlar faqatgina parametr - qiymat bo’lishi mumkin.
Do'stlaringiz bilan baham: |