var
u, v: real;
x, y: vector;
Bu yerda u=max{xi}, v=max {yi} larni aniqlash talab qilinayotgan bo`lsin.
Vektorning eng katta hadini topishni albatta prosedura ko`rinishida tashkil qilamiz:
procedure max1(A:vector; var S: real);
var
i: integer;
begin
S := A[1];
for i:=2 to n do
if A[i] > S then S:= A[i]
end;
Bu proseduraga asosiy programmada murojat max1(x, u); max1(y, v);
ko`rinishida amalga oshiriladi.
Proseduradagi A vektorini parametr - qiymat sifatida yozib qo`yganimiz uchun, proseduraga qilinayotgan har bir murojatda A vektorga mos ravishda X va Y vektorlari ko`chirib yoziladi va so`ng prosedura o`z ishini bajaradi. Biz bilamizki, bir tarafdan, massivlarning sirtida ko`chirish amalini bajarishga ancha vaqt ketadi, ikkinchi tarafdan, har safar yangidan proseduraga qilingan murojatda A vektor uchun xotiradan qo`shimcha joy ajratiladi. SHuning uchun, proseduraning sarlavhasida quyidagicha almashtirish qilsak, yuqoridagi ikki kamchilikni bartaraf qilgan bo`lamiz:
procedure max1(var A: vector; var S: real);
Endi prosedurani e’lon qilish, undan foydalanib programma yaratish malakasini hosil qilganimizdan so`ng, uni e’lon qilishning sintaksis qoidalarini ko`rib chiqaylik.
Prosedurani aniqlash (e’lon qilish) quyidagicha amalga oshiriladi:
:
;
Bu yerda tushunchasi to`liqligicha
tushunchasi bilan bir xil sintaksis qoida asosida aniqlangani uchun, bu tushunchaga ortiq qaytib o`tirmaymiz.
Endi esa
ga ta’rif beramiz:
:=Procedure
Procedure
()
Prosedura ismi dasturchi tomonidan tanlanadigan oddiy identifikator hisoblanadi.
Formal parametrlar ro`yhati quyidagicha aniqlanadi:
:= {; }
Formal parametrlar seksiyasi deganda prosedura parametrlarining parametr- qiymat va parametr-o`zgaruvchi lardan iborat bo`lishligi tushuniladi:
:={ {, }: var {,
}:
bu yerda - formal parametrlar sifatida ishlatiladigan identifikator. Endi yuqoridagi aniqlashlarga tushuntirishlar berib o`tsak.
Yuqoridagi Bekus-Naur formulalaridan ko`rinib turibdiki, formal parametrlar ro`yhati (agar u mavjud bo`lsa) bitta yoki bir nechta o`zaro nuqta- vergul (;) belgisi bilan ajratilgan seksiyalardan tashkil topgan. Har bir seksiyada esa o`z navbatida, bitta yoki bir nechta o`zaro nuqta-vergul bilan ajratilgan formal parametrlar qatnashishi mumkin. Proseduradagi formal parametrlar sonini, dasturchining o`zi prosedurani aniqlash moxiyatidan kelib chiqqan holda tanlaydi.
Misol:
Procedure P(A:Char; B:Char; Var C:Real; Var D:Real; E:Char);
bu yerda formal parametrlar ro`yhati beshta seksiyadan iborat: A,B,E – lar Char tipli qiymatlar, C, D – lar Real tipidagi o`zgaruvchilar. Shu bilan bir qatorda har bir seksiya faqat, bitta parametrni o`z ichiga olmoqda.
Bir xil tipli, hamda ketma-ket joylashgan qiymatlarni va o`zgaruvchilarni bitta seksiyaga birlashtirib prosedura sarlavhasini quyidagicha yozish ham mumkin:
Procedure P(A, B: Char; Var C, D: Real; E: Char);
Shunday qilib, seksiya deganda bir xil tipli parametr - qiymatlar yoki parametr
- o`zgaruvchilarning ro`yhatini tushunish mumkin.
Ko`pchilik boshlovchi dasturchilar yo`l qo`yadigan quyidagi xatoliklardan ehtiyot bo`lmoq zarur:
Procedure P(Var X: Real; Y: Real); bu sarlavha
Procedure P(Var X, Y: Real);
sarlavhasi bilan bir xil emas.
Aniqlangan proseduraga murojat yoki prosedura operatoridan qanday foydalanishni aniqlashni ko`rib chiqaylik (yaratilgan prosedurani «Aktivlashtirish», ya’ni ishlatish):
:=
()
Agar prosedura aniqlanishida parametrsiz bo`lsa, unga murojat qilish ham faqat, prosedura ismini yozish bilangina amalga oshiriladi.
Agar prosedura aniqlanishida parametrli bo`lsa, albatta prosedura-operator ham unga mos faktik parametrlar ro`yhatiga ega bo`ladi. Shu parametrlar orqali proseduraga murojat qilinayotganida, formal parametrlar faollashtiriladi:
:= {,}
Ma`ruza. Funktsiyaga murojaat. Rekursiv funktsiyalar. Modullar. Modulli dasturlar va ularni tashkil etish usullari. (2 soat)
O’quv modul birliklari:
Funktsiyaga murojaat. Rekursiv funktsiyalar.
Parametrlarni lokallashtirish printsipi. Funktsiya parametrlar va protsedura parametrlar.
Modullar. Standart modullar. Modulli dasturlar va ularni tashkil etish usullari.
Do'stlaringiz bilan baham: |