Rekursiv va qayta yuklanuvchi funksiyalar


Download 115.5 Kb.
bet3/3
Sana08.01.2022
Hajmi115.5 Kb.
#247108
1   2   3
Bog'liq
rakursiv va interatsiya

Interatsiya - bu biron bir dastur yoki jarayonni kompyuter dasturida takrorlash. Funktsiyalarni takrorlash kompyuter dasturlashida keng tarqalgan, chunki ular bir nechta ma'lumot bloklarini ketma-ket qayta ishlashga imkon beradi. Bu odatda "while loop" yoki "loop" bilan amalga oshiriladi. Ushbu ko'chadan muayyan jarayon yoki biron bir ish bajarilgunga qadar jarayonni takrorlaydi.

Shaxsiy kompyuterda amalga oshirilganda takrorlanadigan algoritmni namoyish qilishning eng sodda va tabiiy shakli bu uning tsikl yordamida tavsifi. N faktorial hisoblash uchun iterativ algoritm algoritmini ko'rib chiqing .



N funktsiyasi ta'rifiga muvofiq , bizda

Birinchidan, joriy qiymatga qarab n ni hisoblash usuli tanlanadi, agar n = 0 bo'lsa, u holda fctrl o'zgaruvchisi 1 qiymatini oladi.



Agar n f 0 bo'lsa, tsikl 1 * 2 * 3 -... mahsulotni hisoblaydi • (n—) -p. Biz o'zgaruvchini ishlatamiz / '- ketma-ket 2, 3, 4 va boshqalarni qabul qiladigan parametr. gacha n inklyuziv. Loop parametrining har bir qiymati uchun loop tanasi bajariladi:

Loop iteratsiyasi deganda biz loop parametrining ma'lum bir qiymati uchun loop tanasining bajarilishini tushunamiz.

Faktorialni rekursiv bo'lmagan hisoblash, ya'ni. haqiqat () bilan hisoblash juda sodda. Ushbu funktsiyada 1 uchun 1 dan n gacha bajarilgan tsikl tanasida avval hisoblangan mahsulot ushbu sonlarning har biriga ketma-ket ko'paytiriladi (0 uchun faktorial qiymat 1, 1 uchun faktorial qiymat ham 1 ga teng).

1. Faktorialni hisoblash uchun takroriy funktsiya

int haqiqat (int n) {int t, javob; javob = 1; uchun (t = 1; t <= n; t ++)

javob = javob * (t); qaytish (javob berish);

}

2. Faktorial uzun faktni hisoblash uchun takroriy funktsiya (int k)



{uzun f; int i; uchun (f = 1, i = 1; i<="" p="">

}

Rekursiv algoritm. Matematik ifodalarda takrorlanish munosabatlari juda keng tarqalgan. Ta'rifdagi rekursiya aniqlangan tushunchaning o'zi kontseptsiya orqali aniqlanishidan iborat. Hisob-kitoblardagi rekursiya takroriy munosabatlar shaklida paydo bo'ladi, bu keyingi qiymatni oldingilaridan foydalanib qanday hisoblashni ko'rsatib beradi.



Masalan, x = x_ 2 + x._ ,, takrorlanish munosabati, x , = 1, x 2 = 2, Fibonachchi deb ataladigan raqamlarni hisoblash qoidasini o'rnatadi.

Takrorlanuvchi munosabatlarning yana bir misoli arifmetik progressiya a n + x = a n + d a'zolarini hisoblash qoidalari bo'lishi mumkin , bu erda d - progressiyaning farqi yoki geometrik progresiya a n +] = q • a n , bu erda q - progressiyaning koeffitsienti. Faktorialning rekursiv tasviri n = (n - 1) dir! • p.

Faktorialning rekursiv hisobini tahlil qilaylik.

Parametrlash. Bu holda, faqat bitta parametr mavjud n bir butun son -.

Arzimagan ishni topish. Qachon n = 0 yoki n = 1, factorial qiymati 1 ga teng özyineleme dan chiqish uchun qaysi javob.

Umumiy holatning dekompozitsiyasi: n xuddi shu masalaning kichik o'lchamlari bo'yicha hisoblanadi («- 1)!



N = 4 uchun faktorialni hisoblash algoritmini ko'rsatamiz (7.1-rasm).

Birinchidan, deb atalmish recursive ramka 1 uchun hosil n = 4 (a rom bir emas bir Atri shaklida bir ob'ekt tavsifi o'z ichiga tuzilishi 

Shakl: 7.1. Rekursiv faktoriy hisoblash

butlar va ularning ma'nolari; ramkalar mohiyatan jadval hujayralariga juda o'xshash, ammo ko'p qirrali). Ushbu ramka uchun xotira ajratilgan va unda n = 4 uchun funktsiya tanasi o'zgaruvchilarining barcha qiymatlari aniqlangan . Shuni e'tiborga olish kerakki, rekursiv kadrda funktsiyalarning global o'zgaruvchilaridan tashqari barcha o'zgaruvchilarining qiymatlari aniqlangan.

Keyin n = 3 da faktorial ( n) chaqiriladi , 2-ramka hosil bo'ladi, bu erda funktsiya tanasi o'zgaruvchilarining qiymatlari n = 3 ga o'rnatiladi. Bunday holda 1-ramka ham xotirada saqlanadi. 2-kadrdan Faktorial ( n ) ga qo'ng'iroq n = 2 da sodir bo'ladi . Ushbu chaqiriq natijasida 3-ramka hosil bo'ladi, bu erda funktsiya tanasi o'zgaruvchilarining qiymatlari n = 2 va boshqalarga o'rnatiladi. qadar, Faktorial funktsiyaga navbatdagi qo'ng'iroqda n > 0 sharti yolg'ondir. Bu 5-kadrda sodir bo'ladi. Ushbu freymda biz Factorial = 1 qiymatini olamiz va bu qiymatni 4-freymga o'tkazamiz. Shundan so'ng, 5-ramka yo'q qilinadi, chunki Factorial ( n ) dan = O bajariladi.



4-kadrda biz faktorial ( n ) ning qiymatini n = 1 uchun hisoblaymiz , shundan so'ng biz ushbu qiymatni 3-kvadratga o'tkazamiz va 4-ramka yopiladi, chunki n = 1 da faktorial ( n) ga qo'ng'iroq tugaydi. Bu kadrlar zanjirini ular hosil bo'lganiga qarama-qarshi ketma-ketlikda, biz 1-kvadrat qulagunimizcha qulab tushguncha qulab tushamiz, shundan so'ng funktsiya tugaydi.

Adabiyotlar:




1. Харви Дейтел, Пол Дейтел. КАК ПРОГРАММИРОВАТЬ НА С++. М-2001, 1037c

2. Джефф Элджер. БИБЛИОТЕКА ПРОГРАММИСТА С++. М-2004, 300 с.

3. Madraximov Sh. F., Gaynazarov S. M. “C++ tilida programmalash asoslari” Toshkent-2009.-183 bet.

4. Елена Кондратюк. ТРЮКИ И ЭФФЕКТЫ С++. Москва – Санкт – Петербург -…-2006. 400 с.

5. Учебник по языку С++ в задачах и примерах. Электронный учебник.

6. www.ziyonet.uz

7.www.tuit.uz
Download 115.5 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling