实验要求:
1. 利用所学的函数知识求解cos(x)+ex,计算精度为10-10,x∈(−∞, +∞)的值由键盘输入,cos(x)的泰勒级数为:
ex的泰勒级数为:
2. 利用函数重载完成三个比较大小的Compare函数,供主函数调用。
三个Compare函数功能分别是两个整数、两个字符、两个字符串(利用字符数组,返回值是char *)的比较。
(1)比较整数的大小,屏幕上输出谁大于谁,并返回较大的那个值。
(2)比较字符,根据他们的ASCII码值大小进行,比较,输出同上。
(3)比较字符串,首先判断字符长度是否一致,如果不一致,将字符串长的认定为大值。如果一致的话,则比较他们ASCII值的总和谁大谁小。输出同上。
程序代码:
1. 利用所学的函数知识求解cos(x)+ex,程序代码如下:
#include<iostream>
#include<cmath>
using namespace std;
const double TINY_VALUE = 1e-10;
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 << "所求得的结果为:"<< p <<endl;
return 0;
}
2. 利用函数重载完成三个比较大小的Compare函数,程序代码如下:
#include<iostream>
using namespace std;
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);
if (m > n)
return a;
else
return b;
while (m == n)
{
if (a[i] == b[i])
break;
else if (a[i] > b[i])
return a;
else
return b;
}
return a;
}
int main()
{
int m, a1, b1;
char n, a2, b2;
char arr_1[15], arr_2[15];
char* p;
cout << "1.两个整型\n";
cout << "2.两个字符\n";
cout << "3.两个字符串\n";
cout << "请选择你想要比较的类型?:";
cin>>m;
switch (m)
{
case 1:
{
cout << "请输入两个整型:";
cin >> a1 >> b1;
m = Compare(a1, b1);
cout << "两者中大的是:"<< m;
break;
}
case 2:
{
cout << "请输入两个字符:";
cin >> a2 >> b2;
n = Compare(a2, b2);
cout << "两者中大的是:"<< n;
break;
}
case 3:
{
cout << "请输入第一个字符串:";
cin >> arr_1;
cout << "请输入第二个字符串:";
cin >> arr_2;
p = Compare(arr_1, arr_2);
cout << "两者中大的是:"<< p;
break;
}
default:
cout << "请输入正确的选择序号!!!";
}
}
运行结果:
1.代码运行结果如下:
2.代码运行结果如下: