1-Mavzu: Rekursiv va qayta yuklanuvchi metodlar



Download 31,13 Kb.
bet1/4
Sana19.07.2022
Hajmi31,13 Kb.
#824629
  1   2   3   4
Bog'liq
maruza1

1-Mavzu: Rekursiv va qayta yuklanuvchi metodlar.


Reja:
1. Rekursiya va Rekursiv funksiyalar
2. Qayta yuklanuvchi metodlar.


1. Rekursiya va Rekursiv funksiyalar
Rekursiya.
Rekursiya - funktsiyani o'z ichidan to'g'ridan-to'g'ri (oddiy rekursiya) yoki boshqa funktsiyalar (murakkab yoki bilvosita rekursiya) orqali chaqirish.
Rekursiv funksiyalar. Rekursiv funksiyalar o'zini chaqiradigan funksiyalardir. Masalan, faktorialni rekursiv funksiya sifatida hisoblashni aniqlaymiz:
Misol uchun, n formulasidan foydalanadigan faktoriy hisobni olaylik! = 1 * 2 *… * n. Ya'ni, aslida, sonning faktorialini topish uchun biz ushbu songacha bo'lgan barcha sonlarni ko'paytiramiz. Masalan, 4 sonining faktoriali 24 = 1 * 2 * 3 * 4, 5 sonining faktoriali esa 120 = 1 * 2 * 3 * 4 * 5.
int Factorial(int n)
{
if (n == 1) return 1;
return n * Factorial(n - 1);
}
Rekursiv funktsiyani yaratishda unda qandaydir asosiy variant bo'lishi kerak, undan funktsiyani hisoblash boshlanadi. Faktorial bo'lsa, bu 1 sonining faktorialidir, ya'ni 1. Barcha eksenel musbat sonlarning faktoriallari 1 sonining faktorialini hisoblashdan boshlanadi.
Dasturlash tili darajasida return operatori asosiy holatni qaytarish uchun ishlatiladi:
if (n == 1) return 1;
Ya'ni, agar kirish raqami 1 bo'lsa, u holda 1 qaytariladi
Rekursiv funktsiyalarning yana bir xususiyati: barcha rekursiv chaqirishlar osti funktsiyalar ichida chaqirishi kerak, ular oxir-oqibat asosiy maqsadga yaqinlashadi:
return n * Factorial(n - 1);
Shunday qilib, funktsiyaga 1 ga teng bo'lmagan raqamni o'tkazishda qism funktsiyalarning keyingi rekursiv chaqiruvlari bilan har safar ularga bittadan kichik raqam uzatiladi. Va nihoyat, biz raqam 1 bo'ladigan va asosiy holat qo'llaniladigan holatga kelamiz. Bu rekursiv tushish deyiladi.
Keling, ushbu funktsiyadan foydalanamiz:
int Factorial(int n)
{
if (n == 1) return 1;
return n * Factorial(n - 1);
}
int factorial4 = Factorial(4); // 24
int factorial5 = Factorial(5); // 120
int factorial6 = Factorial(6); // 720
Console.WriteLine("4 faktorial = "+ factorial4);
Console.WriteLine("5 faktorial = "+ factorial5);
Console.WriteLine("6 faktorial = "+ factorial6);

Faktorial(4) chaqirilganda nima sodir bo'lishini bosqichma-bosqich ko'rib chiqamiz.


1. Dastlab, raqam birga teng yoki yo'qligini tekshiradi:
if (n == 1) return 1;
Lekin boshida n 4 ga teng, shuning uchun bu shart noto'g'ri va shunga ko'ra kod bajariladi.
return n * Factorial(n - 1);
Ya'ni, aslida bizda:
return 4 * Factorial(3);

2. Keyin ifoda bajariladi:


Factorial(3)
Yana n 1 ga teng emas, shuning uchun kod bajariladi
return n * Factorial(n - 1);
Ya'ni, aslida:
return 3 * Factorial(2);

3. Keyin ifoda bajariladi:


Factorial(2)
Yana n 1 ga teng emas, shuning uchun kod bajariladi
return n * Factorial(n - 1);
Ya'ni, aslida:
return 2 * Factorial(1);

4. Keyin ifoda bajariladi:


Factorial(1);
Endi n 1 ga teng, shuning uchun kod bajariladi
if (n == 1) return 1;
Va 1 qaytadi.

Natijada, ifoda


Factorial(4);
Haqiqatda, u ichkariga tushadi
4 * 3 * 2 * Factorial(1)



Download 31,13 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4




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