Информатика
Download 7.16 Mb. Pdf ko'rish
|
informatika Mominov
- Bu sahifa navigatsiya:
- Cheksiz qatorlar
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling