Информатика


Download 7.16 Mb.
Pdf ko'rish
bet153/300
Sana25.08.2023
Hajmi7.16 Mb.
#1670002
1   ...   149   150   151   152   153   154   155   156   ...   300
Bog'liq
informatika Mominov

Rekurrent qatorlar. Rekurrent qator deb, shunday qatorga aytiladiki bu 
qatorning n chi hadi n ning qiymatiga va qatorning oldingi elementlariga bog`lik 
bo`ladi. Bu bog`liklikni aks ettiruvchi formula rekurrent formula deb ataladi. 


256 
Masalan, n! (faktorial ) ya`ni n gacha sonlar ko`paytmasini qo`yidagi rekurrent 
formula yordamida hisoblash mumkin: 
S0=1, Sn=Sn-1*n 
Bu formulaga asoslangan dasturning asosiy qismi qo`yidagicha yoziladi: 
For(int s=1,i=1;i<=n;i++) s*=i; 
Rekurrent qatorga yana bir misol Fibonachchi sonlari qatori bo`lib, bu qator 
quyidagi rekurrent formulalar asosida ifodalanadi: 
S0=1, S1=1,Sn=Sn-1+ Sn-2 
Berilgan n gacha bo`lgan Fibonachchi sonlarini hisoblash dasturi: 
29-listing. Output: 
… 
{ int n,S=0; 
while (1) 
{ cin >> n; 
if (n>2) break; 
cout<<(" n qiymati noto`g`ri kiritilgan"); }; 
for(int S0=1,S1=1,i=3;i<=n;i++) 
{ S=S0+S1; S0=S1; S1=S; cout<<("\n ",i,S);};} 
Cheksiz qatorlar. Matematikada odatda biror qiymatni hisoblash shu 
miqdorga cheksiz yaqinlashuvchi qator hadlarini hisoblashga olib keladi. Amalda 
cheksiz qator hadlarini hisoblash yaqinlashish sharti bajarilguncha davom etadi va 
bu shartga mos keluvchi qator hadi izlanayotgan miqdorning taqribiy qiymati deb 
olinadi. Odatda yaqinlashish sharti sifatida shart qabul qilinadi. Bu yerda eps 
oldindan berilgan son. Qator hadlarini rekurrent formulalar yordamida ifodalash 
dasturlashni ancha yengillashtiradi. Matematikada ? sonini ?/4=1-1/2!+1/3!-
1/4!+…+(-1)(i+1)*1/i!+... cheksiz qator yordamida hisoblash mumkinligi 
isbotlangan. Bu qatorni quyidagi rekurrent formulalar yordamida ifodalash 
mumkindir:
R1=1.0, S1=1.0,Ri=-ri-1*(1/i), Si=Si-1+Ri; 


257 
Bu masalani yechishning while operatori yordamida tuzilgan dasturini ko`rib 
chiqamiz:
30-listing.
Output: 
#include  
{ double eps
cout<<(“\n eps=”); cin>>(“%f”,&eps); 
int i=2; 
double r=1.0; 
double s=1.0; 
while((r>eps)||(r<-eps)); 
{ s+=r; 
r =- r*(1/i); 
i++;} 
cout<<(“pi=%f”,s*4); } 
Shu masalaning do while operatori yordamida tuzilgan dasturi:
31-listing. Output: 
#include  
{ double eps; 
cout<<(“\n eps=”); cin>>(“%f”,&eps); 
int i=1; 
double r=1.0; 
double s=0.0; 
do
{ s+=r; 
r=-r*(1/i); 
i++;} 
while((r=>eps)||(r<=-eps)); 
cout<<(“pi=%f”,s*4);} 


258 
Shunga e`tibor berish kerakki, tekshirish takrorlash tanasi bajarilgandan 
so`ng amalga oshirilgani uchun kichik yoki teng sharti qo`yilgandir. 
Shu masalani for operatori yordamida tuzilgan dasturi:
32-listing.
Output: 
#include  
{ double eps; 
cout<<(“\n eps=”); cin>>(“%f”,&eps); 
for(int i=1, double r=1.0,double s=1.0; ((r>eps)||(r<-eps));i++)
{ r=-r*(1/i);s+=r}; 
cout<<(“pi=%f”,s*4);} 

Download 7.16 Mb.

Do'stlaringiz bilan baham:
1   ...   149   150   151   152   153   154   155   156   ...   300




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