1. Parametr-qiymatlar. Parametr-qiymatlar odatda protseduraga boshlang‘ich ma’lumotlarni uzatishda foydalaniladi. Ularni ro‘yxatda vergul bilan ajratib, turi ko‘rsatiladi.
Misol:
procedure m1(i,j:integer; r,z:real);
Faktik parametrlar sifatida turlari qiymat-parametrlar turi bilan bir xil bo‘lgan ifoda, o‘zgaruvchi yoki konstanta bo‘lishi mumkin.
Protseduraga murojaat qilinganda faktik parametrlar hisoblanadi va rasmiy parametrlar bu qiymatlarni mos ravishda boshlang‘ich qiymat sifatida qabul qiladi.
Protsedura ishlashi jarayonida ramziy parametr-qiymatlarga mos o‘zgaruvchilar qiymati o‘zgarishi mumkin, lekin bu qiymatlar protsedura ichidagina ishlatilishi mumkin va u protsedura ishini tugatgandan keyin saqlanib qolmaydi. Shuning uchun ham parametr-qiymatlar protsedurani natijasini programmaga uzatish uchun ishlatilmaydi.
Misol:Quyidagi programma ishlagandan so‘ng x ning qiymati sifatida 0 chop etadi.
Program m2;
var x : integer;
procedure izm ( y : integer);
begin
y: =1;
end;
begin
x : = 0; izm(x);
writeln(x)
end.
2. Parametr-o‘zgaruvchi. Parametr-o‘zgaruvchilar protsedurada amalga oshirilgan ishlar natijasini aniqlashda ishlatiladi va rasmiy parametrlar ro‘yxatida VAR xizmatchi so‘zidan keyin yozilib turi ko‘rsatiladi.
Misol:
Procedure m3 (var k, l : integer; var z : real);
Ramziy parametr-o‘zgaruvchiga mos keluvchi faktik parametr sifatida faqat shu turdagi o‘zgaruvchi kelishi mumkin. Bu holda protseduraga murojaat qilinganda faktik parametrlarning xotiradgi adresi jo‘natiladi (qiymati emas). Natijada ramziy parametr faktik parametr adresini oladi, ya’ni xotiraning bitta katagi ikki nom bilan belgilanadi va protsedurada ramziy parametrlar ustida qilingan barcha ishlar faktik parametrlarga ham tegishli bo‘ladi.
Misol:Quyidagi programma ishlagandan so‘ng x ning qiymati sifatida 1 qiymatini chop qiladi.
Program m4;
var x : integer;
procedure izm(var y : integer);
begin
y: =1;
end;
begin
x: =0; izm(x);
writeln(x)
end.
Agarda protsedura parametrlari hosilaviy tur bo‘lsa, masalan, jadval kattaliklar, bu turlarni asosiy programmaning turlar e’lon qilish bo‘limida e’lon qilish kerak. Protsedura e’lonida esa e’lon qilingan turdan foydalanish kerak. O‘lchami katta bo‘lgan o‘zgaruvchilarni parametr - o‘zgaruvchi ko‘rinishda e’lon qilish mashina xotirasini va mashina vaqtini tejash nuqtayi-nazaridan afzallik beradi.
Do'stlaringiz bilan baham: |