网站大量收购独家精品文档,联系QQ:2885784924

实验和实验程序设计的三种基本结构(第次实验第周)分析.doc

实验和实验程序设计的三种基本结构(第次实验第周)分析.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
完成下面实验内容,将程序清单或运行结果截图复制到实验文档中,以“学号+姓名+班级+实验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 运行结果截图: 思考题及问题: ① 本程序所给代码

文档评论(0)

四月 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档