DASTURLASH I
10-HAFTA
Mavzu: Funksiyalar
Hafta
|
Mavzu
|
Mashg‘ulot turi
|
Soat
|
Mashg‘ulot mazmuni
|
10-haf-ta
|
Funksiyalar
|
10-Ma’ruza
|
2
|
Funksiyalarni e’lon qilish, murojat qilish va qiymat berish. Funksiyalarni modullarda e’lon qilish
|
Lab_10.1
|
2
|
Funksiyalarga doir oddiy dasturlar yaratish
|
Lab_10.2
|
2
|
Funksiya prototiplari, funksiyalarni modullarda e’lon qilishga doir dasturlar yaratish
|
Lab_10.3
|
2
|
Funksiya prototiplari, funksiyalarni modullarda e’lon qilishga doir dasturlar yaratish
|
10-Mustaqil ish
|
1
|
Topshiriqda berilgan savollarga javob yozish
|
1
|
Test savollarigajavobberish
|
4
|
Dastur tuzishga doir topshiriqlarni bajarish
|
10-MA’RUZA
MAVZU: Funksiyalarni e’lon qilish, murojat qilish va qiymat berish. Funksiyalarni modullarda e’lon qilish
Reja:
Funksiya haqida boshlang`ich tushunchalar;
Funksiyani e’lon qilish;
Funksiyani chaqirish;
void funksiyalar;
Argumentlarni qiymatlari orqali parametrlarga yuborish;
Modullashtirish. Funksiyalarni modul sifatida e’lon qilish.
Kalit so‘zlar:
actual parameter
ambiguous invocation
argument
automatic variable
bottom-up implementation
divide and conquer
formal parameter (i.e., parameter)
function abstraction
function declaration
function header
function overloading
function prototype
function signature
global variable
information hiding
inline function
local variable
parameter list
pass-by-reference
pass-by-value
reference variable
scope of variable
static local variable
stepwise refinement
stub
top-down implementation
10.1. Funksiya haqida boshlang`ich tushunchalar
Key Point. Funksiyalar dastur tarkibida qayta foydalanish imkoniyatini beruvchi qism dasturlarni e’lon qilish, ishlatish va shuning barobarida dasturlashni soddalashtirish maqsadlarida qo`llanilishi mumkin.
Faraz qilaylik, biz 1 dan 10 gacha, 20 dan 37 gacha va 35 dan 49 gacha bo`lgan butun sonlarni mos ravishda yig`indilarini hisoblash dasturini tuzmoqchimiz. Biz uni quyidagicha dastur kodi orqali tuzishimiz mumkin:
int sum = 0;
for (int i = 1; i <= 10; i++)
sum += i;
cout << "1 dan 10 gacha sonlar yig`indisi:" << sum << endl;
sum = 0;
for (int i = 20; i <= 37; i++)
sum += i;
cout << "20 dan 37 gacha sonlar yig`indisi:" << sum << endl;
sum = 0;
for (int i = 35; i <= 49; i++)
sum += i;
cout << "35 dan 49 gacha sonlar yig`indisi:" << sum << endl;
Bu sonlar oralig`ida hisoblashlar bir xil ko`rinishda amalga oshirilayotganini ko`rish mumkin, faqat ularda sonli oraliqlar har xil. Agar biz bir xil hisoblash jarayonlari uchun bir marta kod yozib, undan turli qiymatlar uchun qayta foydalana olsak zo`r ish bo`lar edi, shunday emasmi? Biz bu ishni funksiyani e’lon qilish va uni chaqirish orqali amalga oshirishimiz mumkin.
Yuqoridagi kodni quyidagicha soda ko`rinishga keltirib olishimiz mumkin:
1 int sum(int i1, int i2)
2 {
3 int sum = 0;
4 for (int i = i1; i <= i2; i++)
5 sum += i;
6
7 return sum;
8 }
9
10 int main()
11 {
12 cout<<"1 dan 10 gacha sonlar yig`indisi: "<13 cout<<"20 dan 37 gacha sonlar yig`indisi:"<14 cout<<"35 dan 49 gacha sonlar yig`indisi:"<15
16 return 0;
17 }
1-8-satrlar oralig`ida sum nomli, i1 va i2 parametrlariga ega bo`lgan funksiya e’lon qilinyapti. main funksiyasi tarkibida 1 dan 10 gacha bo`lgan sonlar yig`indisini aniqlash uchun sum(1, 10) ni chaqiruvchi, 20 dan 37 gacha bo`lgan sonlar yig`indisini aniqlash uchun sum(20, 37) ni chaqiruvchi, 35 dan 49 gacha bo`lgan sonlar yig`indisini aniqlash uchun sum(35, 49) ni chaqiruvchi ko`rsatmalar berilgan. Funksiya – bu biror operatsiyani bajarish uchun ishlab chiqilgan, guruh bo`lib ishlatiluvchi ko`rsatmalar jamlanmasidir. Avvalroq biz pow(a, b), rand(), srand(seed), time(0), va main() kabi funksiyalar bilan tanishib chiqqanmiz. pow(a,b) funksiyasini ishlatganimizda, u tarkibidagi ko`rsatmalarni ishga tushiradi va natija qaytaradi. Bu ma’ruzada funksiyalarni e’lon qilish, uni chaqirish va masalalar jamlanmasini yechishga oid bilimlarga ega bo`lishingiz mumkin.
10.2. Funksiyani e’lon qilish
Key Point. Funksiyaning e’lon qilinishi funksiya nomi, parametrlari, qaytariluvchi qiymat turi va funksiya tanasidan iborat.
Funksiyani e’lon qilish sintaksisi quyidagicha ko`rinishga ega:
returnValueType functionName(list of parameters)
{
// Function body;
}
Keling, ikki sondan qaysi biri kata ekanligini aniqlovchi funksiyani qaraymiz. Bu funksiya int turida, son1 va son2 parametrlardan tashkil topgan, berilgan ikki sondan kattasini topishga mo`ljallangan va max deb nomlangan.
10.1-rasm. Biz funksiyalarni e’lon qilishimiz va argumentlar bilan chaqirib olishimiz mumkin.
Funksiya qiymat qaytarishi mumkin. Qaytariluvchi qiymat turi – bu o`sha qaytariluvchi qiymatning ma’lumot turi. Ba’zi hollarda funksiya tomonidan qiymat qaytarmasligi talab qilinadi. Bundan hollarda qaytariluvchi qiymat turi void – kalit so`zi orqali ifodalanadi. Misol uchun, qaytariluvchi qiymat turi srand funksiyasida void hisoblanadi. Bajarilishdan so`ng qiymat qaytaruvchi funksiyalar qiymat qaytaruvchi funksiyalar, qiymat qaytarmaydigan funksiyalar esa, void funksiyalar deb ataladi.
Funksiya tarkibida e’lon qilingan o`zgaruvchilarni formal parametrlar yoki oddiy qilib, parametrlar deb atash mumkin. Parametr o`rin egallovchiga o`xshaydi. Funksiya chaqirilganda parametrlarga qiymat kiritamiz. Bu qiymat faol parametr yoki argument sifatida kiritiladi. Funksiyaning parametrlar ro`yxati turni, tartibni va funksiyadagi parametrlar sonini ifodalaydi. Funksiya nomi va parametrlar ro`yxati birgalikda funksiya bosh qismi ni tashkil etadi. Funksiyada parametrlarni ishlatish majburiy emas, funksiya parametrlarga ega bo`lmasligi ham mumkin. Masalan, rand() funksiyasi parametrga ega emas. Funksiya tanasi, funksiya chaqirilganda hisoblanishi lozim bo`lgan ko`rsatmalar jamlanmasidan iborat. max funksiyasininig tanasida ikki sondan kattasini aniqlovchi if operatoridan iborat. Natijani qaytarishga mo`ljallangan qaytarish ko`rsatmasi return – kalit so`zi orqali beriladi. U funksiya tomonidan bajarilgan hisoblashlar natijasi bo`1gan qiymatni qaytarishga mo`ljallangan. return ko`rsatmasi ishlatilgandan so`ng funksiyadan chiqiladi.
Dostları ilə paylaş: |