Amaliy mashg’ulot-4 Mavzu: Rekursiya va ularni dasturlashda ishlatish. Rekursiv va iterative algoritmlarni ishlatishga misol


Download 0.58 Mb.
Pdf ko'rish
bet1/7
Sana08.11.2023
Hajmi0.58 Mb.
#1754791
  1   2   3   4   5   6   7
Bog'liq
4-amaliy mashg\'ulot



AMALIY MASHG’ULOT-4 
Mavzu: Rekursiya va ularni dasturlashda ishlatish. Rekursiv va iterative 
algoritmlarni ishlatishga misol. 
 
Ishdan maqsad: Ushbu laboratoriya ishining maqsadi talabalar rekursiv 
funksiyalar mavjudligini va ularning samaradorliklarini baholashni o‘rganishlari 
kerak. Shu asosda saralash usullarini qiyosiy tahlil qilishlari, C++ dasturlash tilida 
fayllar bilan ishlashni va ularga oid dasturlar tuzishni o‘zlashtirishlari kerak. 
Qo‘yilgan masala: Talabalar topshiriq variantiga mos saralash usuli 
yordamida masalani yechish dasturini yaratish ko‘nikmasiga ega bo‘lishlari kerak. 
Ish tartibi: 
1. 
Tajriba ishi nazariy ma’lumotlarini o‘rganish; 
2. 
Berilgan topshiriqning algoritmini ishlab chiqish; 
3. 
C++ dasturlash muhitida dasturni yaratish; 
4. 
Natijalarni tekshirish; 
5. 
Hisobotni tayyorlash va topshirish. 
Funksiya o'ziga o'zi to'g'ridan-to'g'ri yoki qandaydir vosita orqali murojaat 
qilish jarayoniga rekursiya deyiladi va bunday funksiya rekursiv funksiya deb 
ataladi. Hikoyadagi misolga qaytadigan bo'lsak, yerda summa() nomli funksiya 
natijasini hisoblash uchun unga bir necha marta qayta murojaat qilishiga to'g'ri keldi. 
Aynan shu narsa rekursiyaning mohiyatini tashkil qiladi. Lekin, shunchaki ta'rif 
yordamida to'g'ri va xatosiz ishlovchi rekursiv funksiya tuzish qiyin, buning uchun 
rekursiv funksiyaning asosiy shartlarini yaxshi bilish kerak. 
Har qanday to'g'ri tuzilgan rekursiya asosini ikkita shart tashkil qiladi. 
1. 
Rekursiya asos sharti 
2. 
Funksiyaning o'ziga o'zgartirilgan argument bilan murojaat qilish. 
Rekursiv funksiya qaysidir vaqtga kelib o'ziga murojaat qilishni to'xtatishi 
kerak bo'ladi. Aynan shu narsani rekursiya asos sharti ta'minlab beradi. 
Hikoyamizdagi misolga qaytadigan bo'lsak, summa() funksiyasiga bir necha marta 


murojaat qildi va oxirida funksiyaga keluvchi massivda faqat bitta element qolganda 
to'xtadi. Bu masala uchun arrayda yagona element qolishi asos shart bo'lib xizmat 
qiladi va shu yerga yetganda dastur to'xtashi kerakligini bilib oladi. Rekursiv 
funksiya tuzishda asos shartni to'g'ri qo'yish juda ham muhim hisoblanadi. Hali 
bunga yana to'xtalamiz. 
Keyingi shartda o'zgartirilgan argument deganda, odatda masala boshidagi 
argumentdan kichikroq argument tushiniladi (ba'zi hollarda kattaroq bo'lishi 
mumkin). Misolimizda, har safar summa() funksiyasiga murojaat qilganda undagi 
massiv hajmini bittaga kamaytirib bordi. Bu narsa ham juda muhim, chunki bir xil 
argument bilan qayta-qayta murojaat qilinganda yoki argument notog'ri 
o'zgartirilganda funksiya o'zini cheksiz marta chaqirishiga to'g'ri kelib qoladi. Bu 
haqida ham batafsil yana gaplashamiz. 

Download 0.58 Mb.

Do'stlaringiz bilan baham:
  1   2   3   4   5   6   7




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