1、533条件语句案例探究 某市电信部门规定,打市内电话时,如果通话时间不超过3min,则收取通话费02元;如果通话时间超过3 min,则超过部分以01元/min计(不足1 min按1 min计)试设计一个计算通话费用的算法,画出流程图并用伪代码描述 解:解决这一问题的算法步骤: S1:输入通话时间t; S2:如果t3,那么c02 否则c02+01(t-03) S3:输出c 其流程图如图:用伪代码表示为: Read“t=”;t If t=3 then c0.2 Eles c02+0.1*(t-3) Print“c=”;c End if End 像这种if A then B Else C End i
2、f语句就是这节课要学习的条件语句自学导引 1算法逻辑结构中条件结构一般由算法语句中的条件语句来实现 2条件语句的一般格式有两种,一种是If-then-else格式,其形式为:if条件then语句1Else语句2END if,另一种是If-then格式,其形式If条件then语句End if为:3条件语句两种格式的流程图可化为:疑难剖析 【例1】 已知分段函数y=编写程序输入自变量x,输出其相应的函数值思路分析:由于函数是一个分段函数,所以输入x的值后根据x所在的范围,选择相应的函数解析式代入求值,故应该选择条件语句,又因为实数x的值共分为三个范围,所以要用条件语句的嵌套,流程图如图解:伪代码表
3、示: Read“x=”;x If xc and b+ca and c+ab Then p(a+b+c)/2 mp*(p-a)*(p-b)*(p-c) SSQR(m) Print“能构成三角形” Print“这个三角形的面积是S=”;S Else Print“构不成三角形” End if End 思维启示:本题首先要判断能否构成三角形,若能构成三角形,则计算其面积,否则输出不能构成三角形,于是需采用条件语句设计算法程序 【例3】 输入三个数,按由小到大的顺序把它们打印出来,画出流程图,并用伪代码表示思路分析:根据题意有如图所示的流程图,于是可根据流程图写出程序 解:程序如下: Read“输入三个
4、数”a,b,c If ab then ta ab bt End if If ac then ta ac ct End if If bc then tb bc ct End if Print a,b,c End 思维启示:本题中当每个判断条件不成立时没有可执行的语句,于是采用这一格式来设计程序,本题中有三个判断条件设计了三个模块,逐块处理,最后连成一个整体方案 【例4】 根据下面程序,画出流程图,并说出表示了什么样的算法 Read“请输入a,b,c”;a,b,c If ab and ac then Print“最大数为”;a if bc Then print “最大数为”;b print“最大数
5、为”;c End 分析:我们根据程序按顺序从上到下分析 第一步:是输入a,b,c三个数; 第二步:是判断a与b,a与c的大小,如果a同时大于b,c则输出a,否则执行第三步; 第三步:判断b与c的大小,因为a已小于b和c,则只需比较b与c的大小就能看出a,b,c中谁是最大的了,如果bc,则输出b,否则输出C 通过上面的分析,程序表示一个什么样的算法已经非常清楚了解:则框图为下图拓展迁移 【拓展点1】 学习优良奖的条件如下: (1)所考五门课成绩总分超过450分; (2)每门课都在88分以上; (3)前三门(主课)每门成绩都在95分以上,其他两门(非主课)每门成绩在88分以上 输入某学生的五门课成
6、绩,问他是否够优良条件?写出程序伪代码 解析:伪代码如下: Read“输入学生成绩”;a,b,c,d,e Suma+b+c+d+e If Sum450 and a95 and b95 and c95 and d88 and e88 Then print“该生够优良条件” Else print“该生不够优良条件” End if End 【拓展点2】 某商场实行优惠措施,若购物金额x在800元以上,打8折,若购物金额x在500元以上,则打9折,否则不打折请写出一个程序(伪代码表示)解析:根据题意首先画出流程图伪代码如下: Read“购物金额”;x If x=800 then yx*08 Print“应缴金额”;y Else If x=500 then yx*09 Print“应缴金额”;y Else yx Print“应缴金额”;y End if End if End