第一章算法初步1.2.2条件语句第一章算法初步考点学习目标核心素养条件语句的意义了解条件语句的意义数学抽象条件语句的格式掌握条件语句的格式逻辑推理条件语句编写程序能用条件语句编写简单的程序数学抽象、数学建模问题导学(1)条件语句的格式是怎样的?(2)程序中的条件语句与程序框图中的条件结构有什么关系?1.条件语句的格式、功能及其与条件结构的对应关系格式一格式二条件结构格式一格式二条件语句IF条件THEN________ENDIFIF条件THEN________ELSE________ENDIF语句体语句体1语句体2格式一格式二语句功能首先对IF后的条件进行判断,如果(IF)条件符合,那么(THEN)执行________,否则执行___________之后的语句首先对IF后的条件进行判断,如果(IF)条件符合,那么(THEN)执行________,否则(ELSE)执行________语句体ENDIF语句体1语句体2■名师点拨两种条件语句的区别与联系类型区别联系IF—THEN—ENDIF语句只含有一个语句体(1)两种条件语句中首先都要对条件进行判断,然后才执行相应的语句体;执行完语句体后,程序都交汇于一点,完成条件语句(2)都以IF开始,以ENDIF结束IF—THEN—ELSE—ENDIF语句含有两个语句体,满足条件时执行一个语句体,不满足条件时执行另一个语句体2.条件语句的叠加与嵌套(1)叠加如果条件结构中的多个条件是并列的,则对应的是条件语句的叠加.其语句格式如下,相应的程序框图如图所示.(2)嵌套条件语句的嵌套是条件结构嵌套的实现和表达,其一般格式如下:对应的程序框图如图所示.下列说法中正确的是()A.ELSE后面的语句不可以是条件语句B.两个条件语句可以共用一个ENDIFC.条件语句的叠加中,每个条件语句都是一个独立的整体D.条件语句的嵌套中,对所有条件都要进行判断解析:选C.ELSE后面是一个语句体,当然可以是条件语句,所以A错.一个IF和一个ENDIF对应,不能共用,因此B错.程序在执行条件语句嵌套的过程中可能不对所有的条件都进行判断,只是对一部分条件进行判断,沿着一个分支执行下去,直到结束,故D错.下面的程序要解决的问题是________.INPUTxIFx0THENx=-xENDIFPRINTxEND答案:输出x的绝对值当a=15时,运行下面的程序输出的结果是________.INPUTaIFa<10THENy=2*aELSEy=a*aENDIFPRINTyEND解析:因为15>10,所以y=15×15=225.答案:225(1)根据下面的程序,填写程序框图.①________,②________,③________.INPUTxIFx>=52THENy=2*x-5ELSEy=5-2*xENDIFPRINTyEND条件语句与条件结构(2)根据下面的程序框图,写出程序.【解】(1)根据条件语句可知该语句为求分段函数y=2x-5,x≥525-2x,x<52的函数值,所以三个空中分别填的内容为:①x≥52?,②y=2x-5,③y=5-2x.故填x≥52?y=2x-5y=5-2x(2)程序如下:INPUT“a,b=”;a,bIFa<bTHENx=aa=bb=xENDIFPRINTa,bEND根据条件结构写条件语句时的三个关注点(1)选择语句格式.当判断语句的两个出口语句都要执行时,采用“IF—THEN—ELSE—ENDIF”语句,当判断语句的两个出口语句只有一个要执行时,采用“IF—THEN—ENDIF”语句.(2)确定条件和语句体.条件即为判断框内的条件,放在IF后.判断框中“是”后的执行框中的内容,是THEN后的语句体1,“否”后的执行框中(如果有的话)的内容,是ELSE后的语句体2.(3)注意所用程序的书写格式.根据下面的程序框图写出程序语句.解:程序框图所实现的算法功能是:求任意一个实数a的立方的绝对值.程序如下:INPUTaIFa>=0THENy=a∧3ELSEy=-a∧3ENDIFPRINTyEND(1)已知下列程序,当输入t=5时,输出的结果是________.INPUTtIFt<=3THENc=0.2ELSEc=0.2+0.1*(t-3)ENDIFPRINTcEND条件语句的应用(2)已知函数y=x2-1,x≥0,2x2-5,x0,编写一个程序,输入x的值,得到相应函数值,并画出程序框图.【解】(1)由程序可知,程序的功能为输入t的值,求出c=0.2,t≤3,0.2+0.1×(t-3),t>3的值,所以输入t=5后,求得c=0.4.故填0.4.(2)程序框图如图所示:程序如下:INPUTxIFx=0THENy=x*x-1ELSEy=2*x*x-5ENDIFPRINTyEND1.如果本例(1)中输入t=-5,则输出的结果是什么?解:当输入t=-5时,由于-5≤3成立,由题意可知输出c=0.2.2.若本例(1)中输出的c=0.5,那么输入的t是何值?解:当t≤3时,c=0.2,故t>3,即0.2+0.1×(t-3)=0.5,解之得t=6,故应输入的t为6.选用条件语句两种格式的依据当题目中涉及分段函数求值、求解一组数据的最大(最小)值等需要进行条件判断的问题时,需要应用条件语句,这点与条件结构应用的环境相同.对于具体的问题,如果只需对满足条件的情况作出处理,不需要处理不满足条件时的情况,选用IF—THEN—ENDIF型语句;如果既需要解决满足条件时的情况,又要解决不满足条件时的情况,选用IF—THEN—ELSE—ENDIF型语句.1.阅读下面的程序,若分别输入0,1,4,8,9,10,则输出的结果是()INPUT“x=”;xIFxMOD4=0THENPRINTxENDIFENDA.0,8B.4,8C.0,4,8D.0,1,4,8,9,10解析:选C.算法的功能是输入一个数,判断其是否能被4整除,若能,则输出该数.在输入的数中,能被4整除的有0,4,8.2.任给一个实数,编写程序求它的算术平方根,并画出程序框图.解:程序如下:INPUT“请输入任意一个实数”;xIFx=0THENy=SQR(x)PRINT“算术平方根为”;yELSEPRINT“没有算术平方根”ENDIFEND程序框图如图所示.已知符号函数sgn(x),其定义为y=1(x0)0(x=0),-1(x0),试画出程序框图表示根据输入的x的值,输出对应的y的值,并编写相应的程序.条件语句的叠加与嵌套【解】法一:(条件嵌套)程序框图如图所示.程序如下:INPUTxIFx0THENy=1ELSEIFx=0THENy=0ELSEy=-1ENDIFENDIFPRINTyEND法二:(条件叠加)程序框图如图所示.程序如下.INPUTxIFx0THENy=1ENDIFIFx=0THENy=0ENDIFIFx0THENy=-1ENDIFPRINTyEND需要进行多次分类讨论或比较的问题,会应用到条件语句的嵌套或叠加.对于此类程序设计问题,首先要将自然语言转化为程序框图,然后将程序框图转化为算法语句.由于条件语句的嵌套比较复杂,因此在转化的过程中需要注意每次分类的条件以及每个条件结束时的标志.1.已知下列程序:INPUTxIFx=-1THENy=-x-1ELSEIFx1THENy=-x∧2+1ELSEy=x-1ENDIFENDIFPRINT“y=”;yEND如果输出的是y=0.75,则输入的x是________.解析:由程序可知本题为根据输入的x,求函数y=-x-1,x≤-1,x-1,-1x≤1,-x2+1,x1的函数值.我们可以分段令y=0.75,并验证,可求得x=-1.75.答案:-1.752.设计一个程序,输入学生的成绩S,根据该成绩的不同值进行以下输出:若S60,则输出“不及格”;若60≤S≤90,则输出“及格”;若S90,则输出“优秀”.解:程序如下:INPUT“S=”;SIFS60THENPRINT“不及格”ENDIFIFS=60ANDS=90THENPRINT“及格”ENDIFIFS90THENPRINT“优秀”ENDIFEND1.下列问题需要用条件语句来描述其算法的是()A.输入x,输出它的相反数B.输入x,输出它的绝对值C.求边长为1的正三角形的面积D.求棱长为1的正四面体的体积答案:B2.若运行下面的程序后输出3,则输入的x值一定是()INPUTxIFx0THENy=xELSEy=-xENDIFPRINTyENDA.3B.-3C.3或-3D.0解析:选C.该程序的功能是求函数y=|x|的函数值,因为y=3,所以x=±3.3.某程序如下:INPUTxIFx=1THENy=x+1ELSEy=3-2*xENDIFPRINTyEND当执行此程序时,没有执行语句y=x+1,则输入的x值的范围为()A.[1,+∞)B.(1,+∞)C.(-∞,1]D.(-∞,1)解析:选D.没有执行语句y=x+1,即输入的x值不满足条件x≥1,故x1.4.(2019·江西省临川第一中学期末考试)执行如图语句,若输入的x=1,则输出的y的值为________.INPUTxIFx0THENy=x+3ELSEy=x-3ENDIFPRINTy解析:根据条件语句,可得x=1,不满足条件x<0,执行y=x-3=-2,即输出-2.答案:-2