PDA

View Full Version : سوال: رفع اشکال یک کد!



ameysams
جمعه 29 مرداد 1389, 02:47 صبح
http://aks98.com/images/reccic5vx4gxnn2sde.png
در تصویر بالا می خواهم 8 را هم زیر ستون خودش بنویسه این هم کد :



#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<iomanip.h>
//begin initialation
const int rowCount=100;
const float h=0.5;

const int infinit=177;

float x=0 ;
int row=1 ;

//end initialation

long double fact(int n){
long double result=1;
int i=1;
for (i=1;i<=n;i++){
result=result*i;

}//for

return result;
}//fact

float y(float x){


return ( exp(x)+(11*exp(-x)) )/2;


}//y

long double adm(float x){

long double result=6+expl(x);

int n=1;
for (n=1;n<=infinit;n++){

result=result+((6*pow(-1,n)* pow(x,n))/fact(n))-(pow(-1,n)*expl(x));


}//for

return result;
}//adm
int main(){


cout<<"#"<<"\t"<<"x"<<"\t"<<"y"<<"\t\t\t"<<"adm"<<endl<<endl;
while(row <= rowCount){


cout<<row<<"\t"<<x<<"\t"<<setprecision(10)<<y(x)<<"\t\t\t"<<adm(x)<<endl;

row=row+1;
x=x+h;

}//while
// cout<<adm(750);

getch();

return 0;
}

MaHyaR.DrAcOulA
جمعه 29 مرداد 1389, 04:12 صبح
سلام دوست عزیز
این برنامه ات در ویژوال سی++ اخطار میداد و اخطارش هم این بود که متغییر هایی از نوع long double رو نمیتونم توی متغییری از نوع float بریزی.
منم همه اونا رو به float تغییر دادم.
سورس رو هم میذارم که اشتباه برداشت نکنی از حرفم.:دی

#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<iomanip.h>
//begin initialation
const int rowCount=100;
const float h=0.5;

const int infinit=177;

float x=0 ;
int row=1 ;

//end initialation

float fact(int n){
float result=1;
int i=1;
for (i=1;i<=n;i++){
result=result*i;

}//for

return result;
}//fact

float y(float x){


return ( exp(x)+(11*exp(-x)) )/2;


}//y

float adm(float x){

float result=6+expl(x);

int n=1;
for (n=1;n<=infinit;n++){

result=result+((6*pow(-1,n)* pow(x,n))/fact(n))-(pow(-1,n)*expl(x));


}//for

return result;
}//adm
int main(){


cout<<"#"<<"\t"<<"x"<<"\t"<<"y"<<"\t\t\t"<<"adm"<<endl<<endl;
while(row <= rowCount){


cout<<row<<"\t"<<x<<"\t"<<setprecision(10)<<y(x)<<"\t\t\t"<<adm(x)<<endl;

row=row+1;
x=x+h;

}//while
// cout<<adm(750);

getch();

return 0;
}
http://up.iranblog.com/Files2/fbcec281a3d1402a91ed.png
موفق باشی دوست من

MaHyaR.DrAcOulA
جمعه 29 مرداد 1389, 04:15 صبح
البته نیاز نبود همه رو به float تبدیل کنم.
ولی چون من خوابم میومد اینکارو کردم تا هم کارت راه بیوفته هم من به خوابم برسم:دی

موفق باشی

ameysams
جمعه 29 مرداد 1389, 05:45 صبح
ممنون از اینکه بجای خواب ناز به مشکل من جواب دادی ولی:
1-من در turbo c برنامه می نویسم
2- کد شما هم همین مشکل را داشت!!

drstrike
شنبه 30 مرداد 1389, 05:50 صبح
در تصویر بالا می خواهم 8 را هم زیر ستون خودش بنویسه این هم کد :

دوست عزیز مشکل شما با استفاده از تابع gotoxy حل میشه.
کد اصلاح شده:


#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<iomanip.h>
//begin initialation
const int rowCount=100;
const float h=0.5;

const int infinit=177;

float x=0 ;
int row=1 ;

//end initialation

long double fact(int n){
long double result=1;
int i=1;
for (i=1;i<=n;i++){
result=result*i;

}//for

return result;
}//fact

float y(float x){


return ( exp(x)+(11*exp(-x)) )/2;


}//y

long double adm(float x){

long double result=6+expl(x);

int n=1;
for (n=1;n<=infinit;n++){

result=result+((6*pow(-1,n)* pow(x,n))/fact(n))-(pow(-1,n)*expl(x));


}//for

return result;
}//adm
int main(){

clrscr();
int c=3;
cout<<"#"<<"\t"<<"x"<<"\t"<<"y"<<"\t\t\t\t"<<"adm"<<endl<<endl;
while(row <= rowCount){


cout<<row<<"\t"<<x<<"\t"<<setprecision(10)<<y(x);
gotoxy(49,c);
cout<<adm(x)<<endl;
getch();
row=row+1;
x=x+h;
c++;

}//while
// cout<<adm(750);

getch();

return 0;
}


البته اعداد دو ستون آخر کنترل نشده اند، واسه همین جالب از آب در نمی یاد. اگه اعداد علمی مد نظرتون نیست، می تونید واسه اعداد اعشاریتون میدان تعریف کنید تا یکم خوانا تر شه.