Nizomov abbosbek 7-labaratoriya ishi. Mavzu: Rekursiya va ularni dasturlashda ishlatish


Download 101.1 Kb.
bet1/7
Sana09.04.2023
Hajmi101.1 Kb.
#1344617
  1   2   3   4   5   6   7
Bog'liq
Abbosbek


611-20 guruh talabasi
NIZOMOV ABBOSBEK
7-labaratoriya ishi.

Mavzu: Rekursiya va ularni dasturlashda ishlatish
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.
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.
Masala.
#include

using namespace std;

int sum, sum_1, sum_2 ;
int raqam(int son)
{
sum += son % 10;
son = son / 10;
if (son == 0) return sum;
raqam (son);
}

int main()


{
int n;

cout << "n = "; cin >> n;

cout << "Natija: " << raqam(n);

return 0;


}


Xulosa:
Ushbu laboratoriyada rekursiv funksiyalar mavjudligini va ularning samaradorliklarini baholashni o‘rgandim. Shu asosda saralash usullarini qiyosiy tahlil qilishni, C++ dasturlash tilida fayllar bilan ishlashni va ularga oid dasturlar tuzishni o‘zlashtirdim.



Download 101.1 Kb.

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