资源描述:
《李晶第3章 控制结构.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、第3章控制结构3.1分支结构分支就是程序在设计时根据取值的不同选择做不同的事。if(条件){语句组1;}else{语句组2;}图3.1条件语句流程图语句1语句2条件真假“条件”就是逻辑表达式。如果“语句”只有一句,则可以省略花括号。有时候可能只有“if”而不需要“else”,但有“else”必须有“if”。if(条件){语句组1;}else{语句组2;}条件语句流程图B条件语句流程图A语句1语句2条件真假if(条件){语句组1;}语句1条件真假【例3-1】输入三个整数,求其最大值。【分析】图3.2“求三个整数最大值”的PAD图a>=b&&a
2、>=c输入a,b,cmax=ab>=a&&b>=cmax=bc>=a&&c>=bmax=c输出max【说明】①上面这个程序是一个很标准的“输入-处理-输出”思维方式。下面的程序逻辑上有没有问题?if(a>=b&&a>=c)max=a;if(b>=a&&b>=c)max=b;elsemax=ca>=b&&a>=cmax=ab>=a&&b>=cmax=bmax=c②三个条件语句是并列关系,也就是说,无论a,b,c谁是最大值,这三个语句都必须依次执行。事实上,它们只可能有一个成立(在三个数相等的情况也只需要其中一个语句),因此,把它们做成if…e
3、lse的结构在运行速度上能得到提高a>=b&&a>=c输入a,b,cmax=ab>=a&&b>=cmax=bmax=c图3.3“求三个整数最大值”解法2的PAD图输出max③如果先求a,b的最大值存于变量max中,再求max与c的最大值,这样只需考虑求两个数的最大值问题,简化了逻辑关系。④把“求两个数的最大数”看成一个函数,多次调用这个函数就能解决问题。把这个函数取名为Max2,我们只需关心送给Max2什么,经过Max2处理以后得到了什么.图3.4函数的入口参数和函数返回值a或babMax2⑤如果把三个数(甚至更多的数)看成一个数列,我们从
4、第一个数开始考察:看到第1个数,则这个数就是从开头到此的最大数。用前N-1个数的最大数与第N个数比较,则得到前N个数的最大数。如果第N个数到了最后,就求得所有数的最大数。用这样的逻辑思维可以用同一种办法求得若干个数的最大值,求解过程是单调重复的,这是计算机程序最喜欢也是最容易做的事。b>max输入a,b,c,d,emax=amax=bc>maxmax=cd>maxmax=de>maxmax=e图3.5“求四个整数最大值”的PAD图输出max【例3-2】输入三个正数,判断能组成何种三角形.【分析】先保证输入的数据有意义:①必须是正数;②必
5、须能构成三角形。再判断三角形的类型:①等边三角形;②直角三角形;③等腰三角形;④一般三角形。最后输出结果。相应的PAD图描述如图3.6所示输入a,b,c检查是否形成三角形判定形成哪种三角形并输出结果检查是否都是正数输入a,b,c检查是否形成三角形判定形成哪种三角形并输出结果a<=0
6、
7、b<=0
8、
9、c<=0返回必须是三个正数a<=0
10、
11、b<=0
12、
13、c<=0输入a,b,c返回a+b<=c
14、
15、a+c<=b
16、
17、b+c<=a返回必须是三个正数输入的三个数不能构成三角形判定形成哪种三角形并输出结果图3.6“判断三角形形状”的PAD图a<=0
18、
19、b<=0
20、
21、
22、c<=0输入a,b,c复合等边三角形条件符合直角三角形条件返回a+b<=c
23、
24、a+c<=b
25、
26、b+c<=a返回符合等腰三角形条件必须是三个正数输入的三个数不能构成三角形等边三角形直角三角形等腰三角形一般三角形图3.6“判断三角形形状”的PAD图a<=0
27、
28、b<=0
29、
30、c<=0输入a,b,ca==b&&b==ca*a+b*b==c*c
31、
32、a*a+c*c==b*b
33、
34、b*b+c*c==a*a返回a+b<=c
35、
36、a+c<=b
37、
38、b+c<=a返回a==b
39、
40、a==c
41、
42、b==c必须是三个正数输入的三个数不能构成三角形等边三角形直角三角形等腰三角
43、形一般三角形【说明】①判断三角形的类型的顺序是先特殊后一般。在程序设计中,通常把一些可能的特殊情况处理完了以后再处理一般情况。在这个程序中,如果把“等边三角形”与“等腰三角形”对换,将永远得不到“等边三角形”的结果。②在本程序中涉及到复合语句的概念。可以实验一下,如果把if后面的一对花括号去掉会是什么结果?③在上一章曾提到过输出函数puts,该函数输出一个字符串(带双引号的一串字符)并自动换行。④注意逻辑运算“与”(&&)、“或”(
44、
45、)的表达。⑤程序遇到return语句立即结束本函数,返回到调用者。本程序遇到return则结束主程序返回到
46、操作系统。如果return语句后面带着表达式,则返回且带回表达式的值给调用者,参看例2-3。【例3-3】四人中有一人做了好事,有下面一段对话,已知有三个人说了真话,判断是谁做的好