| নির্বাচিত পোস্ট | লগইন | রেজিস্ট্রেশন করুন | রিফ্রেস |
মোঃ রকীবুল হাসান (সবুজ)
লেখাপড়ার পাঠ চুকিয়ে আত্ম-কর্মসংস্থানে নিয়োজিত। আমি প্রায়ই ভুল করি। চা খেতে পছন্দ করি, মানুষ সহ প্রায় সকল বিষয় জানার আগ্রহ আছে। আতিকথন ও না বলতে অপছন্দ করি। ধূমপান ছেড়ে দেওয়ার অহংকার আছে।
#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;
}
©somewhere in net ltd.