Maqsad: Parametrli funksiyalar



Download 0,51 Mb.
bet1/3
Sana28.06.2022
Hajmi0,51 Mb.
#716057
  1   2   3
Bog'liq
5-mavzu funksiyalar


5-ma’ruza. Funksiyalar
Maqsad:

  • Parametrli funksiyalar;

  • Qiymat qaytaruvchi funksiyalar;

  • Qiymat qaytarmaydigan (void) funksiyalar;

  • Qiymat bo‘yicha argumentlarni o‘tkazish;

  • Funksiyaning chaqirilishi

  • void funksiyalar

  • Matematik funksiyalardan foydalanib, matematik masalalarni yechish;

  • char turidan foydalanib, belgilarni namoyish qilish;

  • ASCII kodiga ko‘ra belgilarni shifrlash;

  • Belgilarni klaviaturadan o‘qish;

  • Maxsus belgilarni namoyon qilish;

  • Sonli qiymatlarni belgili, belgili qiymatlarni sonli qiymatlarga o‘tkazish;

  • Belgilarni taqqoslash va tekshirish;

Kirish
Funksiyalar kodni qayta foydalanuvchan, tashkillashtirilgan va sodda ko‘rinishga olib keladi.
Tasavvur qiling, Siz 1 dan 10 gacha, 20 dan 37 gacha va 35 dan 49 gacha bo‘lgan sonlar yig‘indisini hisoblovchi dastur yozinshingiz kerak. U quyidagicha ko‘ringan bo‘lar edi:

Dastur kodida ko‘rish mumkinki, masalani yechish uchun deyarli bir xil ko‘rinishdagi sikllardan foydalanildi, farqi siklning boshlang‘ich va oxirgi qiymatlarida xolos. Yuqoridagi kodni funksiyadan foydalanib, quyidagicha yozish ham mumkin.

Funksiya
1 – 8 qatorlarda funksiya aniqlangan bo‘lib, funksiyaning nomi sum, i1 va i2 nomli 2 ta parametrga ega. Main funksiyasi tanasida 1 dan 10 gacha bo‘lgan sonlar yig‘indisini hisoblash uchun sum(1, 10) ko‘rinishida funksiya chaqirilmoqda, 20 dan 37 gacha sonlar yig‘indisini hisoblash uchun funksiya sum(20, 37), 35 dan 49 gacha yig‘indini hisoblash uchun sum(35, 49) ko‘rinishida yoziladi.
Funksiya – bu biror operatsiyani bajarish uchun guruhlangan buyruqlar to‘plami. Biz shu paytgacha pow(a, b), rand(), srand(seed), time(0) va main() funksiyalari bilan ishladik. Misol uchun, pow(a, b) funksiyasi chqirilganda tizim funksiyadagi buyruqlarni bajaradi va qiymat qaytaradi.
Funksiyani aniqlash
Funksiyani aniqlash quyidagilardan tashkil topgan bo‘lishi lozim: funksiya nomi, parametrlari, qiymat qaytarish turi va tanasi.
Funksiyani aniqlash sintaksisi quyidagicha:
qiymatQaytarishTuri funksiyaNomi( parametrlar )
{
//Funksiya tanasi
}
Misol. Ikki sondan kattasini aniqlovchi funksiya yarating. Funksiyani max deb nomlaymiz, num1 va num2 nomli int turida ikki parametri mavjud, katta son funksiya tomonidan qaytariladi.

Funksiyani chaqirish
Funksiyani chqirish – funksiyadagi kodning bajarilishidir.
Funksiyani yaratayotganda u nima bajarishini aniqlab olish zarur. Funksiya yaratilgandan so‘ng ubu chaqirish lozim. Funksiyalarni chiqirshning ikki yo‘li mavjud: qiymat qaytarish yoki qaytarmasligiga bog‘liq.

Natija va tahlil



Finksiyaning chaqirilishi

