Olimpiada misollarini yechish usullari II- bosqich Muallif: Mengliyev Sh. Qo`shilgan sana: 2015-04-08 Olimpiada misollarini yechish usullari II – bosqich


Procedure goose(x, k : integer);  begin


Download 43.84 Kb.
bet8/12
Sana24.04.2023
Hajmi43.84 Kb.
#1394008
1   ...   4   5   6   7   8   9   10   11   12
Bog'liq
олимпиада учун масалалар

Procedure goose(x, k : integer); 
begin 
if k = 1 then writeln(x) else goose(2*x + 1, k - 1) 
end;
Proseduraga atiga ikkita o’zgaruvchi kiritiladi: x-qidirilayotgan g’ozlar soni; k-ko’llar soni. Prosedura g’ozlar 7 ta ko’ldan uchib o’tganligiga asoslanib tuzilgan, demak boshlang’ich qiymat sifatida uchun 1, k uchun 7 qiymat kiritish kerak. Prosedurada k soni 1 ga kamayishi kerakligi hisobga olingan bo’lib, prosedurani tugatishning tayanch sharti k ning 1 ga teng bo’lishidir, bundan keyin esa ekranga g’ozlar sonining qiymatini chiqarish kerak: 
if k = 1 then writeln(x) 
Tayanch shart boshqacha ham bo’lishi mumkin, agar ning boshlang’ich qiymati 1 ga teng bo’lsa, u holda proseduraga takroran murojaat qilishda k ning qiymatini 1 ga kamaytirmasdan, oshirish kerak (k + 1), bu holda tayanch shart bo’lib k = 7 hisoblanadi.
Quyida bu masalani yechishning tugallangan dasturi keltirilgan:
Program L108;
uses Crt;
var 
k : integer; 
Procedure goose(x, k : integer); 
begin 
if k = 1 then write(x) else goose(2*x + 1, k - 1)
end
begin 
write('Ko’llar sonini kiriting'); readln(k); 
write('Galada'); 
goose(1, k);
writeln(' ta g’oz bor edi')
end.
Ushbu mulohazalarga amal qilgan holda quyidagi masalani yeching.
Mustaqil yechish uchun vazifa
109-misol. Studentlar oqimi 5 marta bir xil oraliq topshirgan (oraliq topshira olmaganlar keyingi kuni kelishar edi). Har kuni kelgan studentlarning uchdan bir qismi va yana bir stundentning uchdan bir qismi oraliqni yaxshi topshirardi. 5 martada ham oraliq topshirmagan studentlarning eng kam soni qancha? 
Agar masalalar arifmetik yoki geometrik progressiyalar, umuman n-hadi formulalari hamda rekurrent munosabatlar bilan berilgan ketma-ketliklar (ularga keyinroq qaytamiz) bilan bog’liq bo’lsa, u holda rekursiv proseduralarni tuzish oson. 
Quyida rekursiv prosedurali yana bir nechta dasturlar keltirilgan.
Avval, jiyan n-tug’ilgan kunda necha pul olishini hisoblovchi dasturni tuzaylik.
Yana rekursiv prosedurani tuzib ko’ramiz, lekin masalani boshqa tomonlama ham yechish mumkin. 
Belgilash kiritamiz: k – jiyan yoshining soni p – amakisi har tug’ilgan kunda beradigan pullar qiymati, s - jiyan umri davomida olgan pullarning qiymatidan (n foydalanovchi tomonidan kiritiladi) to 1 gacha teskari tartibda hisoblaydigan tug’ilgan kunlar soni hisoblagichi. 

Download 43.84 Kb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   12




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