O‘ZBEKISTON RESPUBLIKASI AXBOROT
TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI
RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI URGANCH FILALI
Dasturlash 1 fanidan
Mustaqil ish
Gurux: 972-21
Topshirdi: Normuminov Muhriddin
Fan o’qituvchisi:______________________
Urganch 2022
Mavzu: Ichma ich joylashgan rekursiv jarayonlarni tashkil etish
Bir funksiya ichida boshqa funksiya aniqlanishi mumkin emas, lekin funksiya ichida o’zini-o’zi chaqirishi mumkin. Bunday holatni rekursiya holati deyiladi. Rekursiya 2 xil bo’ladi: to’g’ri rekursiya va bilvosita rekursiya. Agar funksiya o’zini-o’zi chaqirsa, bu to’g’ri rekursiya deyiladi. To’g’ri rekursiyada funksiyaning nusxasi chaqiriladi. Agarda funksiya boshqa bir funksiyani chaqirsa va u funksiya o’z navbatida 1-sini chaqirsa, u holda bilvosita rekursiya deyiladi. Rekursiya 2 xil natija bilan yakunlanadi: biror natija qaytaradi yoki hech qachon tugallanmaydi va xatolik yuz beradi. Bunday holatlarda rekursiv funksiyalar uchun rekursiyani to’xtatish shartini berish zarur, chunki rekursiyada xotira yetishmasligi xavfi bor.
4-misol. F = n! ni xisoblash uchun funksiya tashkil eting va undan foydalaning.
# include
# include
int main( )
{ int n, f, fac(int);
cout << “sonni kiriting:”; cin >> n;
f = fac(n); cout << “sonning factoriali=”<
getch( );
}
int fac(int i)
{ return i <=1 ? 1 : i * fac( i - 1); }
5-misol. Fibonachi sonlarini xosil qilish dasturini tuzing. Fibonachi sonlari quyidagicha topiladi:
f 0 = 1; f 1 = 1; f 2 = f1 + f 0 ; ……
f n = f n-1 + f n-2 ;
Rekursiv jarayonni to’xtatish sharti n < 2 deb olinadi. Masalan 9-o’rindagi Fibonachi sonini topish kerak.
Do'stlaringiz bilan baham: |