华科C++第六次上机作业讲解.docx
文本预览下载声明
第六次上机作业实验八求组合数Cnm=n!/[m! (n-m)!](m为指数)#include iostreamusing namespace std ;long com (int,int ),fac(int);int main(){intm,n;cout Please input two numbers m,n(mn):\n;cinmn;if (m=n) cout C(m,n)=com(m,n)endl;elsecoutInput Error!\n;return 0;}long com (inti,int j ){longcmb ;cmb=fac(j)/(fac(i)*fac(j-i));returncmb ;}longfac(int i){longfcl;if (i==0||i==1) fcl=1;elsefcl=i*fac(i-1);returnfcl ;}(3)还有一种常见错误,例如: longfac(int i){ if(i==0||i==1) fac(i)=1; elsefac(i)=i*fac(i-1);returnfac(i); }编译此程序,会出现提示信息 Left_value required 的错误,请思考这是为什么?然后修改正确。没有定义变量i?3、 用递归函数实现勒让德多项式。?在主函数中求P4(1.5)。#include iostreamusing namespace std ;double P(intn,double x){double h;if (n==0) return 1;else if(n==1)return x ;else if(n1) h=((2*n-1)*x*P(n-1,x)-(n-1)*P(n-2,x))/n;return h;}int main (){int n;double x;cinnx;coutP(n,x)endl;return 0;}}实验九范例:编写几个计算面积的函数,分别计算圆、矩形、梯形和三角形的面积, 计算边长为1的正方形及其内切圆、内接等腰三角形和等腰梯形面积。#include iostream#include cmathusing namespace std;const double PI=3.14159;double area(double radius=0);double area (double a ,double b);double area (double a ,double b,double h);double area (double a ,double b,double c ,int);int main(){coutArea of point is area( )\n;coutArea of square is area(1,1)\n;coutArea of circle is area(0.5 )\n;coutArea of trapezium is area(1,0.5,1 )\n;coutArea of tringle is area(1,sqrt(1+0.5*0.5), sqrt(1+0.5*0.5),0)\n;return 0;}double area (double radius){return PI*radius*radius ;}double area (double a ,double b){return a*b ;}double area (double a ,double b,double h){return (0.5*(a+b)*h) ;}double area (double a ,double b,double c ,int){double s=0.5*(a+b+c);returnsqrt(s*(s-a)*(s-b)*(s-c));}(2) 若将计算矩形面积的函数原型改为 double area(double a=0, double b=0);重新编译运行情况会怎样?为什么? 结果不变,程序优先读取给出的实参而不是默认变量(3) 若将计算三角形面积的函数原型改为 double area(double a, double b,double c);程序还能正确运行吗?为什么? 出现错误,因为这样程序会混淆求矩形和三角形的函数(它们变量形式一样)(4) 若将计算三角形面积的函数原型改为 double area(double a, double b,double c=0,int); 程序还能正确运行吗?为什么?可以?,结果不变,程序优先读取给出的实参而不是默认变量2、 编程:将上题以多文件方式组织,在area.h 中声明各个area( )函数原型,在area.cpp中定义函数,然后在Exp9_2.cpp中包含area.h,
显示全部