任务十六
一、实践任务
17.定义一个类SIN,求
二、详细设计
1、类的描述与定义 (1)私有数据成员
??float x:输入公式中x的值,求sin(x)。 ??int n:输入公式中n的值。
(2)公有成员函数
??SIN(float x, int n ):构造函数,用于初始化x和n的值。 ??int power( int q):求q!的值。 ??float mi(float m,int n):求
的值。
??float fun( ):用于求SIN(X)的值。 ??void show( ):输出求得的结果。
2、主要函数设计
在主程序中定义对象test,对该类进行测试(x是弧度,弧度不可能大于1)。
三、源程序清单
#include
SIN(double x,int n) { this->x=x; this->n=n; }
double power(int q);
double mi(double m,int n); double fun(); void show(); };
double SIN::power(int q)//求q的阶乘; {
double s=1; while(q!=1) { s*=q; q--; }
return s; }
double SIN::mi(double m,int n)//求m^n的值; {
while(n!=1) { m*=m; n--; }
return m; }
double SIN::fun()//用于求sin(x)的值;//注:当n较大时,阶乘和幂的运算可能超出变量的类型的字节大小!改用double类型可提高运算的范围!
{ double s=0;//记录每项相加的和 for(int i=1;i<=n;i++) { s+=mi(x,2*i-1)*mi(-1,i+1)/power(2*i-1);//通项为(-1)^(i+1)*x^(2*i-1)/(2*i-1)!,其中n为由1开始的奇数;
}
return s; }
void SIN::show()//输出求得结果; {
cout<<\}
void main() {
int degree,n; double hudu; cout<<\请输入度数和公式中的n值:\ cin>>degree>>n; hudu=degree60*(3.1415926)/180.0;//度数转换为弧度; SIN test(hudu,n); test.show(); }
四、实践小结
找到公式中的相关关系,再进行相应函数的组合。
五、运行结果
任务十七
一、实践任务
18.试建立一个类VAR,用于求n(
)个数的均方差。均方差的计算公式为
,其中平均值为。
二、详细设计
1、类的描述与定义 (1)私有数据成员
??double a[100]:用于存放输入的n个数。 ??int n:实际输入数的个数n。
(2)公有成员函数
??VAR(double x[], int n1):构造函数,初始化成员数据a和个数n。 ??double average(double x[], int n):求平均值,数组x具有n个元素。
??void variance(double x[],int n):求均方差,数组x具有n个元素。 ??void show():输出求得的均方差。
2、主要函数设计
在主程序中定义一个对象test,对该类进行测试。
三、源程序清单
#include
VAR(double x[],int n1) { for(int i=0;i double average(double x[],int n); double variance(double x[],int n); void show(); }; double VAR::average(double x[],int n)//求平均值,数组x具有n个元素; { double ave=0; for(int i=0;i return ave/n; } double VAR::variance(double x[],int n)//求均方差,数组x具有n个元素; { double d=0; for(int i=0;i void VAR::show()//输出求得的均方差;