资源描述
实 验 三
任务1:程序调试。求两个自然数间的自然数的和的while循环程序设计。
设计代码如下:(所显示的代码是已经修改错误后的)
(1) 修改程序中的语法错误。
答:如图所示,“while (i<=m);”应该将“;”删除,因为分号将循环条件和循环体分割开来,使系统无法执行;“sum=sum+i;i++;”是循环语句中的循环体结构,一般需要以{}括起来。
Ps:长方形内“print”也应该改为“Add”,因为代码所定义的成员函数为Add。
(2) 从键盘输入1 100(回车),检验运行结果。
运行结果如下:
(3) 在程序段,如果没有i++语句,会出现什么情况?
答:编译正确,运行时可以输入数字,但无法求和。
如下:
(4) 当程序运行时,如输入10 2,结果如何?应该如何修改?
答:输入后,显示所求之和为0。
代码如下:
(5) 成员函数Add能否用访问控制符private来限定?
答:不能,如果用访问符private来限定,那么add将不可使用。
任务2:程序设计。应用while循环逐项求和。
定义一个类Addn_m,类中有整形私有数据n、m(m>n),除构造函数外还有成员函数add,此函数的功能是求1/n+1/(n+1)+...+1/m的和,请仿照任务1进行设计。
设计代码如下:
任务3:程序设计。计算阶乘。
设计代码如下:(已修改)
(1) 调试程序,修改错误。
答:“Factorial(int a){n=a;}”应该定义为公有,不能定义为私有,否则编译时无法访问private在“Factorial”类中的申明。
(2) 函数mult的访问控制可以定义为私有吗?
答:可以。
任务4:程序设计。求阶乘和。
仿照任务3,定义一个求阶乘和的类,从键盘输入一个不大于10的整数n,求表达式的值sum=1!+2!+3!+...+n!。
设计代码如下:
任务5:程序设计。应用循环逐项求值。
编写计算近似值公式:e=1-1/1!+1/2!-1/3!+...的程序,并使误差小于0.00001。
设计代码及运行结果如下:
任务6:程序设计。类中通过循环输出规则图形。
已知mian函数定义,如程序在执行时输入:
3 4 *
则程序执行结果为:
* * * *
* * * *
* * * *
设计代码如下:
任务7:程序设计。定义类及成员函数。
设计程序,输出书中P15上的图形:
设计代码如下:
运行结果如下:
展开阅读全文