Funksiya parametrlari va argumentlari
Programmada ishlatiladigan har qanday funksiya e’lon qili-nishi kerak. Odatda funksiyalar e’loni sarlavha fayllarda e’lon qilinadi va #include direktivasi yordamida programma matniga qo‘shiladi.
Funksiya e’lonini funksiya prototipi tavsiflaydi (ayrim hollarda signatura deyiladi). Funksiya prototipi quyidagi ko‘rinishda bo‘ladi:
(
);
Bu erda - funksiya ishlashi natijasida u tomonidan qaytaradigan qiymatning turi. Agar qaytariladigan qiymat turi ko‘rsatilmagan bo‘lsa, kelishuv bo‘yicha funksiya qaytara-digan qiymat turi int deb hisoblanadi,
- vergul bilan ajratilgan funksiya parametrlarining turi va nomlari ro‘yxati. Parametr nomini yozmasa ham bo‘ladi. Ro‘yxat bo‘sh bo‘lishi ham mumkin. Funksiya prototiplariga misollar:
int almashsin(int,int);
double max(double x,double y);
void func();
void chop_etish(void);
Funksiya prototipi tushirib qoldirilishi mumkin, agar prog-ramma matnida funksiya aniqlanishi uni chaqiradigan funksiyalar matnidan oldin yozilgan bo‘lsa. Lekin bu holat yaxshi uslub hisob-lanmaydi, ayniqsa o‘zaro bir-biriga murojaat qiluvchi funksiyalar-ni e’lon qilishda muammolar yuzaga kelishi mumkin.
Funksiya aniqlanishi - funksiya sarlavhasi va figurali qavsga (‘{‘,’}’) olingan qandaydir amaliy mazmunga ega tanadan iborat bo‘ladi. Agar funksiya qaytaruvchi turi void turidan farqli bo‘lsa, uning tanasida albatta mos turdagi parametrga ega return operatori bo‘lishi shart. Funksiya tanasida bittadan ortiq return operatori bo‘lishi mumkin. Ularning ixtiyoriy birortasini bajarish orqali funksiyadan chiqib ketiladi. Agar funksiyaning qiymati program-mada ishlatilmaydigan bo‘lsa, funksiyadan chiqish uchun parametrsiz return operatori ishlatilishi mumkin yoki umuman return ishlatil-maydi. Oxirgi holda funksiyadan chiqish - oxirgi yopiluvchi qavsga etib kelganda ro‘y beradi.
Funksiya programmaning birorta modulida yagona ravishda aniqlanishi kerak, uning e’loni esa funksiyani ishlatadigan modullarda bir necha marta yozilishi mumkin. Funksiya aniqlanishida sarlavhadagi barcha parametrlar nomlari yozilishi shart.
Odatda programmada funksiya ma’lum bir ishni amalga oshirish uchun chaqiriladi. Funksiyaga murojaat qilganda, u qo‘yilgan masala-ni echadi va o‘z ishini tugatishida qandaydir qiymatni natija sifatida qaytaradi.
Funksiyani chaqirish uchun uning nomi va undan keyin qavs ichida argumentlar ro‘yxati beriladi:
(1>, 2>,…, n >);
Bu erda har bir - funksiya tanasiga uzatiladigan va keyinchalik hisoblash jarayonida ishlatiladigan o‘zgaruvchi, ifoda yoki o‘zgarmasdir. Argumentlar ro‘yxati bo‘sh bo‘lishi mumkin.
Funksiyalar ham o‘z tanasida boshqa funksiyalarni, o‘zini ham chaqirishi mumkin. O‘z tanasida o‘zini chaqiradigan funksiyalarga rekursiv funksiyalar deyiladi.
Oldingi boblarda ta’kidlab o‘tilganidek, S++ tilidagi har qanday programmada albatta main() bosh funksiyasi bo‘lishi kerak. Ayni shu funksiyani yuklagich tomonidan chaqirilishi bilan program-ma bajarilishi boshlanadi.
5.1- rasmda bosh funksiyadan boshqa funksiyalarni chaqirish va ulardan qaytish sxemasi ko‘rsatilgan.
Programma main() funksiyasini bajarishdan boshlanadi va «f1(x,y);» - funksiya chaqirishgacha davom etadi va keyinchalik boshqaruv f1(x,y) funksiya tanasidagi amallarni bajarishga o‘tadi. Bunda Radius parametrining qiymati sifatida funksiya x o‘zgaruvchi qiymatini, Symbol parametri sifatida u o‘zgaruvchisining qiymati ishlatiladi.
Do'stlaringiz bilan baham: |