Funksiyaning chaqirilishi
Funksiya har safar chaqirilganda, tizim faollashtirish yozuvi(activation record) ni yaratadi. Faollashtirish yozuvi funksiyaning argumentlari va o‘zgaruvchilarini stek chaqiruvi(call stack) deb nomlangan xotiraning sathiga joylashtiradi va saqlaydi. Stek chaqiruvi boshqa nomlar bilan ham nomlanadi, masalan, bajariluvchi stek (execution stack), runtime stek, mashina steki yoki qisqacha qilib stek. Bir funksiya boshqa funksiyani chaqirganda, chaqiruvchi funksiyaning faollashtirish yozuvi kutib turadi, chaqirilgan funksiyaning faollashtirish yozuvi yaratiladi. Funksiya o‘z ishini yakunlagach, uning faollashtirish yozuvi stekdan o‘chadi va boshqaruvni uning chaqiruvchisiga qaytaradi.
Stek faollashtirish yozuvlarini “oxirgi kirgan birinchi chiqadi” prinsipida saqlaydi. Oxirida chaqirilgan funksiyaning faollashtirish yozuvi stekdan birinchi bo‘lib o‘chiriladi. Faraz qiling, m1 funksiyasi m2 funkisyasini chaqirishi va m2 funksiyasi m3 funksiyasini chaqirishi lozim. Tizim dastlab m1 funksiyaning faollashtirish yozuvini stekka joylashtiradi, keyin m2 funksiyaning va oxirida m3 funksiyaning faollashtirish yozuvini qo‘yadi. Birinchi bo‘lib, m3 funksiya bajariladi va bajarilish yakunlangach uning faollashtirish yozuvi stekdan o‘chadi. Keyin m2 yakunlanadi va uning faollashtirish yozuvi stekdan o‘chadi. Oxirida m1 yakunlanadi va uning faollashtirish yozuvi stekdan o‘chadi.

void funksiyalar
void funksiyalar qiymat qaytarmaydi.
Quyidagi listing da printGrade nomli void funksiyasi berilgan ballni baho ko‘rinishida ekranga chiqaradi.


Natija:

Qiymat qaytaruvchi funksiya


Eslatma! void funksiyalar uchun qaytarish buyrug‘ini ishlatish shart emas, ammo u funksiya ishini yakunlash uchun qo‘llaniladi va u bsohqaruvni funksiya chaqiruvchisiga qaytaradi. Sintaksisi judayam oddiy:
return;
void funksiyasida boshqaruvning normal oqimidan chetlab o‘tish uchun ba’zida qo‘llanadi. Misol uchun quyidagi kodda mavjud bo‘lmagan ball kiritilsa, return buyrug‘I yordamida funksiyadan chiqib ketiladi:


Dastur funksiyadan chiqib ketishini nonormal holat yuz berganda tezkorlik bilan chiqib ketishda, kamdan-kam hollarda foydalanish mumkin. Buning uchun cstdlib kutubxonasidagi exit(int) funksiyasini chaqirish mumkin. Dasturda xatolik borligini ko‘rsatish uchun funksiyaga ixtiyoriy butun qiymat bersa bo‘ladi:
Misol

Qiymat orqali argumentlarni uzatish
Jimlik qoidasiga ko‘ra, funksiya chaqirilganda argumentlar parametrlarga qiymatlar orqali yuboriladi.
Funksiyalarning kuchli jihatlaridan biri uning parametrlar bilan ishlay olishidadir.

Kodni modullashtirish
Kodni modullashtirish koddan qayta foydalanishni, xatolarni to‘g‘rilashni va unga qo‘shimchalar kiritishni osonlashtriadi.
Funksiyalar ortiqcha kodni kamaytirish va koddan qayta foydalanish imkonini beradi. Shuningdek funksiyalar kodni modullashtiradi va dasturning sifatini yaxshilashga xizmat qiladi.

Dastur:



Natija:

Modullashtrishning quyidagi ijobiy tomonlari mavjud:

  • EKUB ni hisoblash main funksiyasida amalga oshmaydi;

  • Agar EKUB ni hisoblashda biror xatolik yuzaga kelsa, u shu

funksiyaning tanasida to‘g‘rilanadi;

  • Funksiyani boshqa dasturlarda ham ishlatish mumkin.

Funksiyalarni “aniqlash” (define) va “e’lon qilish”(declare) tushunchalari mavjud bo‘lib, e’lon qilish deganda funksiya tanasisiz yozilishi (ya’ni prototip) tushuniladi. Aniqlash deganda esa, funksiya bajariladigan tanasi bilan yoziladi.
Funksiyaning argumentlari “jimlik qoidasi”ga ko‘ra qiymatga ega bo‘lgan va ega bo‘lmagan hollarda dastlab qiymatga ega bo‘lmagan, so‘ngra qiymat ega bo‘lgan argumentlar turishi shart.
//Xato
//Xato

//To‘gri
//To‘g‘ri
Matematik funksiyalar
C++ ning cmath nomli kutubxonasida ko‘plab foydali matematik funksiyalar jamlangan.
C++ da matematik funksiyalar uch kategoriyaga bo‘linadi:

  • Trigonometrik funksiyalar(sin(), cos(), tan());

  • Exponent funksiyalar(pow(), log());

  • Xizmat funksiyalari(min(), max(), abs()).

Trigonometrik funksiyalar


Download 0,51 Mb.

Do'stlaringiz bilan baham:
  1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish