问答题

编写函数fun(),它的功能是利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。
Xn+1=COS(Xn)
迭代步骤如下:
(1)取x1初值为0.0。
(2)x0=x1,把x1的值赋给x0。
(3)x1=cos(x0),求出一个新的x1。
(4)若x0-x1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2)。
(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。
程序输出结果Root=0.739085。
注意:部分源程序已存在文件test6_2.cpp中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
文件test6_2的内容如下:
#include<conio.h>
#include<math.h>
#include<iostream.h>
float fun()


void main()

cout<<"Root="<<fun()<<endl;

【参考答案】

float fun()
{ float xA=0.0,x0;
do
{ x0=xA;......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题

问答题
使用VC6打开考生文件夹下的工程tsst6_3,此工程包含一个源程序文件test6_3.cpp,其中定义了用于表示考生的类 Student,请按要求完成下列操作,将程序补充完整。 (1)定义私有数据成员code、english分别用于表示考生的编号、英语成绩、它们都是int型的数据。请在注释“ **1**”之后添加适当的语句。 (2)完成成员函数void Student::inputinformation()的定义,该函数用于用户输入一个考生对象的信息,输入格式如下: 输入编号: 英语成绩; 计算机成绩: 请在注释“ **2**”之后添加适当的语句。 (3)利用己实现的类Student的成员函数,完成函数void firstname(Student *A[],int num)的定义,该函数根据考生信息 A[],输出num个考生中总分最高者的编号及其相应的总分,在此不考虑总分相同的情况。请在注释“ **3**”之后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 源程序文件test6_3.cpp清单如下: #include<iostream.h> class Student **1** int computer; int total; public: void getinformation(); void computesum(); int getcode(); int gettotalscore(); ~Student(); ; void Student::getinformation() **2** cout<< 英语成绩: ; cin>>english; cout<< 计算机成绩: ; cin>>computer; void Student::computesum() total=english+computer; cout<< 编号 <<code<< 总分: <<total<<endl; int student::getcode() return code; int Student::gettotalscore() return total; void firstname(Student *A[],int num) **3** tempsum=(*A[0]).gettotalscore(); for(int i=1;i<num;i++) if (((*A[i]).gettotalscore())>tempsum) tempcode=(*A[i]).getcode(); telnpsum=(*A[i]).gettotalscore(); cont<< 总分最高者-- <<tempcode<< : <<tempsum<<endl; void main() Student *A[3]; int i,n=3; for(i=0;i<n;i++) A[i]=new Student; A[i]->getinformation(); for(i=0;i<n;i++) A[i]->computesum(); firstname(A,3);