1、实 验 四 任务 1:程序调试与程序设计, if-else 语句的应用。 ( 1) 根据题意,分段函数解析式为 :y=2+0.5*x。 程序代码为: ( 2) 如果把以上程序写成: 程序存在什么问题?请调试。 答:编译显示没有匹配 if 的非法 else。 If 中存在 多条语句块,应该用“ ”将其红色方框内的语句块包含在其中。任务 2: 程序调试。 if-else 语句的应用。 从键盘输入一个数,如果该数大于 0,则求该数的平方根,否则输出“该数小于 0”。 程序如下: 如果省略下列程序段中的大括号,程序能运行吗?为什么? if(x0) y= sqrt (x); cout1e-6)中应用表达
2、式 1e-6? 答: 因为 x 定义的是 float 型 , 浮点型不可能完全等于零 , 所以为了判读需要加上一个范围 1e-6, 当在 0附近 这个范围内都当作等于0; 任务 3: 程序调试与程序设计。类成员函数中 if-else 语句的应用。 ( 1) 程序的功能是判断从键盘输入的数是正数还是负数,输入 0 结束程序运行,程序设计为: ( 2) 设计程序。如果输入的 x 大于 0,则计算 y=10 的值;输入输入的 x 小于 0,则计算 y=10e0.1x 的值。 程序如下: 运行结果如下: ( 3) 对象定义在循环外,请重新设计程序。 程序设计如下: 运行结果如下: 任务 4: 程序调试
3、与程序设计。应用二分法求方程 f( x) =0 的根,掌握二分法及循环的应用。 ( 1) 调试程序。函数为 f( x) =2*x*x*x-2-2*x*x-6*x-3,用二分法求区间 -1010 的根。 程序如下: ( 2) 程序设计。改写上述程序,用类的方法求解程序,把类定义和主函数重新定义,编写类的成员函数 root,并调试。 程序如下: 头文件: 源文件: ( 3) 编写程序求解函数 f( x) =x*x-2*x-6 的根。 (运行时范围务必定义为 -3.53.5 内,否则求不出值。) 程序如下,头文件: 源文件: 任务 5:程序设计。各种类型的字符统计。 ( 1) 输入一行字符 ,分别统计这行字符中英文字母、空格、数字和其 它字符的个数。 程序如下: 思考:如果 while 中的表达式写成 while( ch=getcher()! =n)或 while( ch=getchar()! = 0),程序是否能达到预期效果?为什么? 答 :不能,因为语句在执行过程中存在一个优先级问题,如果改变,运行就达不到预期效果。