Rekursiv funksiyalar to‘g‘risida bilim va ko‘nikmalarga EGA bo‘lish; Rekursiv o‘ylashni shakllantirish
Download 437.38 Kb.
|
Amaliyot 6
- Bu sahifa navigatsiya:
- Rekursiv matematik funksiyalarga doir dasturlar tuzish Rekursiya.
- Faktorialni hisoblash.
Amaliy mashg‘uloti – 6 Mavzu: Rekursiv funksiyalar. Rekursiv funksiyalarga doir masalalar yechish. Funksiyalarni qayta yuklash. Foydalanuvchi kutubxonasini tashkil qilish. Reja: Rekursiv funksiyalar to‘g‘risida bilim va ko‘nikmalarga ega bo‘lish;Rekursiv o‘ylashni shakllantirish; Rekursiv matematik funksiyalarga doir dasturlar tuzish Rekursiya. Dasturlashda oddiy sikldan foydalanib bo‘lmaydigan murakkab bo‘lgan jarayonlarni oqilani Yechimini topish mumkin bo‘lgan texnik usul – rekursiya hisoblanadi. Dasturlashda rekursiyani qo‘llash – bu rekursiv funksiyalardan foydalanib dasturlash demakdir, ya’ni funksiyalarning o‘zini-o‘zi chaqirishidir. Rekursiya – dasturlashning foydali texnikasi. Ayrim hollarda murakkab jarayonlar uchun oddiy va tabiiy Yechimlarni topishga olib keladi. Faktorialni hisoblash. Ko‘plab matematik funksiyalar rekursiyani qo‘llagan holda topiladi. Rekursiyani ko‘rsatib beradigan oddiy misolni ko‘rib chiqamiz. n sonining faktorialini hisoblash quyidagi rekursiv yondashuv orqali amalga oshiriladi: 0! = 1; n! = n × (n - 1)!; n > 0 Berilgan n! ni qanday aniqlash mumkin? 1! ni hisoblash oson chunki 0! = 1 ekanligini bilamiz, 1! ni hisoblash uchun 1 * 0! ga ko‘paytirish amali bajariladi. (n - 1)! nechiga teng ekanligini bilgan holda n! ni hisoblash ham oson kechadi, chunki u holda n × (n - 1)! qo‘llaniladi. Masala Yechimini topish(n - 1)! ga bog‘liq. (n - 1)! ni hisoblash esa xuddi shu g‘oya yordamida rekursiv hisoblanadi va n soni 0 ga qadar kamayib boradi. n! ni hisoblash funksiyasi factorial(n) bo‘lsin. Agarda n = 0 bo‘lganda, mazkur funksiya darhol natijani qaytaradi. Lekin n > 0 bo‘lgan holda funksiya yana bir (n - 1) faktoralini aniqlash misoliga olib keladi. Bu misol ham, umuman olganda boshlang‘ich holatdagiday. Bu misol ham boshlang‘ich muammoni o‘zini olib kelganini ko‘rsak, bu funksiyani rekursiv holatda boshqa bir argument yordamida chaqirsak bo‘ladi. factorial(n) ni hisoblash uchun quyidagi rekursiv algoritmidan foydalanish mumkin: if (n == 0) return 1; else return n*factorial(n-1); Rekursiv chaqirish bir necha rekursiv chaqirishlarga olib kelishi mumkin, chunki funksiya misolni bir necha qism misollarga ajratadi, natijani olish uchun funksiya to‘xtash jarayonigacha davom etadi. Bu holatda esa funksiya o‘zini-o‘zi chaqiradi, olingan natija yana chaqirilgan funksiyaga qaytariladi, bu jarayon toki dasturning chaqirish nuqtasiga qaytguncha davom etadi. Bu misolni Yechimini topish uchun n sonini factorial(n-1) ga ko‘paytirish orqali amalga oshiriladi. Quyidagi dastur kodida n! ni hisoblashning rekursiv funksiya yordamida bajarilgani ko‘rib chiqiladi. Download 437.38 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling