Protsedura qism dasturi va unga murojaat. Protsedura qism dasturi qism dasturda bir necha natija hosil qilish kerak bo`lgan hollarda ishlatiladi. Har bir protsedurani tasvirlash sarlavhadan boshlanadi. Protsedura sarlavhasining umumiy ko`rinishi quyidagicha:
Procedure < nom > (< soxta parametrlar ro`yxati >);
bu yerda procedure - xizmatchi so`z; <nom> - protseduraning nomi; <soxta parametrlar ro`yxati> - turlari ko`rsatilgan va natijalarni ifodalaydigan nomlar turlari bilan sanab o`tiladigan qator.Formal parametrlar ro`yxatida parametr-qiymat, parametr-o`zgaruvchilar (bulardan oldinda var xizmatchi so`zi turishi shart), parametr-protseduralar (bularning oldida procedure xizmatchi so`zi turishi kerak) va parametr-funktsiyalar (bularning oldida function xizmatchi so`zi turishi kerak) bo`lishi mumkin.
1-misol. y= xn ni protsedura shaklida ifodalang.
Yechish.
procedure Step2(n; integer; x: real; var y: real);
var i: integer;
begin
y:= 1;
for i:=1 to n do
y:= y*x
end;
Bunda protseduraning nomi Step2 bo`lib, soxta parametrlar ro`yxatida esa berilganlarni aniqlovchi parametrlar - n, x va protsedura natijasini ifodalovchi prametr – y turlari bilan sanab o`tilgan. Protsedurani bajarish uchun asosiy dasturning ixtiyoriy joyidan unga murojaat qilish kerak. Protseduraga murojaat va uni bajarish quyidagi operator yordamida amalga oshiriladi: < protsedura nomi > (< aniq parametrlar ro`yxati >);
Bunda qism dastur tasvirida keltirilgan protseduraga murojaat qilishda soxta va aniq parametrlar orasida to`liq moslik bo`lishi shart, ya’ni soxta va aniq parametrlar soni bir xil bo`lishi, kelish tartiblari mos tushushlari va ularning turlari bir xil bo`lishi kerak.
2-misol.
bunda 1/a-m = (1/a)-m ekanini e’tiborga olsak, u holda dastur quyidagicha bo’ladi:
Program Step2;
Var m: integer ; a, z: real ;
procedure step1 (n: integer; x: real; var y: real);
var i: integer;
begin y:= 1; for i:= 1 to n do y:= y*x; end;
begin read(a, m);
if m= 0 then z:=1 else
if m >0 then step2(m, a, z) else step2(-m, 1/a, z);
writeln(a:8:3, m:3, z)
end.
|