- 1、本文档共118页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章newc
第二章 基本控制结构程序设计 C++程序设计 结构化程序设计的特点:任何程序都可由三种基本结构及其组合(嵌套或堆叠)来描述。 本章将介绍C++分支结构和循环结构的设计方法。还将介绍一些常用算法。 2.1 算法的概念与表示方法 2.1.1 算法的概念 2.1.2 算法的表示 2.1.3 算法描述的三种基本结构 2.1.1 算 法 的 概 念 2.1.2 算法的表示 流程图:算法的图形化表示方法 矩形框 : 表示要执行的指令,在框内标注指令内容; 菱形框 : 表示要判断其中表达式的值是真还是假; 箭头线 : 标示指令的流程方向。 伪码: 伪码是介于自然语言和程序设计语言之间的一种类自然语言的表示方法,书写形式自由,容易转换为程序。 2.1.2算法的表示 活动图: UML活动图(activity diagram)用于计算流程和工作流程建模。通常使用活动图来表达顺序程序的流程,这点与传统的流程图很相似,仅仅图示方法上有所不同。 2.1.3算法描述的三种基本结构 任何算法的描述都可以分解为三种基本结构或它们的组合。 顺序结构 分支结构 循环结构 顺序结构 2.2 分支结构程序设计 2.2.1 if语句 2.2.2 if语句的嵌套 2.2.3 条件运算符 2.2.4 switch语句 对程序的运行流程进行控制,主要 通过执行专门用来控制流程的语句来实现。 分支语句是基本流程控制语句之一 2.2.1 if 语句 if (条件表达式) 语句1; if (条件表达式) 语句1; else 语句2; 2.2.1 if 语句 2.2.1 if 语句 if (条件表达式) 语句1; else 语句2; 2.2.2 if 语句的嵌套 嵌套if语句: if 语句中,如果内嵌语句又是if语句,就构成了嵌套if语句。 if 语句可实现二选一分支,而嵌套if语句则可以实现多选一的多路分支情况。 2.2.2 if 语句的嵌套 2.2.2 if 语句的嵌套 else和if的配对关系 ”就近配对“原则,相距最近且还没有配对的一对if和else首先配对 求一元二次方程的根源程序 2.2.3 条件运算符“?:” 三元运算符“?:”可以用来简化if语句表达。 其构成的表达式格式为: 表达式1 ? 表达式2 : 表达式3 2.2.3 条件运算符“?:” 表达式1 ? 表达式2 : 表达式3 2.2.4 switch语句 根据一个整型表达式的值决定程序分支 2.2.4 switch语句 2.1.2 switch 语句 2.1.2 switch 语句 2.1.2 switch 语句 2.2.4 switch语句 与 if 语句比较: 2.3 循环结构程序设计 2.3.1 while语句 2.3.2 do-while 语句 2.3.3 for语句 2.3.4 循环的嵌套 2.3.1 while语句 while语句也称当型循环,语句格式为: while (表达式) 循环体语句; while语句 2.3.1 while 语句 while (i=n) sum+=i++; while (sum+=i++, i=n) ;//循环体为空语句 这两种表达方式与例2.11中的循环语句从执行结果看是完全等价的。需要说明的是,虽然C++可以让代码最大限度优化,但往往造成可读性降低,因此程序设计者只需理解这种表达方法的意义,而设计时主要追求的目标应是可读性。 2.3.2 do-while 语句 do-while语句称为直到型循环,格式为: do { 循环体语句 }while(表达式); 2.3.2 do-while 语句 do/while语句和while语句的区别: do/while语句至少执行一次循环体后再判断循环条件是否满足; while语句先判断条件是否满足,然后才执行循环体。可能一次也不执行。 多数情况下可以互相替代。 do-while 语句 和迭代法对应的程序算法是递推算法: 1、输入a(a0)及较小正数delta(也可用常变量); 2、x 0 = a/2; 用迭代公式算 x1=(x0+a/x0)/2; 3、while(|x1 –x0|=delta) { x 0 = x 1 ;//把最近的值给x 0 x1=(x0+a/x0)/2; } //求xk+1时只需要知道xk的值,所以只需2个变量 4、取x1的值为a的平方
文档评论(0)