12. Rekursiya
12.1. function fib(n: integer):integer;
begin
if n<1 then fib:1 else fib:fib(n-1)fib(n-2)
end;
fib(2) va fib(4) hisoblansin.
12.2. Quyida keltirilgan f(n) funktsiyalardan qaysi biri n faktorialni to'g'ri hisoblaydi?
a) function f(n: integer): integer;
begin f:n*f(n-1) end;
b) function f(n: integer): integer;
begin if n0 then f:1 else f:f(n1)(n1) end;
v) function f(n: integer):integer;
begin if n0 then f:1 else f:n*(n-1)*f(n-2) end;
g) function f(n: integer):integer;
begin if n0 then f:1 else f:n*f(n-1) end;
12.3. Quyidagi
formula yordamida xn kattalikni hisoblaydigan pow(x,n) rekursiv funktsiyasi tuzilsin. Bu yerda x (x0) haqiqiy, n- butun sondir.
12.4. Quyidagi ; formula bo'yicha binom koeffitsyentini hisoblaydigan C(n,m) rekursiv funktsiyasi tuzilsin, bunda 0mn.
12.5. type ism(Anor,...,Erkin, yoq);
Berilgan b ismli odam a ismli odamni avlodi (bolasi, nevarasi, chevarasi va hokazo) bo'lishligini tekshiradigan avlod(a,b) mantiqiy funktsiyasi tuzilsin. Masalani yechishda oldindan tuzilgan ona(x) va ota(x) funktsiyalaridan foydalaning. Bunda ona(x) va ota(x) funktsiyalari x-ismli odamni mos ravishda onasi va otasining ismini, agar x ga mos keluvchi ota-ona to'g'risida ma'lumot bo'lmasa, yo'q (yoq) degan qiymatlarni qabul qiladi.
12.6. Agarda BolalarSoni(x) funktsiyasi x ismli odamning farzandlar sonini, Bola(x,k) funktsiyasi esa, x ismli odamning k-farzandining ismini bildirsa (bu yerda k x odamning farzandlar sonidan oshmasligi kerak), ushbu funktsiyalar yordamida 12.5 masala yechilsin.
12.7. function f (n: integer): integer;
begin if n>100 then f:n-10 else f:f(f(n11)) end.
Funktsiyaning f(106), f(99) va f(85) holatlari uchun hisoblansin.
Umuman olganda bu funktsiya qanday qiymatlar qabul qiladi.
12.8. Kesmani teng ikkiga bo'lish usuli yordamida f(x)0 tenglamani [a,b] oraliqda eps aniqligidagi ildizini topadigan root(f,a,b,eps) rekursiv funktsiyasi tuzilsin. (eps>0, a
12.9. const n40;
type vektorarray[1..n] of real;
Berilgan x vektorning k-chi va oxirgi elementi orasidagi eng kichik elementini topadigan min1(k) yordamchi rekursiv funktsiyasi tuzilib, shu funktsiya yordamida x vektorining eng kichik elementini topadigan min(x) funktsiyasi tuzilsin.
12.10. type satr array[1..100] of char;
Berilgan s satrning i-elementidan boshlab, j-elementida tugaydigan qismini simmetrikligini tekshiradigan rekursiv mantiqiy simm(s,i,j) funktsiyasi tuzilsin.
12.11. O'qish faylida manfiy son bilan tugaydigan, bo'sh bo'lmagan musbat xaqiqiy sonlar ketma-ketligi berilgan. Musbat sonlar yig'indisini hisoblaydigan parametrsiz sum rekursiv funktsiyasi tuzilsin.
Do'stlaringiz bilan baham: |