2017-2018学年高中数学北师大版必修3课件:第二章 算法初步 2.3.1条件语句 (34张)
- 格式:ppt
- 大小:1.36 MB
- 文档页数:34


2.3.1 条件语句1.熟练掌握条件语句的格式,明确条件语句的功能.(重点)2.能够将具体问题的算法框图转化为算法语句.3.会利用条件语句解决实际生活中的相关问题.(难点)[基础·初探]教材整理条件语句阅读教材P105~P107“练习”以上部分,完成下列问题.1.条件语句的定义在算法中,选择结构是一种基本结构,条件语句是表达选择结构最常用的语句.条件语句的格式有两种:If-Then语句和If-Then-Else语句.2.条件语句结构及形式形如下面的框图描述的算法都可以用If语句进行表示.图231其一般形式是:If 条件 Then语句1Else语句2End If3.复合If语句形如下面的框图描述的算法都可以用复合If语句来表达.图232复合If 语句的一般形式是: If 条件1 Then 语句1 ElseIf 条件2 Then 语句2 Else 语句3 End If End If判断(正确的打“√”,错误的打“×”)(1)条件语句是首先判定If 后的条件,若不满足条件,则跳出If 语句.( ) (2)If 语句中的条件只能是一个不等关系.( )(3)在算法语句中若有条件语句,End If 只能用一次.( )【解析】 (1)×.由If 语句的格式知,当不满足条件时执行Else 后的语句,而不是跳出If 语句.(2)×.If 语句中条件可以是两个不等关系,当然也可以是等式.(3)×.If 语句中If 与End If 是对应的,有一个If 开头,就有一个End If 结束. 【答案】 (1)× (2)× (3)×[小组合作型]已知函数y =⎩⎪⎨⎪⎧x 2-1,x ≥0,2x -5,x <0,对任意的x ,求函数值,请画出算法框图并写出程序语句.【导学号:63580027】【精彩点拨】 解答本题需对x 是非负还是负进行判断,用选择结构来处理. 【自主解答】 算法框图为程序语句为 输入x ;If x >=0 Theny =x 2-1Else y =2*x -5 End If 输出y.If 语句的适用范围及注意事项:算法中需要判断情况、分类执行时,如判断一个数的正负、比较两个数的大小、求分段函数的函数值等,都需要用条件语句进行描述.若程序只对条件满足时作处理,不用处理条件不满足时的情况,则可以省略Else分支.条件语句是一个整体,If ,Then ,Else ,End If 都是语句的一部分,且“If”和“End If”必须成对出现.[再练一题]1.已知函数f (x )=⎩⎪⎨⎪⎧x 2-1,x ≥0,3x 2-8,x <0.编写一个程序,对每输入的一个x 值,都得到相应的函数值.【解】 用变量x ,y 分别表示自变量和函数值.步骤如下: 1.输入x 值.2.判断x 的范围,若x ≥0,则用函数y =x 2-1求函数值;否则用y =3x 2-8求函数值. 3.输出y 的值. 算法框图如图所示,程序如下: 输入x ; If x >=0 Theny =x 2-1Elsey =3*x 2-8End If 输出y .100元以上的,按九五折优惠;200元以上的,接九折优惠;300元以上的,接八五折优惠.显然,采用哪种优惠是与消费额有关的.(1)试建立消费额x 与实际支付费用y 之间的函数关系; (2)对上述关系用什么语句来表达? (3)如何表达?【精彩点拨】 (1)结合实际意义写出y 与x 的函数关系; (2)显然用条件语句来表达; (3)利用条件语句写出该程序.【自主解答】 (1)y =⎩⎪⎨⎪⎧x , x ≤100,0.95x , 100<x ≤200,0.9x , 200<x ≤300,0.85x , x >300.(2)条件语句,因为不同的变量取值,导致不同的函数关系与之对应. (3)输入x ;If x <=100 Theny =xElseIf 100<x <=200 Theny =0.95* xElseIf 200<x <=300 Theny =0.9* xElse y =0.85* xEnd IfEnd If End If 输出y .编写程序解决实际问题时,通常先建立数学模型,再根据所得数学模型确定算法分析和算法框图,最后再将算法框图转化为程序语句.需要分类讨论的问题,通常用条件语句来解决.[再练一题]2.某市通信部门规定:拨打市内电话时,如果通话时间不超过 3 min ,则收取通话费0.2元;如果通话时间超过3 min ,则超过部分以0.1元/min 收取通话费(t 以分钟计,不足1 min 按1 min 计).问:如何设计一个计算通话费用的算法?请画出框图并用语句描述该算法.【解】 令c (单位:元)表示通话费用,t (单位:min)表示通话时间,则有c =⎩⎪⎨⎪⎧<t 0.2+t -t >依上面分析知,解决这一问题的算法步骤如下: 1.输入通话时间t ;2.如果0<t ≤3,那么c =0.2,否则c =0.2+0.1*(t -3) 3.输出费用c . 框图如图所示:用语句描述为:输入t;If t<=3 And t>0 Thenc=0.2Elsec=0.2+0.1*( t-3)End If输出c.[探究共研型]探究1【提示】条件语句必须有If、Then,End If,根据需要,Else及其后的语句可以省略.探究2 一个完整的条件语句中,可以有多个End If吗?【提示】不可以.因为一个完整的条件语句总是以If开始,以End If结束,故不能有多个End If.探究3 复合If语句中有两个If语句,是否可以推广到3个,4个或更多?【提示】可以,但要注意书写格式.探究4 应用条件语句应注意什么问题?【提示】条件语句必须以If语句开始,以End If语句结束,有几个If语句,就必须有几个End If语句对应.给出一个算法:1.输入x;2.若x<0,则y=x+1;否则执行第3步;3.若x=0,则y=0;否则y=x;4.输出y.(1)指出该算法的功能;(2)将该算法用框图表示出来; (3)用基本语句写出该算法.【精彩点拨】 解决此问题可先由条件入手分析,再依次画出框图,并用基本语句描述.【自主解答】 该算法的功能是利用给出的x 的值,求函数y =⎩⎪⎨⎪⎧x +x ,x =,x x的值.(2)框图如图所示:(3)用基本语句描述为: 输入x ;If x <0 Then y =x +1 ElseIf x =0 Then y =0 Else y =x End If End If 输出y .1.使用复合If 语句的注意事项: (1)使用范围:判断条件多于一个时;(2)分清层次:编写条件时,要注意If 和End If 的配对使用及书写的格式. 2.利用复合If 语句解决问题的步骤:(1)构思出解决问题的一个算法(可用自然语言); (2)画出程序框图,形象直观地描述算法;(3)根据框图写算法语句,即逐步把框图中的算法步骤用算法语句表达出来.[再练一题]3.要求输入x 值,输出相应的函数值,并用相应的算法语句描述.已知函数y =⎩⎪⎨⎪⎧x 2+1,x >0,7,x =0,3x 2-5,x <0,试设计算法框图,【解】 根据题意写出算法步骤: 1.输入x ;2.若x >0,则y =x 2+1; 3.若x =0,则y =7; 4.若x <0,则y =3x 2-5; 5.输出y . 框图如下:用算法语句描述如下: 输入x ;If x >0 Then y =x 2+1 ElseIf x =0 Then y =7 Elsey =3* x 2-5 End IfEnd If 输出y .1.以下关于条件语句的说法,正确的是( ) A .条件语句的执行是按照程序中的先后顺序执行的 B .条件语句实现了算法框图中的选择结构C .条件语句不能嵌套,即条件语句中不能再使用条件语句D .条件语句一定要完整,即If -Then -Else -End If 中每一部分都不能少【解析】 条件语句的执行是有选择性的,故A 错.条件语句中可以有嵌套,故C 错.在条件语句中根据需要,Else 后的内容可以省略.【答案】 B2.当输入x =-3.2时,下面的程序输出的结果为( ) 输入x ;If x <0 Then x =-x End If 输出x . A .-3.2 B .3.2 C .3D .-3【解析】 由程序知y =⎩⎪⎨⎪⎧x ,x ≥0,-x ,x <0,故当输入x =-3.2时y =3.2.【答案】 B3.写出下列程序运算的结果.若x =6,则P【解析】 当x =6时,P =6×0.35=2.1, 当x =20时,P =10×0.35+10×0.7=10.5. 【答案】 2.1 10.5 4.写出下列程序运行的结果. 输入a ;If a >=0 Then 输出a Else输出“是负数” End If输入-4,输出结果为________; 输入9,输出结果为________.【解析】 若输入-4,因为-4<0,所以输出的结果为“是负数”;若输入9,因为9>0,所以输出的结果是9的算术平方根,即3.【答案】 是负数 3 5.已知函数y =⎩⎪⎨⎪⎧x -1,x ≥0,2x 2-5,x <0,设计一个算法,写出程序语句,根据输入的x 的值,输出对应y 的值.【解】 算法步骤为: 1.输入x ;2.如果x ≥0,则y =x -1;否则,y =2x 2-5; 3.输出y . 程序语句: 输入x ;If x >=0 Then y =x -1 Elsey =2* x 2-5 End If 输出y .。