Funksiyalar, umuman olganda, biror bir qiymatni hisoblashga mo‘ljallab tuziladi. Pirovard natijada hisoblangan qiymat funksiya nomiga o‘zlashtiriladi.
Protseduralar esa ma’lum bir amallar ketma-ketligini bajarish maqsadida tuziladi. Bunda biror natijaviy qiymat hisoblanishi emas, balki berilgan amallar ketma-ketligi bajarilishining o‘zi ahamiyatga ega.
Masalan, dasturda tomonlari berilgan uchburchak yuzini bir necha marta hisoblash kerak bo‘lsa, funksiyadan foydalanish maqsadga muvofiq. Chunki bunda har safar birgina qiymatni – uchburchakning yuzi hisoblanadi. Agar uchlarining berilgan tomonlari bo‘yicha ekranda bir nechta uchburchak chizish talab etilgan bo‘lsa, tabiiyki, birgina qiymatni hisoblashga mo‘ljallangan funksiya emas, balki, ekranda uchburchak chizish jarayonini tashkil etuvchu protsedura tuzish lozim.
Protsedura va funksiyalarni ularga murojaat etishda beriladigan ma’lum bir qiymatlarga bog‘liq qilib tashkil etish ham mumkin. Bu qiymatlar parametrlar, shu tarzda tashkil etilgan protsedura va funksiyalar esa parametrli protsedura va funksiyalar deyiladi.
Protsedura va funksiyalar sarlavha bilan boshlanadi. Protsedura sarlavhasi quyidagi umumiy ko‘rishga ega:
Procedure (parametrlar);
Funksiya sarlavhasi quyidagi umumiy ko‘rishga ega:
Function (parametrlar) : ;
Parametrli protsedura va funksiyalarda parametrlarning turlari ham tavsiflanadi. Masalan,
Function daraja (a, n : Integer):Integer; yoki Procedure shifr(satr:String);
Protseduraning umumiy tuzilishi:
Funksiyaning umumiy tuzilishi:
Procedure
(parametrlar);
Label
;
Const
;
Var
;
“Ichki” protsedura va funksiyalar;
begin
{dastur}
end;
Function (parametrlar):turi;
Label
;
Const
;
Var
;
“Ichki” protsedura va funksiyalar;
begin
{dastur}
end;
Ko‘rib turganingizdek, protsedura va funksiyalar o‘xshash tuzilishga ega. Ularning tuzilishi dasturning tuzilishidan deyarli farq qilmaydi. Shuni aytish lozimki, asosiy dasturda tavsiflangan o‘zgarmas va o‘zgaruvchilar umumiy (global) o‘zgarmas va o‘zgaruvchilar deyiladi. Ulardan dasturning istalgan qismida, jumladan, protsedura va funksiyalarning ichida ham foydalansa bo‘ladi. Biror protsedura yoki funksiyaning ichida tavsiflangan o‘zgarmas va o‘zgaruvchilar mahalliy (lokal) o‘zgarmas va o‘zgaruvchilar deyiladi. Ulardan faqat o‘zi tavsiflangan protsedura yoki funksiyaning ichida foydalanish mumkin. Paskalda umumiy va mahalliy o‘zgaruvchi bir xil nomga ega bo‘lishi ham mumkin. Bu holda mahalliy o‘zgaruvchi tavsiflangan protsedura yoki funksiya ichida mahalliy o‘zgaruvchining qiymati, boshqa protsedura va funksiyalarda, hamda asosiy dasturda umumiy o‘zgaruvchining qiymati hisobga olinadi.
1–misol. [20, 83], [178, 391], [211, 746] oraliqlardagi barcha butun sonlar yig‘indisini topish dasturini tuzing.
Yechish: Berilgan uchta oraliqdagi butun sonlarning yig‘indisini hisoblash uchun parametrli takrorlash operatoridan uch marta foydalanishga to‘g‘ri keladi. Masalani berilgan oraliqning boshlang‘ich va oxirgi qiymatlarini parametr sifatida olib, shu oraliqdagi butun sonlarning yig‘indisini hisoblovchi funksiyadan foydalanib ham yechish mumkin.