C++实验

1. 利用所学的函数知识求解cos(x)+ex,计算精度为10-10,x∈(−∞, +∞)的值由键盘输入,cos(x)的泰勒级数为:

ex的泰勒级数为:

2. 利用函数重载完成三个比较大小的Compare函数,供主函数调用。三个Compare函数功能符合下列A、B中的之一。

A. 两个整数、两个字符、两个Person对象(按Person的年龄进行比较).

B. 两个整数、两个字符、两个字符串(利用字符数组,返回值是char *)的比较。

二、设计思路及程序代码

第一题

设计思路:

  1. 设计两个函数分别计算cos(x)和ex,具体代码参考书上例3-5,修改初始值,g,t,n和每项的计算公式
  2. 设置一个常数用来控制精度
  3. 用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;

}

第二题

设计思路:

  1. 主函数设置一个Switch方便调用
  2. 设计三个子函数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;

}

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值