1、高考资源网() 您身边的高考专家1.2.2选择结构整体设计教材分析在一个算法中经常会遇到对一个条件进行判断,如果条件成立则执行某个操作,如果条件不成立则执行另一个操作.因此在算法的流程图中,根据条件是否成立有着不同的流向.像这种根据条件作出判断,再决定执行哪一种操作的结构称为选择结构(selection structure)(或称“分支结构”).一个选择结构都包含一个判断框,当条件成立时执行标有“”或者“是”的分支,当条件不成立时执行标有“”或者“否”的分支.图1的虚线框内就是常见的几种选择结构,在(1)中,当条件“n3”成立时执行A,否则执行B;在(2)中,当条件“n3”成立时执行A,否则直
2、接脱离选择结构;在(3)中,当条件“n3”成立时直接脱离选择结构,否则执行B.图1对于选择结构要注意以下几点:(1)在选择结构中不论条件是否成立,只能执行A框或者B框之一,不能既执行A框,又执行B框,即“”和“”两者之中只能选择一个,不能两者都选择;(2)在选择结构中不论条件是否成立,必须执行A框或者B框之一,不能既不执行A框,又不执行B框,即“”和“”两者之中必须选择一个,不能两者都不选择;(3)A框和B框中可以有一个是空的,即可以不执行任何操作直接脱离选择结构,但是不能两个框都是空的;(4)无论走哪条路径,执行完A或者B之后都经过,然后才脱离选择结构;(5)选择结构可以是嵌套的,即在选择结
3、构之中还可以出现选择结构,这种结构主要是出现在有多个条件判断的算法中;(6)选择结构可以和其他结构嵌套,形成比较复杂的结构;(7)A框或者B框可以不止一个操作,A框本身就可以是一个独立的算法结构.三维目标1.通过实例的训练,使学生理解选择结构的意义.2.能用流程图表示选择结构以及能用选择结构的流程图表示简单问题的算法,养成良好的逻辑思维习惯,发展有条理的思考与表达能力,达到提升学生逻辑思维能力的目标.重点难点教学重点:用选择结构的流程图表示算法.教学难点:多个选择结构的嵌套.课时安排1课时教学过程导入新课设计思路一:(情境导入)如果坐火车从上海到南京,可以坐普通特快列车,费时3小时左右,最低票
4、价为硬座52元;也可以坐新型的动车组列车,费时2小时左右,最低票价为二等座93元.如果你有急事要从上海赶往南京,打算坐什么车?如果你周末到南京度假,晚上出发,到了南京后就可以休息了,那从经济角度出发,打算坐什么车?图2这个问题显而易见,坐什么车要根据情况来确定,如果“有急事”,那么就坐动车组,如果“没有急事”,那就坐普通特快列车.你不可能在一次去南京的途中两种列车都坐,在限定了坐上述两种火车的前提下,也只能在两种中选择一个,到底选择哪一个,就看条件“有急事”是否成立.这个问题我们可以用很简单的图形(图2)来表示:这是一个流程图,在这个流程图中,我们先要对“有急事”这个选择框进行判断,然后根据判
5、断结果选择不同的流向,这个结构就是选择结构.(引入新课,板书课题选择结构)设计思路二:(问题导入)前面我们学习了算法和流程图,并学习了用流程图来表示算法.现在请你设计一个求一元二次方程ax2+bx+c=0(a0,0)的算法,并画出流程图.当然,我们先要输入a,b,c的值,然后计算=b24ac,由于题目提供了0的限制条件,所以可以直接利用一元二次方程的求根公式x1,2=,最后输出两个根x1和x2即可.因此算法如下: 图3S1输入a,b,c;S2b24ac;S3x1,2;S4输出x1,x2.流程图如图3所示.如果题目中删去条件0,则能不能仍然按照图3的流程图操作呢?显然是不行了,因为在计算x1,2
6、=时,如果0”进行判断,如果满足条件,即条件成立,则计算x1,2=,然后再输出x1,x2;否则就直接输出“方程无实根”.在这个问题中,我们先要对“0”这个条件进行判断,然后根据判断结果选择不同的操作步骤,这个结构就是选择结构.(引入新课,板书课题选择结构)推进新课新知探究某铁路客运部门规定甲、乙两地之间旅客托运行李的费用为其中w(单位:kg)为行李的重量.为了计算行李的托运费,应先判断行李的重量是否大于50 kg,然后再选用相应的公式进行计算.请同学们给出计算费用c(单位:元)的一个算法,并尝试画出流程图.算法如下:S1输入行李重量w;S2如果w50,那么c0.53w,否则c500.53+(w
7、50)0.85;S3输出行李重量w和托运费c.画流程图时遇到了麻烦,仅仅用我们前面学过的顺序结构将无法解决,因为我们必须在输入行李重量w后先对是否符合w50进行判断,再根据判断的不同结果选择不同的计算公式.对w50的判断结果无非就是两种,一种是“成立”,另一种是“不成立”,或者说一种是“是”,另一种是“否”,因此说问题的关键是对行李重量是小于等于50,还是大于50的处理.所以流程图的画法可以如图4所示:图4图4的流程图在菱形框处出现了“是”与“不是”的判断,需要选择,然后根据条件是否成立来确定不同的流向.像这样先根据条件是否成立作出判断,再决定执行哪一种操作的结构就称为选择结构(selecti
8、on structure).图5的虚线框内就是一个选择结构,它包含一个判断框,当条件成立(或称为“真”)时执行A,否则执行B.图5应用示例思路1例1 设计一个求一元二次方程ax2+bx+c=0(a0)的算法,并画出流程图.分析:由于本题没有了条件0,因此这个一元二次方程未必总有实根,所以要先判断0是否成立,如果成立,则计算x1,2=,再输出x1,x2,否则直接输出“方程无实根”.解:算法如下:S1输入a,b,c;S2b24ac;S3如果0,那么x1,2,否则输出“方程无实根”;S4输出x1,x2.流程图如图6所示:图6点评:本题如果是直接讨论后解方程,相信学生不会有太大的难度,写算法就是把解题
9、过程中体现的思路和具体的操作步骤写出来,所以我们只需要怎么样解题就怎么样表述.例2 任意给定3个正实数,设计一个算法,判断分别以这三个数为三边长的三角形是否存在,并画出这个算法的流程图.分析:判断分别以这3个数为三边长的三角形是否存在,只需要验证这三个数当中任意两个数的和是否大于第三个数,这就需要用到选择结构.解:算法如下:S1输入a,b,c;S2计算a+b,b+c,a+c;S3判断a+bc,b+ca,c+ab是否同时成立,如成立,则输出存在这样的三角形;如不成立,则输出不存在这样的三角形 .流程图如图7所示:图7点评:判断三个实数a,b,c能不能分别为一个三角形的三边长,需要对每两条边长之和
10、是否大于第三边进行判断,不能只判断一个式子.当然如果已知最大边也可以只判断一个.例3 根据下面的算法,画出相应的流程图,并说明这个算法的功能.S1输入x;S2如果x1,那么y=x2+1,否则y=2x1;S3输出y. 分析:根据算法,对每一个输入的x的值,如果x1,那么就代入y=x2+1计算y的值,否则就代入y=2x1计算.可以看出这是一个分段函数求函数值的问题,流程图中需要用到选择结构,对x1是否成立作出判断,然后根据判断的结果选择流向.解:流程图如图8所示:图8这个算法的功能是求分段函数的函数值.点评:所给算法中第二步S2是一个选择判断的步骤,因此在流程图中要用选择结构来表示.当条件“x1”
11、的判断结果为“”时,执行yx2+1,否则就执行y2x1.例4 已知符号函数y=sgn(x)= ,试写出该函数的算法及流程图.分析:符号函数y=sgn(x)实际上是一个分段函数,对应不同的输入的x的值,取不同的输出结果,所以应该利用选择结构来画出流程图.解:算法如下:S1输入x;S2如果x0,那么y1;如果x=0,那么y0;如果x0,那么y1; S3如果x=0,那么y0,否则y1;S4输出y.思路2例1 输入三个实数a,b,c,写出求这三个数中最大数的流程图.分析:本题思路方法为:先把a和b,c进行比较,若ab且ac,那么a最大,输出a,否则再比较b和c,若bc,则b最大,输出b,否则c最大,输
12、出c,整个过程中用到了多次选择结构.解:流程图如图10所示:图10点评:本题需要进行两次判断,因此会出现两个选择结构,则两个选择结构可以通过嵌套来实现.例2 对于一元二次不等式ax2+bx+c0,(a0,=b24ac0),给出求这个不等式的解集的算法,并画出流程图.分析:解一元二次不等式时,先要判断二次项系数a的正负,它决定了不等式的解集的形式,在确定了二次项系数的正负后还要对=b24ac的正负进行判断,最后才能得到一元二次不等式的解集.解:算法如下:S1输入a,b,c;S2计算=b24ac;S3如果a0,那么执行S4,否则执行S6;S4如果0,则计算x1=,x2=;否则输出“不等式的解集为R
13、”,程序结束;S5输出“不等式的解集为(,x1)(x2,+)”,程序结束;S6如果0,则计算x1=,x2=;否则输出“不等式的解集为”,程序结束;S7输出“不等式的解集为(x1,x2)”,程序结束.流程图如图11所示:图11点评:本题的流程图看似复杂,但是只要理解了一元二次不等式的求解程序,就不难画出流程图.不过本题毕竟要有多次选择结构的嵌套使用,因而有一定难度,老师们可以根据实际情况选用.当然,如果单纯为了降低难度,也可以加强题目的条件,譬如增加条件0或者a0,这样可以大大减少选择框的个数.知能训练一、课本本节练习1、3.解答:1.流程图如图12所示:图122.算法如下:S1输入a,b;S2
14、如果a0,那么x,并输出x;否则,如果b0,那么输出“无解”;否则,输出“解为全体实数”.流程图如图13所示: 图13二、补充练习1.写出求函数y=ax+1(a为常数且a0),x2,2的值域的一个算法,并画出流程图.2.某商场搞促销活动,购物标价不超过100元时,按九折付款,超过100元,则超过部分按七折付款.写出商场收费的算法,并画出流程图.解答:1.算法如下:S1输入a;S2计算m2a+1,n2a+1;S3如果a0,则输出“值域为m,n”,否则,输出“值域为n,m”.流程图如图14所示:图142.算法如下:S1输入总价x;S2如果x100,则计算y0.9x,否则,计算y0.7x+20;S3
15、输出y.流程图如图15所示:图15点评:选择结构要比顺序结构复杂,因此可以先写出算法,然后再画出流程图.课堂小结1.在用选择结构解决问题的过程中,需要按给定的条件进行判断,并按判断的不同情况进行不同的操作.2.若需要按多个条件进行判断,可以用两个或两个以上选择结构嵌套来实现.如解不等式axb,需要分a=0,a0,a0是否成立,不能直接判断出来分三条途径.也就是说选择结构只有两个出口,是一进二出的形式.作业1.儿童乘坐火车时,若身高不超过1.1 m,则无需购票;若身高超过1.1 m但不超过1.4 m,则购买半票;若身高超过1.4 m,则购买全票.试设计一个购票的算法,并画出流程图.2.设计算法流
16、程图,判断直线ax+by+c=0(ab0)与圆(xx0)2+(yy0)2=r2(r0)的位置关系,要求输入参数a,b,c和x0,y0,r,输出相关信息.解答:1.算法如下:S1输入身高h;S2如果h1.1,那么输出“免票”;否则,如果1.1h1.4,那么输出“半票”;否则,输出“全票”.流程图如图16所示:图162.流程图如图17所示:图17设计感想选择结构是算法流程图中又一种常用的结构,它比顺序结构要复杂.如果在解决一个问题的过程中,需要对某个条件先进行判断,然后根据条件是否成立才能决定下一步该如何处理,那么就需要用到选择结构.如果涉及分类讨论,那么在画流程图的时候就会出现选择结构.如果只需要分两类,那么就会出现一个选择结构,分三类就会有两个选择结构嵌套出现,而不能直接判断出来分三条途径.在教学过程中,不要一开始就给出结构嵌套的问题,要先从简单的问题入手,逐步增加难度,在学生对只有一个选择结构的问题掌握以后才提出嵌套的问题.同时,要多让学生自己动手实践,允许学生出现错误,在纠正错误的过程中才会有提高.(设计者:顾文艳)高考资源网版权所有,侵权必究!