实验和实验程序设计的三种基本结构(第次实验第周)分析.doc
文本预览下载声明
完成下面实验内容,将程序清单或运行结果截图复制到实验文档中,以“学号+姓名+班级+实验2.doc”命名实验文档,将文档上传至课程中心。
实验目的
理解算法和结构化程序设计的基本概念
掌握if,switch分支语句的使用
掌握while语句,do…while语句,for语句的功能。
掌握用循环结构实现累加、累乘、穷举等常用算法。
掌握在循环结构程序中使用break语句和continue语句。
锻炼调试程序的能力。
二、实验内容和实验要求
按实验指导书P148至P154的要求,完成实验3的实验内容及自测练习;按实验指导书P155至P160的要求,完成实验4的实验内容及自测练习。
1. P148-练习题1
⑴ 已知三条边a、b、c
⑵ 要求
在C++中用标准函数sqrt计算平方根,此函数包含在math.h头文件中。
⑶ 思路
该程序用到了C++中的数学标准函数sqrt。要用编译预处理命令#include,把math头文件包含进来。用cin输入流控制将三条边长输入给a、b、c
⑷ 程序代码
#include iostream
using namespace std;
#include cmath
int main()
{
int a,b,c;
float s,area ;
cout 输入三个边长:;
cin a b c;
s =1.0/2*(a+b+c) ;
area = sqrt(s*(s-a)*(s-b)*(s-c)) ;
cout area = area endl;
return 0;
}
⑸运行结果截图:
思考题及问题:
① 将程序中的“s=1.0/2*(a+b+c;”语句改为“s=1/2*(a+b+c);”,再进行编译、链接、运行,看结果如何。
② 将程序中的“area=sqrt(s*(s-a)*(s-b)*(s-c));”语句改为“area=sqrt(s(s-a)(s-b)(s-c));”,再进行编译、链接、运行,看结果如何。
③分析题目中,若输入(3、6、10)运行时有什么样的缺陷?修改程序保证任意输入的a,b,c的3个值均能代表三角形的三条边,求三角形的面积。
④在③的基础上,若想求10个这样三角形的面积,怎么修改程序。
2. P150-练习题3
⑴ 编程序,计算下面分段函数的值。
2x+10 (x0)
y= 8x+5 (0≤x≤10)
4x-10 (x10)
⑵ 要求
① 用键盘输入x的值。
② 运行程序时,分别按x的值小于0、x的值在0到10之间、x的值大于10三种情况输入数据,检查输出的y值是否正确。
⑶ 思路
该程序根据输入数据x的值不同,计算不同的函数表达式,并输出计算结果,显然需要采用分支结构实现,由于此分段函数只有3种情况,故可以采用if~else if~else多分支语句实现。如果情况比较多,如5种以上的情况,建议采用switch语句实现。
⑷ 程序代码
#include iostream
using namespace std;
int main()
{
int x,y;
cout 输入x的值:;
cin x ;
if(x0)
y=x+10;
else if(x=10)
y=8*x+5;
else
y=4*x-10;
cout x= x , y= y endl;
return 0;
}
⑸运行结果截图:
思考题及问题:
判断x的值在0~10之间可否使用表达式“0=x=10”?为什么?正确的表示方法是什么?
3. P150-练习题4
⑴ 输入并运行以下程序,分析程序的运行结果。
#include iostream
using namespace std;
int main()
{
float x,y;
x=2.2;
y=x/2.0;
y=y*2.0;
if (y==2.2)
cout x==y endl;
if (x=y)
cout 这是一个逻辑错误! endl;
return 0;
}
⑵运行结果截图:
思考题及问题:
① 为什么该程序的运行结果是输出“这是一个逻辑错误!”?
② 将“if (y==2.2)”改为“if (fabs(y-2.2)1e-6)”,然后运行程序,查看结果,结果如下:
③ 该程序中的“if(x=y)”到底要表达何意?请改成正确的形式。修改后的程序代码及运行结果如下:
4. P153-练习题6
运行结果截图:
思考题及问题:
① 本程序所给代码
显示全部