《程序结构和流程控制语句》由会员分享,可在线阅读,更多相关《程序结构和流程控制语句(31页珍藏版)》请在金锄头文库上搜索。
1、第3章 程序结构和流程控制语句教学内容:1程序的三种基本结构:顺序结构、分支结构和循环结构;( 15分钟)2 C+ + 程序的组成。(5分钟)3C+ + 语句类型。(10 分钟)4实现分支程序的条件语句:if 语句(45分钟)、if 语句嵌套(10分钟)、条件运算符(5分钟)与switch语句(改为自学15分钟);5实现循环程序的循环语句:while语句(25分钟)、dowhile语句(20分钟) 与for语句 (45分钟);6三种循环语句的比较,循环语句嵌套(25分钟)7控制程序执行顺序的语句:break、continu、goto,退出程序的函数:exit()与abort()(20分钟)8C
2、+程序的综合举例: 例3.21、例3.22(45分钟)。9习题课:例3.23、例3.24、例3.25(80分钟)9本章小结(10分钟)教学要求:1掌握程序的三种基本结构,即顺序结构、分支结构和循环结构;2 . 掌握C+ + 语言中实现这三种基本结构的控制语句的格式、功能和执行过程;3. 能使用这些控制语句编写具有顺序、分支和循环三种基本结构的程序。教学方法:1通过例题1.2 与例题1.3与sum=1+2+3+10引出顺序、分支、循环程序的概念。2通过回忆第1章例1.3及程序结构特点引出C+程序的组成。在做实验1时,应向学生演示C+的项目程序可由多个源程序组成,每个源程序由编译预处理命令与函数组
3、成。3C+程序的语句类型可用图3.6的格式来描述。4在介绍双选条件语句及例3.2时,应注意,只要在单选条件语句与例3.1板书上稍作修改即可,学生可不必记例题。只画一般流程图,N-S流程图让学生自学。介绍双选条件语句后应立即讲述条件运算符。5在介绍嵌套条件语句及例3.4时,应注意,只要在多选条件语句与例3.3板书上稍作修改即可,学生可不必记例题。讲多选条件语句与嵌套条件语句时,一定向学生强调程序书写缩进格式,及if 与else上下对齐。6在讲述开关语句时,必须讲清表达式只能是整型或字符型,case语句执行后将执行其后一条case语句,因此必须用break语句才退出switch语句。7用累加和为引
4、例引入循环语句,强调循环程序的四部分,即循环初始化、循环体、循环修改、判循环结束。do while语句的作用、格式、执行过程及举例,只要在while语句的基础上稍作修改即可,这样可省掉许多写板书的时间。图3. 1 顺序结构顺序结构 S1 S2第3章 程序结构和流程控制语句f i l e : / / / / F| / 网络课程/ C+ + 程序设计/ 第3章 程序结构和流程控制语句. h t m (第 131 页)2 0 0 7 -9-5 14: 13: 49 娜娜第3章 程序结构和流程控制语句S1S2(b) (a) 8 对于f o r 语句必须讲清三个表达式的作用为初始化、循环判断、循环修改,
5、语句执行过程与w h i l e 语句类似,当 省略第1与3个表达式时,f o r 与w h i l e 语句是相同的。3. 1 程序的三种基本结构和语句类型3. 1. 1 程序的三种基本结构1. 顺序结构按语句顺序依次执行的结构称为顺序结构。如图3.1所示。先执行S1(cinxy)操作,再执行S2(sum=x+y;couty)成立(“真”)时,执行S1(max=x)操作,否则执行S2(max=y)操作。图3. 2 分支结构 真假S1S2B 真 假 B S2 S1 (b) (a)f i l e : / / / / F| / 网络课程/ C+ + 程序设计/ 第3章 程序结构和流程控制语句. h
6、 t m (第 2 31 页)2 0 0 7 -9-5 14: 13: 49 娜娜第3章 程序结构和流程控制语句(2)多路分支:在多种可能的操作中按条件选取一个执行的结构称为分支结构,图3.3让学生看书。如图3.3所示,依次判断条件Bi是否成立,当Bi成立时,就执行相应的Si操作;当所有条件都不成立时,就执行Sn+1操作。3. 循环结构循环结构有两种形式,即当型循环结构和直到型循环结构。(1)当型循环结构:当条件成立时重复执行一个操作直到条件不成立为止的结构。在图3.4中,设i=0,sum=0,当条件B(i=10)不成立(“假”)时才停止执行S操作,转而执行其他操作。从而通过循环完成sum=1
7、+2+3+10的工作。(2)直到型循环结构:重复执行一个操作,直到条件不成立为止的结构在图3.5中,先执行S操作,再判断条件B是否成立,若条件B成立(“真”),再执行S操作,如此重复,直到条件B不成立(“假”)时停止执行S操作,转而执行其他操作。图3. 5 直到型循环结构 假 真 S B S 直到B为假(a) (b) 图3. 4 当型循环结构 真 假 B S 当B为真S(b) (a)f i l e : / / / / F| / 网络课程/ C+ + 程序设计/ 第3章 程序结构和流程控制语句. h t m (第 331 页)2 0 0 7 -9-5 14: 13: 49 娜娜第3章 程序结构和
8、流程控制语句3. 1. 2 C+ + 程序的组成C+程序 源程序文件1 源程序文件2 源程序文件n 编译预处理命令 函数1 函数n 函数2 函数说明部分 函数执行部分 数据定义 执行语句 图3.6 C+程序的组成C+ + 程序的组成如图3. 6 所示,即一个C+ + 程序可以由若干个源程序文件组成,一个源程序文件可以有若干个函数 和编译预处理命令组成,一个函数由函数说明部分和函数执行部分组成,函数执行部分由数据定义和若干个执行 语句组成。语句是组成程序的基本单元。举例说明。 3. 1. 3 C+ + 的语句类型C+语言的语句可以分成以下六大类:(1)说明语句:对变量、符号常量、数据类型的定义性
9、说明 例如:int a,b,c; /定义整型变量a、b、c 仅向编译系统提供说明信息,在程序执行期间并不执行任何操作。 如,定义变量语句int a,b,c;是告诉编译系统为变量a、b、c各分配4个字节的存储空间用于存放变量的值。程序执行时,该 语句就不起任何作用了。 说明语句可出现在函数内、外允许出现语句的任何地方。 (2)控制语句:能改变程序执行顺序完成控制功能的语句。 控制语句包括:条件语句、开关语句、循环语句、转向语句、从函数返回语句等。 (3)函数调用语句:(实参); 在一次函数调用后加上一个分号所构成的语句称为函数调用语句。其一般格式为: 例如:max(a,b); 其中,max(a,
10、b)为求a、b两个变量中较大值的函数。 (4)表达式语句:表达式后加分号构成的语句。 例如:由一个赋值表达式加一个分号构成一个赋值表达式语句:y=x*x+2*x; (5)空语句: ; 只有一个分号所构成的语句称为空语句。即:; (6)复合语句(语句块):用 将若干语句括起来构成的语句。 “”标明复合语句的开始,“”标明复合语句的结束,“”后不再需要分号。 例如:t=a;a=b;b=t; 复合语句主要用于控制语句中。f i l e : / / / / F| / 网络课程/ C+ + 程序设计/ 第3章 程序结构和流程控制语句. h t m (第 431 页)2 0 0 7 -9-5 14: 13
11、: 49 娜娜第3章 程序结构和流程控制语句图3. 7 单选条件语句执行过程 (b)真(非0)假(0)语句表达式 表达式 语句 假(0) 真(非0) (a) 程序的三种基本结构都是通过语句来实现的。由于顺序结构比较简单,已在第2 章中有所介绍,所以下面只介绍 能实现分支结构、循环结构的分支语句和循环语句。3. 2 分支语句分支语句用于实现分支程序设计。分支程序有两路分支结构和多路分支结构,两路分支结构可用if语句实现,多路分支结构可用嵌套的if语句和switch语句实现。3. 2 . 1 i f 语句( 条件语句)条件语句根据给定条件,决定执行两个分支程序段中的某一分支。1. i f 语句的三
12、种形式(1)单选条件语句语句格式:if ()执行过程:当表达式的值为非0(真)时,执行语句,否则不执行语句。说明:图3. 8 求两个数中的最大值流程图 bmax 输入 a、bmax=a真(非0)假(0) max=b 输出 max(a) (b) max=b bmax 假(0) 真(非0) max=af i l e : / / / / F| / 网络课程/ C+ + 程序设计/ 第3章 程序结构和流程控制语句. h t m (第 531 页)2 0 0 7 -9-5 14: 13: 49 娜娜第3章 程序结构和流程控制语句输出max 开始 结束 输入 a、b 表达式必须用“( ) ”括起来;语句只
13、能是单个语句或复合语句。【例3.1】 输入两个整数a和b,输出其中较大的一个数。程序流程图如图3.8所示。程序如下:#include void main() int a,b,max;coutab;max=a;if (bmax)图3. 9 两选条件语句执行过程 表达式 语句1 假(0) 语句2 真(非0) 表达式真(非0)假(0) 语句1语句2(a) (b)m a x = b ;cout)else执行过程:当表达式的值为非0(真)时,执行语句1,否则执行语句2。【例3.2】 输入两个整数a和b,输出其中较大的一个数。f i l e : / / / / F| / 网络课程/ C+ + 程序设计/
14、第3章 程序结构和流程控制语句. h t m (第 6 31 页)2 0 0 7 -9-5 14: 13: 49 娜娜第3章 程序结构和流程控制语句(a) 图3. 10 求两个数中的最大值流程图 假(0) 真(非0) max=a ab max=b 输出max 输入 a、b 开始 结束 ab 输入 a、b真(非0)假(0) max=amax=b输出 max(b) 程序流程图如图3. 10 所示。在图3. 8 的基础上修改即可。程序如下:#include void main() int a,b,max;coutab;if (ab)max=a;elsemax=b;cout?:执行过程:若表达式1为真
15、,则表达式2的值为条件表达式的值;否则,则表达式3的值为条件表达式的值。即 if (表达式1) 条件表达式值=表达式2f i l e : / / / / F| / 网络课程/ C+ + 程序设计/ 第3章 程序结构和流程控制语句. h t m (第 7 31 页)2 0 0 7 -9-5 14: 13: 49 娜娜第3章 程序结构和流程控制语句else 条件表达式值=表达式3; 当if语句的两个分支中都执行给同一个变量赋值的赋值语句时,可以用条件表达式来替代if语句,所以也可以用条件表达式构成分支结构程序。如求两个整数a和b中较大数的if 语句为:if (ab) max=a;else max=b; 用条件运算符可改写为一条语句: max=(ab)?a:b; (4)优先级:算术关系逻辑条件赋值逗号。所以赋值表达式m=(ab)?a:b中,括号可以不要,即可写成m=ab?a:b。(3)多选条件语句多选条件语句的格式为:if ()else if ().else if ()elsex2-5 0xvoid main() float x,y;coutx;if (x)if ()elseelsef i l e : / / / / F| / 网络课程/ C+ + 程序设计/ 第3章 程序结构和流程控制语句. h t m (第 931 页)2 0 0 7 -9-5 14: 13: 49