Toshkent axborot texnologiyalari universiteti urganch filiali kompyuter injiniringi fakult


Download 79.12 Kb.
bet1/2
Sana28.12.2022
Hajmi79.12 Kb.
#1011753
  1   2
Bog'liq
Ichma ich joylashgan rekursiv jarayonlarni tashkil etish.


MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
URGANCH FILIALI
KOMPYUTER INJINIRINGI FAKULTЕTI
963-21 guruh talabasi Qadamov Umrbekning Dasturlash 1 fanidan yozgan




Tоpshirdi: _______________________________

Qabul qildi: _______________________________

Urganch – 2022
Mavzu: Ichma ich joylashgan rekursiv jarayonlarni tashkil etish.
Rekursiyaning mohiyati
Protsedura yoki funksiya boshqa protsedura yoki funksiyalarga qo'ng'iroqlarni o'z ichiga olishi mumkin. Jumladan, protsedura o'zini chaqirishi mumkin. Bu erda hech qanday paradoks yo'q - kompyuter faqat dasturda duch kelgan buyruqlarni ketma-ket bajaradi va agar protsedura chaqiruviga duch kelsa, u shunchaki ushbu protsedurani bajarishni boshlaydi. Buni amalga oshirish uchun qanday buyruq berilganligi muhim emas.

Rekursiv protseduraga misol:
procedure Rec(a: integer);
begin
if a>0 then
Rec(a-1);
writeln(a);
end;

Keling, asosiy dasturga, masalan, Rec(3) ko'rinishdagi qo'ng'iroqni qo'ysak nima bo'lishini ko'rib chiqamiz. Quyida bayonotlar bajarilish ketma-ketligini ko'rsatadigan oqim diagrammasi keltirilgan.



Rekursiv protseduraning blok diagrammasi.
Rec protsedurasi a = 3 parametri bilan chaqiriladi. Unda a = 2 parametrli Rec protsedurasiga qo'ng'iroq mavjud. Oldingi qo'ng'iroq hali tugallanmagan, shuning uchun siz boshqa protsedura yaratilayotganini va birinchisi amalga oshirilayotganini tasavvur qilishingiz mumkin. ishi tugagunga qadar ishini tugatmaslik. Qo'ng'iroq jarayoni parametr a = 0 bo'lganda tugaydi. Hozirgi vaqtda protseduraning 4 ta nusxasi bir vaqtning o'zida bajarilmoqda. Bir vaqtning o'zida bajariladigan protseduralar soni rekursiya chuqurligi deb ataladi.
(Rec(0)) deb nomlangan to'rtinchi protsedura 0 raqamini chop etadi va chiqadi. Shundan so'ng, boshqaruv uni chaqirgan protseduraga qaytadi (Rec(1)) va 1 raqami chop etiladi.Va barcha protseduralar tugaguncha davom etadi. Dastlabki qo'ng'iroqning natijasi to'rtta raqamni chop etadi: 0, 1, 2, 3.
Nima sodir bo'layotganining yana bir vizual tasviri taqdim etiladi


3-parametr bilan Rec protsedurasini bajarish 2-parametr bilan Rec protsedurasini bajarish va 3-raqamni chop etishdan iborat. .
O'z-o'zidan mashq sifatida, Rec(4) ga qo'ng'iroq qilganingizda nima sodir bo'lishini ko'rib chiqing. Quyida tasvirlangan Rec2(4) protsedurasini chaqirganingizda nima sodir bo'lishini ham ko'rib chiqing, bu erda operatorlar teskari.
procedure Rec2(a: integer);
begin
writeln(a);
if a>0 then
Rec2(a-1);
end;
E'tibor bering, yuqoridagi misollarda rekursiv qo'ng'iroq shartli bayonot ichida joylashgan. Bu rekursiyaning tugashi uchun zaruriy shartdir. Shuni ham yodda tutingki, protsedura o'zini chaqirilganidan boshqa parametr bilan chaqiradi. Agar protsedura global o'zgaruvchilardan foydalanmasa, bu rekursiya cheksiz davom etmasligi uchun ham kerak.

Download 79.12 Kb.

Do'stlaringiz bilan baham:
  1   2




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