§3几种基本语句——条件语句例1.设计算法,根据输入x的值,计算y的值..5.2,1;5.2,122xxxxyIf条件Then语句1Else语句2EndIf条件语句1真假语句2If语句的一般形式:例2.在音乐唱片超市里,每张唱片售价25元.顾客如果购买5张以上(含5张)唱片,则按照九折收费;如果顾客购买10张以上(含10张)唱片,则按照八五折收费.请用语句描述完成计费工作的算法,画出算法框图.复合If语句:If条件1Then语句1ElseIf条件2Then语句2Else语句3EndIfEndIf条件1语句2真假语句1条件2真假语句3练习1.P107/1.输入x;Ifx≥0Then52yxElseIfx0Then0yEndIfElse32yxEndIf输出y练习2.P108/2.用a表示人数,n表示年龄,x表示消费额,y表示应付金额.用复合If语句描述该算法:输入a,n,x;Ifn≤60Then.09yaxElseIfn≤70Then.06yaxElseIfn≤80Then.05yaxElse0yEndIfEndIfEndIf输出y例2.在音乐唱片超市里,每张唱片售价25元.顾客如果购买5张以上(含5张)唱片,则按照九折收费;如果顾客购买10张以上(含10张)唱片,则按照八五折收费.请用语句描述完成计费工作的算法,画出算法框图.解假如用变量a表示顾客购买的唱片数量,用变量C表示顾客要缴纳的金额.则这个算法可以表示为:1.输入a;2.对a进行判断:(1)若a5,则C=25a;(2)若5≤a10,则C=22.5a;(3)若a≥10,则C=21.25a;3.输出C.算法框图如右:开始输入aa5是C=25a否a10否C=21.25a是C=22.5a输出C结束算法中的条件结构是由条件语句来表达的,条件语句是处理条件分支逻辑结构的算法语句.条件语句的一般格式满足条件?语句是否只含一个“分支”的条件结构写成条件语句为IF条件THEN语句体ENDIF当计算机执行这种形式的条件语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句体,否则执行ENDIF之后的语句.满足条件?语句1语句2是否含两个“分支”的条件结构写成条件语句为IF条件THEN语句体1ELSE语句体2ENDIF当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句体1,否则执行ELSE后的语句体2.例1;设计一种算法,从3个实数中找出最大数,并用流程图表示然后写出其算法语句。解:设这3个数分别为:a1,a2,a31、设b=a12、比较b,a2的大小,记大数为b3、再比较b与a3,记大数为b4、输出b,b的值即为所求的最大数b≥a3否是b=a3开始输入a1,a2,a3b=a1b≥a2否是b=a2输出b结束算法框图如下:算法语句如下:输入a1,a2,a3b=a1Ifb≥a2Thenb=a2EndifIfb≥a3Thenb=a3Endif输出b例2、某居民区的物业管理部门每月按以下方法收取卫生费:3人和3人以下的住户,每户收取5元;超过3人的住户,每户超出1人加收1.2元.试设计算法,根据输入的人数应收取的卫生费.分析:若用c(单位:元)表示应收取的费用,n表示住户的人数,则3.),3(215305nn.,n,c算法步骤:1.输入n;2.若n≤3,则c=5,3.输出c.算法框图:开始n≤3Yc=5输出cNc=5+1.2(n-3)否则c=5+1.2(n-3);c=5Elsec=5+1.2(n-3)EndIf输入n算法语句:Ifn≤3Then输入n输出c.解假如用变量a表示顾客购买的唱片数量,用变量C表示顾客要缴纳的金额.则这个算法可以表示为:1.输入a;2.对a进行判断:(1)若a5,则C=25a;(2)若5≤a10,则C=22.5a;(3)若a≥10,则C=21.25a.3.输出C.算法框图如右:开始输入aa5是C=25a否a10否C=21.25a是C=22.5a输出C结束下面用复合If语句描述这个算法算法:输入a;Ifa5ThenC=25aElseIfa10ThenC=22.5aElseC=21.25aEndIfEndIf输出C.例3.某地个人所得税税率表(工资、薪金所得适用)如下:级数全月应纳税所得额税率(%)1不超过2000元部分02超过2000至2500元部分53超过2500至4000元部分104超过4000至7000元部分155超过7000元部分20……试写出该问题的算法程序并画出算法的程序框图,使得当输入某人月工资、薪金(≤5000)后,能输出这个人应缴纳的个人所得税.分析用x表示月工资、薪金所得,用y表示应缴纳的个人所得税,(1)当0x≤2000时,y=0;(2)当2000x≤2500时,y=(x-2000)×5%=0.05x-100;(3)当2500x≤4000时,y=500×5%+(x-2500)×10%=0.1x-225;(4)当4000x≤7000时,y=500×5%+1500×10%+(x-4000)×15%=0.15x-425.输入xIfx0andx≤2000Theny=0ElseIfx≤2500Theny=0.05﹡x-100ElseIfx≤4000Theny=0.1﹡x-225ElseIfx≤7000Theny=0.15﹡x-425Else输出,“输入有误”EndIfEndIfEndIfEndIf输出y解算法程序如右:输入n,a,pa≤60是x=0.9pi否a≤70是y=0.6pj否a≤80是z=0.5pk否c=0【解】设年龄为变量a,60岁以下、60~70岁、79~80岁的用餐人数分别为i,j,k人,消费额均为p元,应收金额为c元,全天计费算法为:开始结束输入n,a,p;Ifa≤60Then.09cpiElseIfa≤70Then.06cpjElseIfa≤80Then.05cpkElse0cEndIfEndIfEndIf输出cc=x+y+z输出cc=x+y+za≤60否a≤70否a≤80否c=0【另解】设年龄为变量a,消费额为p元,应收金额为c元,计费算法:开始结束输入a,p;Ifa≤60ThenElseIfa≤70ThenElseIfa≤80ThenElseEndIfEndIfEndIf输出ci=0,j=0,k=0输入a,pI=0.9pi是i=i+1K=0.5pk是k=k+1J=0.6pj是j=j+1输出cc=I+J+Ki=0,j=0,k=0i=i+1I=0.9pij=j+1J=0.6pjk=k+1K=0.5pkc=0c=I+J+K开始输入a,n,xn≤60是y=0.9ax否n≤70是y=0.6ax否n≤80是y=0.5ax否y=0输出y结束算法框图如下:练习3.试用复合If语句表示闰年问题的算法.开始输入y否4整除y输出“y不是闰年”是100整除y否输出“y是闰年”是400整除y是否结束解:输入yIfyMod4=0ThenIfyMod1000Then输出“y是闰年”ElseIfyMod400=0Then输出“y是闰年”Else输出“y不是闰年”EndIfElse输出“y不是闰年”EndIfEndEndIf符合以下条件之一的年份即为闰年1.能被4整除而不能被100整除;2.能被400整除.另解1:输入ya=yMod4b=yMod100c=yMod400Ifc=0Then输出“y是闰年”Else符合以下条件之一的年份即为闰年1.能被4整除而不能被100整除;2.能被400整除.Ifa=0Andb0Then输出“y是闰年”Else输出“y不是闰年”EndIfEndIf另解2:If(yearsMod4=0AndyearsMod1000)OryearsMod400=0ThenPrintyears,“是闰年”ElsePrintyears,“不是闰年”EndIf符合以下条件之一的年份即为闰年1.能被4整除而不能被100整除;2.能被400整除.【想想】请试着用复合If语句描述“闰年问题”的算法。【解法二】算法语句描述:开始输入年份y400整除y100整除y4整除y输出y非闰年输出y是闰年否否否是是是结束输入年分数yIfyMod4=0ThenIfyMod1000Then输出“y是闰年”ElseIfyMod400=0Then输出“y是闰年”Else输出“y不是闰年”EndIfElse输出“y不是闰年”EndIfEndEndIf符合以下条件之一的年份即为闰年1.能被4整除而不能被100整除;2.能被400整除.【想想】请试着用复合If语句描述“闰年问题”的算法。【解法三】算法语句描述:开始输入年份y400整除y100整除y4整除y输出y非闰年输出y是闰年否否否是是是结束输入年分数ya=yMod4b=yMod100c=yMod400Ifc=0Then输出“y是闰年”ElseIfa=0Andb0Then输出“y是闰年”Else输出“y不是闰年”EndIfEndIf符合以下条件之一的年份即为闰年1.能被4整除而不能被100整除;2.能被400整除.【想想】请试着用复合If语句描述“闰年问题”的算法。【解法三】算法语句描述:开始输入年份y400整除y100整除y4整除y输出y非闰年输出y是闰年否否否是是是结束输入年分数ya=yMod4b=yMod100c=yMod400Ifc=0Then输出“y是闰年”ElseIfa=0Andb0Then输出“y是闰年”Else输出“y不是闰年”EndIfEndIf符合以下条件之一的年份即为闰年1.能被4整除而不能被100整除;2.能被400整除.【想想】请试着用复合If语句描述“闰年问题”的算法。【解法四】算法语句描述:开始输入年份y400整除y100整除y4整除y输出y非闰年输出y是闰年否否否是是是结束输入年分数ya=yMod4b=yMod100c=yMod400输出“y是闰年”ElseIf(a=0Andb0)orc=0Then输出“y不是闰年”EndIf四、课堂小结1.条件语句用来实现算法做的选择结构,在一些需要按给定条件进行比较、判断的问题中,如判断一个数的正负,比较两个数的大小,求分段函数的函数值,二分法求方程的根等,常用条件语句设计程序,有时要用到复合If语句来表示;2.条件语句的一般形式:If-Then-Else-EndIf如下图所示:If条件Then语句1Else语句2EndIf条件语句1真假语句23.复合If语句对于形如有图中所示的框图的算法,都可以用复合If语句来表示:If条件2ThenIf条件1Then语句1Else语句2Else语句3EndIfEndIf条件1语句2真假语句1条件2真假语句3【规律总结】若问题中出现几次条件判断,则在框图中会有几个判断框,同样的在程序语句中,也会有几重语句的嵌套;出口“EndIf”不能缺省,否则将会出现无法执行的错误.