Birinchidan, masalani mumkin bo‗lgan mayda qismlarga, agar mumkin
bo‗lsa mayda qismlarni ham yana mayda qismlarga bo‗lib ketaveramiz, toki o‗sha
qismlar hamma tushunadigan oddiy amallardan iborat bo‗lib qolsin. Shundan so‗ng
o‗sha qismlarning dasturlarini alohida-alohida tuzib, asosiy (bosh) dasturga
biriktiriladi va yaxlit masalani yechish dasturi paydo bo‗ladi.
Masalan, tanlangan funksiyani tekshirish dasturini tuzish talab etilgan
bo‗lsin. Bunda quyidagi amallarni bajaruvchi dasturlar tuzib olinadi:
154
- funksiyaning aniqlanish sohasini topish;
- funksiyaning qiymatlar sohasini topish;
- funksiyaning nollarini aniqlash;
- funksiyaning OY o‗qini kesish nuqtalarini aniqlash;
- funksiyaning juft-toqligini aniqlash;
- funksiyaning davrini aniqlash;
- funksiyaning musbat oraliqlarini aniqlash;
- funksiyaning manfiy oraliqlarini aniqlash;
- funksiyaning o‗sish oraliqlarini aniqlash;
- funksiyaning kamayish oraliqlarini aniqlash;
- funksiyaning ekstremum nuqtalarini aniqlash;
- funksiyaning ekstremum qiymatlarini aniqlash;
- funksiyaning grafigini chizish;
amallarini bajaruvchi dasturlar tuzib olinadi. Agar zarurat bo‗lsa, bu
dasturlarning har biri yana mayda dasturlarga bo‗linib, har birining dasturlari
tuziladi va «Funksiyani tekshirish» nomli asosiy dasturga birlashtiriladi.
Ikkinchidan, bitta masalaning dasturini tuzishda bitta masalaning
dasturidan bir necha marta foydalanishga to‗g‗ri keladi. Masalan, binomial
koeffitsentlarni aniqlashda, ya‘ni,
ifodaning qiymatini hisoblashda faktorialni hisoblash dasturidan uch marta
foydalanish kerak va har safar bu dasturni qayta-qayta tuzib yurmasdan uni bir
marta tuzib, kerak bo‗lganda uch marta murojaat tashkil qilish kerak. Natijada
dasturning hajmi kichiklashadi, uni tushunish ham oson bo‗ladi. Bunday
vaziyatlarda o‗sha mayda dasturlarni funksiya ko‗rinishida yozib, kerak bo‗lganda
unga xohlagancha marta murojaat qilish yo‗li bilan natijalarni olish mumkin.
Dasturlash tillari tarkibida bir necha marta bajarilish kerak bo‗lgan
jarayonlarni bir marta tasvirlab keyin shu dasturga murojat qilish imkoniyati
mavjud. Dasturlash tillari tarkibida bir necha marta bajarilishi mumkin bo‗lgan
holatlarni qism dastur sifatida e‘lon qilish va kerakli joyga shu qism dasturga
murojat qilish mumkin.
Ta‘rif: Dasturlash tilida yaratilgan dastur tarkibida ma‘lum bir vazifani
bajaruvchi kichik dasturlar qism dasturlar deyiladi.
Qism dasturlarning mohiyati berilgan masala tarkibi ma‘lum bir vazifani
bajarish kerak bo‗ladi, lekin masala tarkibida ham kichik bir vazifani bajarish
kerak bo‗ladi shunday vazifalarni qism dastur yordamida hal etish mumkin.
Bunday masalalar asosan matematik masalalar tarkibida ko‗p bo‗lishi mumkin,
155
yoki boshqa sohalarda ham uchrab turadi. Masalan biror bir tashkilotning
ma‘lumotlar bazasi berilganda uning tarkibidagi xodimlarning oylik maoshini
hisoblash jarayonini qism dastur yordamida hisoblash maqsadga muvofiq. Agar
tashkilot ma‘lumotlar bazasi tarkibidagi xodimlarning oylik maoshini qism dastur
yordamida hisoblanmasa, har bir xodim uchun oylik maoshini hisoblash jarayonini
keltirish kerak, qism dasturdan foydalansa har bir xodim uchun qism dasturga
murojat qilib qo‗yiladi. Dastur tuzish vaqtida qism dasturlardan qachon
foydalanamiz, agar siz hal etadigan masala yoki muommo tarkibida ma‘lum bir
jarayonlar ikki va undan ortiq sodir bo‗lsa,o‘sha jarayonni qism dastur sifatida
e‘lon qilish kerak va kerakli joyda qism dasturga murojat qilish kerak. Masalan,
quyidagi masalaga e‘tibor bering.
Bu masala tarkibiga e‘tibor qaratsak, birdan n gacha bo‗lgan sonlar
yig‘indisi bir necha marta bajarilyapti, bu masalani hal etish uchun tuziladigan
dastur tarkibida birdan n gacha bo‗lgan sonlar yig‘indisini hisoblash jarayonini
qism dastur qilib e‘lon qilish kerak. Agar qism dastur sifatida e‘lon qilinsa,
masalani hal etishda qism dasturga ikki marta murojat qilish asosida berilgan
masalani hal etish mumkin.
Yuqorida keltirilgan masalalarga o‗xshash masalalarni hal etish usulini
samarasini oshirish uchun qism dasturlardan foydalaniladi. Qism dasturlar C++
dasturlash tilida qisqacha qilib funksiyalar deb ataladi. Demak, funksiyalar ma‘lum
bir vazifani bajaruvchi dastur tarkibdagi qism dasturlar ekan.
Funksiyaning o‗zi nima degan savol tug‗ilishi tabiiy. Funksiya – bu biror
aniq masalani yechishga mo‗ljallangan, to‗liq tugallangan, mustaqil dastur,
yanaham aniqroq aytadigan bo‗lsak, qism dastur yoki yordamchi dastur
(podprogramma).
Ta‟rif: Dasturlash tilida tuzilgan dastur tarkibidagi ma‘lum bir vazifalarni
bajaruvchi qism dasturlar funksiyalar deyiladi.
Dastur ishlash jarayoni samarasi asosan ikki tur bo‗yicha oshiriladi, ya‘ni
xotira hajmi va ishlash tezligi bo‗yicha. Dasturning ishlash tezligini oshirish
uchun, albatta, dastur tarkibi sodda va ixcham bo‗lishi ta‘lab etiladi. Dastur tarkibi
sodda va ixcham bo‗lishi uchun imkoniyat boricha qism dasturlardan foydalanish
kerak bo‗ladi. Funksiyalar C++ dasturlash tilida ma‘lum bir vazifani bajaruvchi
dastur tarkibidagi kichik dasturlar, demak, funksiyani hosil qilish uchun datur
tarkibida ma‘lum bir vazifalar bir necha marta bajarilish kerak bo‗ladi. C++
dasturlash tilida har qanday funksiya hech bo‗lmaganda bitta bosh funksiyani
156
main() funksiyasini o‗z tarkibida saqlaydi. Dastur tarkibida main() funksiyasidan
tashqari boshqa funksiyalar ham bo‗lishi mumkin.
Dastur tarkibidagi funksiyaga uning nomi bilan murojat qilinadi, dastur
bajarilish vaqtida funksiya nomi uchrasa, komplyator shu funksiyaning tanasiga
murojat qilib natijani funksiya nomiga qaytaradi va dastur keyingi qadamlarni
bajaradi. C++ dasturlash tilida funksiyalar ikki guruhga ajratiladi, ya‘ni standart va
standart bo‗lmagan funksiyalar. Standart funksiyalar C++ dasturlash tili tarkibida
biror bir kutubxona tarkibiga joylashtirilgan bo‗ladi. Standart funksiyalar haqida
mazkur qo‗llanmaning II-bobida batafsil yoritilgan. Standart bo‗lmagan
funksiyalar dastur tarkibida yaratiladi va unga nomi bilan murojat qilinadi. C++ da
dasturlashning asosiy bloklaridan biri funksiyalardir. Funksiyalarning foydasi
shundaki, katta masala bir necha kichik bo‗laklarga bo‗linib, har biriga alohida
funksiya yozilganda, masala yechish algoritmi ancha soddalashadi. Bunda
dasturchi yozgan funksiyalar C++ ning standart kutubxonasi va boshqa firmalar
yozgan kutubxonalar ichidagi funksiyalar bilan birlashtiriladi. Bu esa ishni bir
muncha osonlashtiradi. Ko‗p holda dasturda takroran bajariladigan amallarni
funksiya sifatida yozish va kerakli joyda ushbu funksiyani chaqirish mumkin.
Funksiyani programma tanasida ishlatish uchun u chaqiriladi, yani uning ismi
yoziladi va unga kerakli argumentlar beriladi. () qavslar ushbu funksiya
chaqirig'ini ifodalaydi. Masalan: foo(); k = square(l); Demak, agar funksiya
argumentlar olsa, ular () qavs ichida yoziladi. Argumentsiz funksiyadan keyin esa
() qavslarning o‗zi qo‗yiladi.
|