1. 利用所学的函数知识求解cos(x)+ex,计算精度为10-10,x∈(−∞, +∞)的值由键盘输入,cos(x)的泰勒级数为:
ex的泰勒级数为:
2. 利用函数重载完成三个比较大小的Compare函数,供主函数调用。三个Compare函数功能符合下列A、B中的之一。
A. 两个整数、两个字符、两个Person对象(按Person的年龄进行比较).
B. 两个整数、两个字符、两个字符串(利用字符数组,返回值是char *)的比较。
二、设计思路及程序代码
第一题
设计思路:
- 设计两个函数分别计算cos(x)和ex,具体代码参考书上例3-5,修改初始值,g,t,n和每项的计算公式
- 设置一个常数用来控制精度
- 用do-while语句计算泰勒公式
程序代码:
#include
#include
using namespace std;
const double TINY_VALUE=1e-10;
double tcos(double x);
double ex(double x);
double tcos(double x)
{
double g=1;
double t=-x*x/2;
int n=1;
do{
g=g+t;
n++;
t=-t*x*x/(2*n)/(2*n-1);
}while(fabs(t)>=TINY_VALUE);
return g;
}
double ex(double x)
{
double g=1;
double t=x;
int n=0;
do{
g=g+t;
n++;
t=t*x/(2*n);
}while(fabs(t)>=TINY_VALUE);
return g;
}
int main()
{
double x,p;
cout<<"x=";
cin>>x;
p=tcos(x)+ex(x);
cout<
system("pause");
return 0;
}
第二题
设计思路:
- 主函数设置一个Switch方便调用
- 设计三个子函数Compare做不同比较
程序代码:
int Compare(int a,int b);
char Compare(char a,char b);
char* Compare(char a[],char b[]);
int main ()
{
int m,a1,b1;
char n,a2,b2;
char arr_1[15],arr_2[15];
char* p;
cout<<"请选择你想要比较的类型?"<
cout<<"1.两个整型"<
cout<<"2.两个字符"<
cout<<"3.两个字符串"<
cin>>m;
switch(m)
{
case 1:
{
cout<<"请输入两个整型:"<
cin>>a1>>b1;
m=Compare(a1,b1);
cout<<"两者中大的是:"<
break;
}
case 2:
{
cout<<"请输入两个字符:"<
cin>>a2>>b2;
n=Compare(a2,b2);
cout<<"两者中大的是:"<
break;
}
case 3:
{
cout<<"请输入第一个字符串:"<
gets_s(arr_1);
cout<<"请输入第二个字符串:"<
gets_s(arr_2);
p=Compare(arr_1,arr_2);
cout<<"两者中大的是:";
cout<
break;
}
default:
cout<<"请输入正确的选择序号!!!";
}
system("pause");
}
int Compare(int a,int b)
{
if(a>b)
return a;
else
return b;
}
char Compare(char a,char b)
{
if(a>b)
return a;
else
return b;
}
char* Compare(char a[],char b[])
{
int i,j,m,n;
m=strlen(a);
n=strlen(b);
j=m+n-Compare(m,n);
for(i=0;i
{
if(a[i]==b[i])
break;
else if(a[i]>b[i])
return a;
else
return b;
}
return a;
}