REKURSIV FUNKSIYA VA ISHLATILISHI
REKURSIV FUNKSIYA VA ISHLATILISHI MUNDARIJA I.KIRISH………………………………………………………………………..3 1.1Rekursiv funksilari…………………………………………….………..…. . 4 1.2 Rekursiya tushunchasi va uning turlari…………………………..……... . 6 1.3 Rekursiv chaqiruv mexanizmi……………………………………….…... .. 9 1.4 Aniqroq tushuntirish uchun, rekursiv yondashuv orqali yechilgan bir nechta masalalar bilan birlikda C++ da dasturiy modullarni yaratishni ko'rib chiqamiz................................................................................ .............................. 11 1.5 Rekursiya va uning dasturlashda ishlatilishi………………………….13 III.XULOSA…………………………………………………………………...19 IV.FOYDALANILGAN ADABIYOTLAR RO'YXATI…………………....21 Kirish.
Kompyuterlarning kuchayib borishi va hal qilinayotgan muammolarning murakkabligi ushbu mashinalarning algoritmlarini boshqarishning samarali usullarini topishni talab qiladi. Dasturni o'zgartirish va unga xizmat ko'rsatish jarayonini soddalashtirish uchun dastur kodining tushunarliligini ta'minlash kerak. Bunday muammolarni hal qilishning eng samarali va qulay usullaridan biri rekursiv protseduralarni ilovalarni amalga oshirishga kiritishdir, ularning amalga oshirish mexanizmlari ko'pgina zamonaviy kompilyatorlar va ilovalarni ishlab chiqish muhitlariga kiritilgan. Tadqiqot muammosining dolzarbligi rekursiv mexanizmlarni amaliy qo'llash sohasining kengligi bilan belgilanadi. Jumladan, rekursiya sonli tahlilning murakkab masalalarini yechish, tarjima algoritmlarini qurish va ro yxatlar bo yichaʻ ʻ har xil turdagi operatsiyalarni bajarish uchun qo llaniladi, bu esa o z navbatida ʻ ʻ zamonaviy avtomatlashtirilgan boshqaruv tizimlarini ishlab chiqishda zarurdir. Rekursiyaning ahamiyatini ortiqcha baholab bo'lmaydi. Rekursiya eng kuchli usullardan biri bo'lib, ilmiy bilimlarning eng umumiy mexanizmi hisoblanadi. Rekursiya nafaqat ko'plab amaliy masalalarni yechishda samarali qo'llanilishini topdi, balki nazariy tabiatshunoslik fanlarining ajralmas qismiga aylandi. Ushbu kurs ishisi doirasida olib borilgan tadqiqotning maqsadi C++ yuqori darajadagi dasturlash tilida dasturlarni ishlab chiqish va amalga oshirishdan iborat. Ushbu kurs ishisining o'rganish ob'ekti yuqori darajadagi dasturlash tillaridir. Ushbu kurs ishisining mavzusi rekursiv protseduralar va funktsiyalar, shuningdek, rekursiv chaqiruvlar mexanizmi va turlari. Tadqiqot maqsadlari: 1) tadqiqot ob’ektini tahlil qilish; 2) tadqiqot mavzusi bo'yicha nazariy ma'lumotlarni tahlil qilish; 3) amaliy misollarni o'rganish; 4) tadqiqot davomida olingan bilim va ko‘nikmalarni amaliyotda qo‘llash, shu jumladan rekursiv mexanizmlardan foydalangan holda dasturiy modulni ishlab chiqish; 2
5) o'tkazilgan tadqiqot va yuklangan vazifalarni hal qilish bo'yicha hisobotni shakllantirish, shu jumladan ishlab chiqilgan dasturiy modul tavsifi, shuningdek xulosalarni shakllantirish. Muammoni hal qilish uchun C++ dasturlash tili sifatida uning quyidagi afzalliklarini hisobga olgan holda tanlandi: -tushunish imkoniyati (shu jumladan tuzilmalarning mazmunli nomlari); -ko'lamlilik; -xotira, portlar va past darajadagi adreslash bilan o'zaro aloqa qilish qobiliyati -har xil turdagi ma'lumotlarning umumiy algoritmlarini ishlab chiqish, ularning ixtisoslashuvi va kompilyatsiya bosqichida hisob-kitoblarni shablonlardan foydalangan holda ishlab chiqish qobiliyati. 1.1.Rekursiv funksiya Rekursiv funksiya, o'zini takrorlash imkoniyatiga ega bo'lgan funksiya. Bu funksiyalar boshqa funksiyalarni o'z ichiga olgan holda chaqirish orqali takrorlanadi. Rekursiya boshqa funksiyani o'z ichiga olgan holda chaqirish orqali amalga oshiriladi. Rekursiv funksiyalar quyidagi asosiy xususiyatlarga ega: 1. O'zini chaqirish: Rekursiv funksiya o'zini takrorlash imkoniyatiga ega bo'lgani uchun, ular o'zlarini chaqirish orqali amalga oshiriladi. 2. O'zgaruvchilarning o'zgarishi: Rekursiv funksiya o'z ichida o'zgaruvchilarni ishlatadi, va har bir chaqiruvda ularning qiymati o'zgaradi. 3. Base case: Rekursiv funksiyaning chaqirilishi vaqti o'zgaruvchilar qiymati o'zgarmasini ta'minlovchi shartni qo'yilishi kerak. Bu shart, funksiya takrorlanishini to'xtatadi. 4. Oxirgi tikish sharti: Har bir rekursiv funksiya oxirgi o'qishida funksiya ish bajarishini to'xtatish uchun oxirgi tikish sharti mavjud bo'lishi kerak. 3
Rekursiv funksiyalardan to'g'ri foydalanish juda kuchli algoritmlar yaratishda va dasturlashda yordam beradi. Masalan, faktorial hisoblash, Fibonacci ketma- ketligi, qatlam qiyoslash, va h.k. amallar rekursiv funksiyalar orqali yaxshi yechimlar topish mumkin.Rekursiv funksiyalar, dasturlashda takrorlanuvchi vazifalarni yechish uchun juda foydali bo'lib, ularga misollar ko'rsatilishi mumkin: 1. Faktorial hisoblash: Faktorialni hisoblashda, n! = n * (n-1)! formula yordamida rekursiv funksiya ishlatiladi. 2. Fibonacci ketma-ketligi: Fibonacci ketma-ketligi, har bir sonning o'zidan oldingi ikki son yig'indisiga teng bo'lgan birinchi son 0 va ikkinchi son 1 bilan boshlanadi. Bunday rekursiv funksiya orqali Fibonacci ketma-ketligi hisoblanadi. 3. Soni to'plamining hisoblanishi: Soni to'plami, berilgan sonning o'zidan avvalgi barcha sonlarni qo'shuvchi funksiya yordamida hisoblanadi. Rekursiv funksiya yordamida ushbu amal bajariladi. Rekursiv funksiyalarni yaxshi tushunish uchun bir nechta misollarga e'tibor beraylik: Faktorial hisoblash: def factorial(n): return ; else: trturn n*factorial(n-1) print(factorial(5)) #Natija: 120 1. Fibanachi ketma-ketligi: 4
def factorial(n): if n<=1: return n else: return fiboncci(n-2) print(fiboncci(6)) #Natija: 8 Ushbu misollarda, har bir funksiya o'zining takrorlash jarayonini o'rnatadi va rekursiv ravishda ishlatiladi. Muhimdirki, har bir funksiya takrorlashni to'xtatish uchun shartlar mavjud bo'lsin. 1.2 Rekursiya tushunchasi va uning turlari Rekursiya dasturlashda o'zini takrorlashning amaliyoti uchun ishlatiladi. Rekursiya tushunchasi, funksiya yoki algoritmni boshqarish usulini ifodalaydi, bu usulda funksiya o'zini o'z ichiga olgan holda chaqirish orqali takrorlanadi. Rekursiv funksiyalar o'zining takrorlanishida ishlatiladigan funksiyalardir. Bu funksiyalar o'zlarini o'z ichiga olgan holda chaqirish orqali bajariladi. Rekursiv funksiyalar turli turdagi vazifalarni bajarishda foydalaniladi. Masalan, faktorial hisoblash, Fibonacci ketma-ketligi hisoblash, binar qidirish algoritmi, graf yaratish va qayta o'rganish kabi vazifalarni bajarishda rekursiv funksiyalar keng qo'llaniladi. Rekursiv funksiyalar quyidagi turlarga bo'linadi: Oddiy (sirtdan qaytadan) : Bu turdagi rekursiv funksiyalar o'zlarini o'z ichiga olgan holda chaqirish orqali takrorlanadi. 5