算法初步第二章§3几种基本语句3.1条件语句自主预习学习目标目标解读1.通过实例掌握用If语句和复合If语句描述选择结构的算法.2.会应用条件语句编写程序.培养学生的数学应用意识.重点:条件语句的步骤、结构及功能.会应用条件语句编写程序.难点:会应用条件语句编写程序.1.条件语句(1)格式If条件Then语句1Else语句2EndIf知识梳理(2)功能:当计算机执行上述语句时,首先对If后边的条件进行判断,如果满足条件,那么执行,再执行EndIf之后的语句,即结束条件语句;如果不满足条件,那么执行,再执行EndIf之后的语句,即结束条件语句.(3)注意:下列算法框图中的都可转化为(1)中的条件语句格式.语句1语句2选择结构问题探究1:如何表示条件语句中的“条件”?提示:“条件”是由一个关系表达式或逻辑表达式构成,其一般形式为“表达式关系运算符表达式”,常用的运算符有“”(大于)、“”(小于)、“=”(大于或等于)、“=”(小于或等于),“”(不等于).关系表达式的结果可取两个值,以“真”或“假”来表示,“真”表示条件满足,“假”则条件不满足.“语句”是由程序语言中所有语句构成的程序段,即可以是语句组.2.复合If语句(1)格式If条件1Then语句1ElseIf条件2Then语句2Else语句3EndIfEndIf(2)对应的算法框图如图所示问题探究2:在设计条件语句时,怎样正确写出条件的表达式?提示:(1)使用条件语句时要注意,每一个条件语句都以“If”开头,以“EndIf”结束.程序中有几个“If”就有几个“EndIf”与之对应.(2)复合If语句:在选择结构的某一分支中,有时需要对某一条件进行判断,因此需要再用一个选择结构完成这一要求,这样就形成了复合If语句.复合条件语句表示为:If条件1Then语句1ElseIf条件2Then语句2Else语句3EndIf内层条件语句EndIf外层条件语句要点导学条件语句主要用来实现算法中的条件结构,因为人们对计算机运算的要求并不仅限于一些简单的运算,而是经常需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理.如判断一个数的正负,比较两个数的大小,对一组数进行排序等很多问题的解决都需要用到条件语句.要点一简单If语句的应用已知函数f(x)=x2-1,x≥0,2x2-5,x0.试画出一个算法框图,对于输入的每一个x值,都得到相应的函数值,并用语句来描述该算法.【思路启迪】(1)应该用算法的哪种结构表示?(2)用什么语句来描述该算法?应注意什么事项?【解】算法框图为:算法语句为:输入x;Ifx≥0Theny=x2-1Else(1)从形式上讲If…EndIf相当于一对括号,使用时缺一不可.该语句执行时,假如条件成立,就执行语句1;否则就执行语句2.(2)语句中If,Else,EndIf都是固定关键词,不能写错.试设计一个程序,对于输入的任意两个实数a,b,求出其差的绝对值,并画出程序框图.解:程序框图如图所示:用基本语句描述为:输入a,b;Ifa≥bThenc=a-bElsec=b-aEndIf输出c.复合If语句的功能是自顶而下,对条件逐个判断,根据条件的真假,程序走向不同的方向.要注意条件与语句的对应.要点二复合If语句的应用已知函数y=x+12,x≤-1,2x+2,-1x1,1x-1,x≥1,用基本语句描写一个算法,对每一个输入的x的值,求出相应的函数值.【思路启迪】(1)该算法应用怎样的算法语句?(2)该算法的程序框图如何?怎样由程序框图转化为算法语句?【解】算法语句如下:输入x;Ifx≤-1Theny=(x+1)2ElseIfx≥1Theny=1/x-1Elsey=2*x+2EndIf输出y.分段函数中常以自变量的取值范围进行分类,我们要熟悉常用到的判断条件以及该条件的相反条件,例如a≥b,其反面是ab.已知函数y=1,x0,0,x=0,-1,x0.试用If语句来描述算法.要求输入x的值,求y的值.解:根据题意写出算法程序为:输入x;Ifx0Theny=1ElseIfx=0Theny=0Elsey=-1EndIfEndIf输出y.要做好对某一问题用语句来表达,分三步:第一步:算法分析.根据问题,利用数学及相关知识,设计出解决问题的算法.第二步:画出流程图.画出流程图(可在草稿纸上进行),便于写算法语句.要点三条件语句的实际应用第三步:写出算法语句.根据流程图中的算法步骤,逐步把算法用相应的语句表达出来.如图所示,在边长为16的正方形ABCD的边上有一动点P,点P沿边线由B→C→D→A(B为起点,A为终点)运动.若设P运动的路程为x,△APB的面积为y,试写出程序,根据输入的x值,输出相应的y值.【思路启迪】(1)y与x的函数关系式是什么?(2)该算法应采用怎样的算法语句?【解】程序如下:输入“x=”;x;Ifx0andx=16Then解决本题的关键是理解题意,写出y与x的函数关系式,根据关系式可知要用到条件语句.而条件语句一般用在需要对条件进行判断的算法中,在求分段函数的函数值时,就经常用条件语句编写程序.某服装厂生产一种服装,每件服装的成本为40元,出厂单价为60元.该厂为鼓励销售商订购,决定当一次订购量超过100件时,每多订购一件,订购的全部服装的出厂单价就降低0.02元.根据市场调查,销售商一次订购量不会超过500件.设一次订购量为x件,服装的实际出厂单价为P元,写出函数P=f(x)的表达式,并画出算法框图,用基本语句描述该算法.解:当0x≤100时,P=60;当100x≤500时,P=60-0.02(x-100)=62-x50.所以P=f(x)=60,0x≤100,62-x50,100x≤500(x∈N+).算法框图如图所示:算法语句如下:输入x;If0x≤100ThenP=60ElseIfx≤500ThenP=62-x/50Else输出“无意义”EndIfEndIf输出P易错点对条件语句的结构不能正确记忆已知函数f(x)=x2-1,x≥0,2x2-5,x0,编写一个程序,使对输入的每一个x值,都得到相应的函数值.易错盘点【错因分析】结合程序框图,不能准确的联想到相对应的条件语句的结构形式应为:If条件Then语句1Else语句2EndIf【正确解答】用变量x,y分别表示自变量和函数值.步骤如下:1.输入x值.2.判断x的范围.若x≥0,则用解析式y=x2-1求函数值;否则,用y=2x2-5求函数值.3.输出y值.程序框图如图所示:程序:理解并掌握条件语句的结构是解决本题的关键.农历9月9日是我国传统的重阳节,某饭店自助餐厅决定在这一天进行优惠酬宾活动.对于80岁以上的老人,享受免费自助餐;70岁以上的老人享受5折优惠,60岁以上的老人享受6折优惠,其余嘉宾享受9折优惠.请设计算法,完成这一天的计费工作,要求输入用餐者的年龄,输出应付金额,编写程序.解:设用x代表年龄,n为原价输入x;Ifx≥80Elses=0ElseIfx≥70Thens=0.5nElseIfx≥60Thens=0.6nElses=0.9nEndIfEndIfEndIf输出S1.条件语句的含义是如果条件成立,执行语句1,否则,执行语句2.用一句话表达就是:如果条件成立(条件为真),那么程序执行“语句1”中的语句,否则(条件为假)程序执行“语句2”中的语句.学习小结2.条件语句是处理选择结构的算法语句,一般格式是“输入数据→If条件Then→语句1→Else→语句2→EndIf→输出数据→结束.用If语句编写实际问题中的条件语句时,应先分析实际问题,将实际问题转化为数学问题,理清算法步骤,然后再用条件语句编程.3.不论是用If语句,还是用复合If语句来描述算法,都要注意格式.1.执行一个条件语句,可以有几种结果()A.1种B.2种C.3种D.多于3种随堂训练解析:不论执行哪种程序,执行一次只有一个结果.答案:A2.下列关于条件语句的叙述正确的是()A.条件语句中必须有Else和EndIfB.条件语句中可以没有EndIfC.条件语句中可以没有Else,但必须有EndIfD.条件语句中可以没有EndIf,但必须有Else解析:要解决的问题,如果只需要对满足条件时的情况作出处理,不满足条件时的情况,不需要处理,那么就不用Else,故C正确.答案:C3.下列函数求值算法中需要用到条件语句的函数为()A.f(x)=x2-1B.y=x3-1C.f(x)=x2+1,x≤2.5,x2-1,x2.5D.f(x)=2x解析:求分段函数的函数值,需要用到条件语句.答案:C4.写出下面语句运行的结果.输入a;Ifa0Then输出“不存在”Elset=a输出tEndIf当a=-3时,输出结果为__________;当a=9时,输出结果为__________.解析:本算法语句的作用是输入一个数,若该数大于等于0,求该数的算术平方根,当输入的数小于0时,该数的算术平方根不存在.答案:不存在35.将下列算法框图转化为条件语句.解:输入x;Ifx0Then输出xElse输出-xEndIf