O’zbekistan respublikasi aloqa axborot texnologiyalari va
Rekurtsiya va u bilan ishlash
Download 101.29 Kb.
|
Fayllar.Fayllar bilan ishlash funksialari
- Bu sahifa navigatsiya:
- Togridan-togri rekursiya
Rekurtsiya va u bilan ishlash
Funksiya o'zini o'zi chaqiradigan jarayon rekursiya, unga mos keladigan funktsiya esa rekursiv funktsiya deb nomlanadi . Rekursiyani tushunish uchun mashhur misol - bu faktorial funktsiya. Faktorial funktsiya: f (n) = n * f (n-1), asosiy shart: agar n <= 1 bo'lsa, u holda f (n) = 1. Xavotir olmang, biz bazaviy shart nima ekanligini va nima uchun bu muhimligini muhokama qilamiz. Quyidagi diagrammada. Faktorial funktsiya funktsiya bazaviy holatga kelguncha o'zini qanday chaqirayotganligini ko'rsatdim. Muammoni C ++ dasturi yordamida hal qilishga imkon bering. C ++ rekursion misoli: Faktorial #include using namespace std; //Factorial function int f(int n){ /* This is called the base condition, it is * very important to specify the base condition * in recursion, otherwise your program will throw * stack overflow error. */ if (n <= 1) return 1; else return n*f(n-1); } int main(){ int num; cout<<"Enter a number: "; cin>>num; cout<<"Factorial of entered number: "< } Natija: Enter a number: 5 Factorial of entered number: 120 Asosiy holat Yuqoridagi dasturda siz rekursiv funktsiyada bazaviy shartni taqdim etganimni ko'rishingiz mumkin. Shart: if ( n <= 1 ) return 1 ; Rekursiyaning maqsadi - asosiy shartga kelguncha muammoni kichikroq muammolarga bo'lish. Masalan, yuqoridagi faktorial dasturda f (n) faktorial funktsiyasini kichikroq f (n-1) faktorial funktsiyani chaqirish orqali hal qilyapman, bu n qiymati bazaviy holatga (f (1) = 1) yetguncha takrorlanadi. Agar siz rekursiv funktsiyada bazaviy shartni aniqlamasangiz, unda siz stack overflow xatosiga ega bo'lasiz. To'g'ridan-to'g'ri rekursiya va bilvosita rekursiya To'g'ridan-to'g'ri rekursiya: funktsiya o'zini o'zi chaqirganda, uni to'g'ridan-to'g'ri rekursiya deb atashadi, biz yuqorida ko'rgan misol to'g'ridan-to'g'ri rekursiya misoli. Download 101.29 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling