Rekursiv funksiyalar to‘g‘risida bilim va ko‘nikmalarga EGA bo‘lish; Rekursiv o‘ylashni shakllantirish


Download 437.38 Kb.
bet1/3
Sana08.05.2023
Hajmi437.38 Kb.
#1442340
  1   2   3
Bog'liq
Amaliyot 6


Amaliy mashg‘uloti – 6
Mavzu: Rekursiv funksiyalar. Rekursiv funksiyalarga doir masalalar yechish. Funksiyalarni qayta yuklash. Foydalanuvchi kutubxonasini tashkil qilish.
Reja:
  1. Rekursiv funksiyalar to‘g‘risida bilim va ko‘nikmalarga ega bo‘lish;


  2. Rekursiv o‘ylashni shakllantirish;

  3. 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:
  1   2   3




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