নির্বাচিত পোস্ট | লগইন | রেজিস্ট্রেশন করুন | রিফ্রেস

পাই এর মান নির্ণয়ের প্রোগ্রাম, দশমিকের পর যে কোন ঘর পর্যন্ত

মোঃ রকীবুল হাসান (সবুজ)

লেখাপড়ার পাঠ চুকিয়ে আত্ম-কর্মসংস্থানে নিয়োজিত। আমি প্রায়ই ভুল করি। চা খেতে পছন্দ করি, মানুষ সহ প্রায় সকল বিষয় জানার আগ্রহ আছে। আতিকথন ও না বলতে অপছন্দ করি। ধূমপান ছেড়ে দেওয়ার অহংকার আছে।

মোঃ রকীবুল হাসান (সবুজ) › বিস্তারিত পোস্টঃ

পাই এর মান নির্ণয়ের সি++ প্রোগ্রাম, দমিকের পর যে কোন ঘর পর্যন্ত

০১ লা ফেব্রুয়ারি, ২০১৩ সকাল ৯:৩৩

#include

#include

#include"d:pipiclass.cpp"



//THIS PROGRAM FINDS THE VALUE OF `PI'CORRECT TO AS MANY DIGITS

//AS YOU WISH AFTER THE DECIMAL PLACE //,3.1415926535...

void main()

{

clrscr();

int ii,n,k,imt;



cout<<"

ttt DEAR

tHOW MANY CORRECT DIGITS AFTER DECIMAL POINT YOU WANT"

<<"
tt TO SHOW THE VALUE OF 'PI'
";

cin>>k;

imt=2*k;

k=k+10;



pi p1(k);

p1.creat(16);

p1.getins();

p1.sq_r(3);

p1.assignsum();

for(ii=3;ii<=imt;ii++){

p1.sq_r((ii-1)*8);

p1.multi((ii-2)*2+1);

p1.assign();

p1.sq_r((ii-1)*2+1);

p1.add();

if(k== p1.check()) goto r375;

}

r375:

p1.multisum(6);

p1.show();

getch();

}



















#include

#include

#include



class pi{



int n,k,isv,*p[200],*t,*s,*q,*r,*y,*sum,*chk;

public:

pi(int j);

void creat(int x);

void sq_r(int x);

void show();

void multi(int m);

void multisum(int m);

void assign();

void assignsum();

void add();

int check();

void getins();

void getinq();



~pi(){cout<<"Deleting pi";}

};







pi::pi(int j){

k=j;

isv=0;

for(j=1;j<=k;j++) {

if(!p)cout<<"Allocation error
";

//p[j]= (int*) malloc(k * sizeof(int));}

p[j] = new int[k]; }

t=new int [2*k+1];

q=new int [k];

s=new int [k];

r=new int [k+1];

y=new int [k];

sum=new int [k]; for(j=1;j<=k;j++)sum[j]=0;

chk=new int [k]; for(j=1;j<=k;j++)chk[j]=0;

if(!q)cout<<"Allocation error
";

if(!r)cout<<"Allocation error
";

if(!s)cout<<"Allocation error
";

if(!t)cout<<"Allocation error
";

if(!y)cout<<"Allocation error
";

if(!sum)cout<<"Allocation error
";

if(!chk)cout<<"Allocation error
";



}



void pi::creat(int x)

{ n=x;

int is,l,j;

is=10;

l=1;

hundred:

if(n<=is)

{

y[l]=is/n;

is=is%n;

is=is*10;

if(is==0){

l=l+1;

for(j=l;j<=k;j++)

y[j]=0;}

else

{l=l+1;

if(l<=k) goto hundred;



}

}

else

{

y[l]=0;

l=l+1;

is=is*10;

if(l<=k) goto hundred;

}

}



void pi::sq_r(int x)

