return0;
}
(五)实验题目五:
牛顿迭代法解非线性方程的根
#include
#include
usingnamespacestd;
voidnewton(doublex,doublex0)
{
doublef,df;
do
{
x0=x;
f=2*x0*x0*x0-4*x0*x0+3*x0-6;
df=6*x0*x0-8*x0+3;
x=x0-f/df;
}while(fabs(f)>1e-9||fabs(x-x0)>1e-9);
}
intmain()
{
doublex=1.5;
doublex0=0;
newton(x,x0);
cout<<"2*x*x*x-4*x*x+3*x-6=0在1.5附近的牛顿迭代根为\n"<<"x="<return0;
}
(六)实验题目六:
用弦截法求一元非线性方程f(x)=x*e^x-1在[0.5,0.6]中的根
#include
#include
usingnamespacestd;
voidjie(doublex0,doublex1)
{
doublef0,f1,f2,x2;
f0=x0*exp(x0)-1;
f1=x1*exp(x1)-1;
x2=x0-(x0-x1)*f0/(f0-f1);
f2=x2*exp(x2)-1;
while(fabs(f2)<1.0E-8)
{
x2=x0-(x0-x1)*f0/(f0-f1);
if(f0*f2<0)
x0=x2;
else
x1=x2;
}
}
intmain()
{
doublex1=0.6;
doublex0=0.5;
doublef0,f1,f2,x2;
f0=x0*exp(x0)-1;
f1=x1*exp(x1)-1;
x2=x0-(x0-x1)*f0/(f0-f1);
f2=x2*exp(x2)-1;
jie(x0,x1);
cout<<"弦截法求f(x)=x*e^x-1在[0.5,0.6]中根为\n"<<"x="<return0;
}
问题拓展:
f=x*x*x-5*x*x+16*x-80
#include
#include
usingnamespacestd;
voidjie(doublex0,doublex1)
{
doublef0,f1,f2,x2;
f0=x0*x0*x0-5*x0*x0+16*x0-80;
f1=x1*x1*x1-5*x1*x1+16*x1-80;
x2=x0-(x0-x1)*f0/(f0-f1);
f2=x2*x2*x2-5*x2*x2+16*x2-80;
while(fabs(f2)<1.0E-8)
{
x2=x0-(x0-x1)*f0/(f0-f1);
if(f0*f2<0)
x0=x2;
else
x1=x2;
}
}
intmain()
{
doublex1=6;
doublex0=2;
doublef0,f1,f2,x2;
f0=x0*x0*x0-5*x0*x0+16*x0-80;
f1=x1*x1*x1-5*x1*x1+16*x1-80;
x2=x0-(x0-x1)*f0/(f0-f1);
f2=x2*x2*x2-5*x2*x2+16*x2-80;
jie(x0,x1);
cout<<"弦截法求f=x*x*x-5*x*x+16*x-80在[2,6]中根为\n"<<"x="<return0;
}
(七)实验题目七:
编写函数判定一个正整数是否是递增数,即该数各位数字从左至右递增排列,显示输出0至9999999之间所有递增数。
#include
usingnamespacestd;
intk(intn)
{
inta,b,c,d,e,f,g;
a=n/1000000;
b=(n/100000)%10;
c=(n/10000)%10;
d=(n/1000)%10;
e=(n/100)%10;
f=(n/10)%10;
g=n%10;
return(a<=b&&b<=c&&c<=d&&d<=e&&e<=f&&f<=g);
}
intmain()
{
intm=0;
for(intn=1;n<10000000;n++)
if(k(n))
{
m++;
if(m<51)
cout<if(m>11389)
cout<}
return0;
}
二、个人小结
本次程序设计主要学习了函数的定义及调用,其中的细节有参数的设置和应用以及传递方式,还有局部变量与全部变量的区别和联系。
从学习内容上来说算不上难,只是具体在操作中调用函数总是出现这样那样的问题,即使是特别简单的问题也不那么容易解决,所以在以后学习过程中还要不断应用,已达到温故知新的目的!
具体到题目中第三题因为条件不好控制,导致图形输出总是出现这样那样的问题,最后虽然问题得到了解决,但也使源程序变得十分冗长复杂,以后一定要相出一种简单的做法来使问题得到解决!
对第七题理解不够透彻致使输出无法显示,经过请教老师解决了问题,同时也从根本上扫清了思想误区,更加透彻的了解到了函数调用的魅力!