{ n=x;

int i,j,kk,ii,a;



creat(n);

getinq();



int l=k;

for(i=1;i<=l+1;i++)

{for(j=1;j<=l;j++){p[i][j]=0;}}



for(j=l;j>=1;j--)

{kk=0;

for(i=l;i>=1;i--)

{

p[i][j]=q[i]*s[j]+kk;

if(p[i][j]<=9)

kk=0;

else

{kk=p[i][j]/10;

p[i][j]=p[i][j]-10*kk;}

if(i==1)

{for(ii=l;ii>=1;ii--)

p[ii+1][j]=p[ii][j];

p[1][j]=kk;}

} }



/* ADDING THE SUCCESSIVE NUMBERS WHICH COMES AFTER USUL MULTIPLICATION

WE STORE THIS RESULT IN AN ARRAY T*/

j=2*l;

for(i=1;i<=j;i++)

t[i]=0;

for(j=l;j>=1;j--)

{for(i=l+1;i>=1;i--)

{

t[i+j-1]=t[i+j-1]+p[i][j];

if(t[i+j-1]>9)

{t[i+j-1]=t[i+j-1]-10;

t[i+j-2]=t[i+j-2]+1;

if(t[i+j-2]>9)

{if((i+j-2)==l)

{t[i+j-2]=t[i+j-2]-10;

t[i+j-3]=t[i-j+l-3]+1;

goto s78;

}

}

}



s78: }} //close for





for(i=1;i<=l+1;i++)

r[i]=t[i];

if(r[l+1]<5) goto retn;

for(i=l+1;i>=2;i--)

{r[i-1]=r[i-1]+1;

if(r[i-1]<10) goto retn;

r[i-1]=0;}

retn:



}//end of sq_r





void pi::show(){

int a;

isv=k-10;

cout<<"

tt WELCOME TO THE VALUE OF 'PI'
tTHERE ARE "

<
cout<<"

t3.";

if(isv<=51){

for(a=1;a<=isv;a++)cout<
}

else {

for(a=1;a<=isv;a++){

if(a%51==0) cout<<"
t";

cout<
}



}

void pi::getins(){

int i;

for( i=1;i<=k;i++)

s[i]=y[i];



}

void pi::getinq(){

int i;

for( i=1;i<=k;i++)

q[i]=y[i];

}





void pi::multi(int m){

int m2,k2=0;



for(m2 = k;m2>= 1;m2--){

r[m2] = r[m2] * m + k2 ;

if (r[m2] <= 9){

k2 = 0 ;

goto x250; }

else {

k2 = r[m2] / 10;

r[m2] = r[m2] - k2 * 10 ;

}

x250: }

}

void pi::multisum(int m){

int m2,k2=0;



for(m2 = k;m2>= 1;m2--){

sum[m2] = sum[m2] * m + k2 ;

if (sum[m2] <= 9){

k2 = 0 ;

goto x250; }

else {

k2 = sum[m2] / 10;

sum[m2] = sum[m2] - k2 * 10 ;

}

x250: }

}



void pi:: assign(){

for(int j = 1;j<=k;j++)

s[j] = r[j];



}



void pi:: assignsum(){

for(int j = 1;j<=k;j++){

sum[j] = r[j];

chk[j] = r[j];

}



}



void pi::add(){

int m;

for (m = k;m>=1;m--){

sum[m] = sum[m] + r[m];

if (sum[m] < 10) goto g555;

sum[m] = sum[m] - 10;

if(m==1) goto g555;

sum[m - 1] = sum[m - 1] + 1;

g555: }



}



int pi::check(){

int i,iv;

if (isv== 0)

iv = 1;

else {

iv = isv;

isv = isv - 1;

}

for( i = iv;i<= k;i++){

if (chk[i] == sum[i])

isv = isv + 1;

else

goto a92;

}

a92: for (i = isv + 1;i<=k;i++)

chk[i] = sum[i];



return isv;

}













মন্তব্য ০ টি রেটিং +০/-০

মন্তব্য (০) মন্তব্য লিখুন

আপনার মন্তব্য লিখুনঃ

মন্তব্য করতে লগ ইন করুন

আলোচিত ব্লগ


full version

©somewhere in net ltd.