用心爱心专心-1-第8课时5.3基本算法语句【重点难点】重点:1.正确理解条件语句的步骤、结构及功能,并掌握其结构;2.能正确地使用条件语句表示选择结构.难点:使用条件语句表示选择结构.【学习导航】【知识网络】【学习要求】1.正确理解条件语句的步骤、结构及功能,并掌握其结构.2.使用条件语句表示选择结构.3.能利用条件语句进行简单的应用.【课堂互动】自学评价1.问题某居民区的物管部门每月按以下方法收取卫生费:3人和3人以下的住户,每间户收取5元;超过3人的住户,每间超出1人加收1.2元。【分析】为了计算卫生费,应先判断住户人数是否超过3人,然后再选用相应的方法进行计算。其算法为:S1输入住户人数n;S2如果n≤3,那么5c,否则2.1)3(5nc;S3输出c。上述算法用流程图表示如下:该问题算法的自然语言描述中,将汉字部分用英语表示为:Readn单分支的If语句条件语句双分支的If语句开始输入nn≤3Y结束2.1)3(5ncN5c输出c用心爱心专心-2-Ifn≤3Then5cElse2.1)3(5ncEndIfPrintc请留意上面代码中黑体的部分,在程序语言中我们可以通过条件语句(conditionalstatement)来表现流程图中的选择结构。条件语句的一般形式是其中A表示判断的条件,B表示条件满足时执行的操作内容,C表示条件不满足时执行的操作内容,EndIf表示条件语句的结束。注意:Else要单独书写一行,If和EndIf一定要配对。为了便于阅读和清晰,通常将B和C的内容代码缩进书写。如果只要满足条件A就执行B,而不考虑其他任何情况,这时条件语句的一般形式可写成或前者适用于A是多条语句的情况。上述问题中,有可能被执行的操作内容最多只有两种可能性,在实际问题中会遇到被执行的操作内容有可能不止两种情况,此时我们就要用If语句的嵌套,请看下面的问题:2.问题:儿童乘坐火车时,若身高不超过1.1m,则无需购票;若身高超过1.1m但不超过1.4m,可买半票;若超过1.4m,应买全票,试设计一个购票的算法,画出流程图并写出伪代码。【解】上述购票的算法步骤为:S1测量儿童的身高h。S2如果h≤1.1,那么免费乘车;否则,如果h≤1.4,那么购买半票;否则,购买全票。将上述算法中用黑体表示的文字用含If关键词表示的伪代码为(注意斜体的文字表示):ReadhIfh≤1.1ThenPrint免费乘车ElseIfh≤1.4ThenPrint半票乘车ElsePrint全票乘车IfAThenBEndIfIfAThenBIfAThenBElseCEndIf用心爱心专心-3-EndIf流程图:上述If语句的嵌套可用一般形式表示为:【说明】A1,A2,A3表示各类判断的条件,而B1,B2,B3,…,Bn表示在各自条件满足的情况下所执行的操作内容.【经典范例】例1已知函数010001xxxy试写出计算y值的一个算法。【解】用伪代码表示为:ReadxIfx0Theny←1ElseIfx=0Theny←0Elseh≤1.4开始输入hh≤1.1半票乘车全票乘车免费乘车结束YYNNIfA1ThenB1ElseIfA2ThenB2ElseIfA3ThenB3ElseBnEndIf…用心爱心专心-4-y←-1EndIfPrinty流程图:例2已知函数10113101121xxxxxxy,设计一个输入x的值,计算y的值的算法.【解】算法如下:ReadxIfx1theny←xElseIfx10theny←2x-1Elsey←3x-11EndIfPrinty追踪训练1.阅读下列程序:ReadxIf0xtheny←xElsey←-xEndIfPrinty请用一个函数表示y与x的关系__xy__.开始输入xYx0y←-1y←0y←1结束YNNx=0输出y用心爱心专心-5-2.阅读下列程序:ReadxIfx<0Theny←32xElseIfx>0Theny←52xElsey←0EndIfPrinty如果输入x=-2,则输出结果y为(B)A.3+B.3-C.-5D.--53.用条件语句表示:输入两个数,输出较大的数。【解】Reada,bIfa≥bThenPrintaElsePrintbEndIf4.已知函数00xxxxy,试写出计算y值的一个算法。【解】伪代码一:Ifx0Thenx←-xy←xprinty伪代码二:Ifx≥0Theny←xElsey←-xEndIf5.到银行办理个人异地汇款(不超过100万)时,银行要收取一定的手续费,汇款不超过100元,收取1元手续费;超过100元但不超过5000元,汇款额的1%收取;超过5000元,一律收取50元手续费。试用条件语句描述汇款额为x(元)时,银行收取的手续费y(元)的算法过程,并画出流程图。【解】Readx(x≤1000000)Ifx≤100Theny←1ElseIfx≤5000Then用心爱心专心-6-y←0.01xElsey←50EndIfPrinty流程图略.用心爱心专心-7-第8课时基本算法语句(2)分层训练1.下列循环格式正确的是()A.For循环变量From初值:步长EndForB.For循环变量From初值To终值步长循环体EndForC.While循环体初值终值EndWhileD.While表达式End2.循环语句中的步长()A.可以省略B.不能省略C.只有步长为1时才可省略D.以上全错3.执行算法程序:S←0ForIFrom1To10000Step2S←S+IEndFor中,前10次循环后S的值是4.下列伪代码所描述的算法是计算公式的:s←0t←1ForiFrom1to10t←t×is←s+tEndForA.10321sB.10321sC.!10!3!2!1sD.10943321s5.写出求所有立方小于1000的正整数的算法,并画出流程图,写出伪代码。6.写出一个计算100131211的算法,并画出流程图,写出伪代码。用心爱心专心-8-思考运用7.用循环语句描述求10019914131211的一个算法。8.青年歌手大奖赛有10名选项手参加,并请了12名评委,为了减少极端分数的影响,通常去掉一个最高分和一个最低分后再求平均分,请用算法语句表示:输入12名评委所打的分数ia(i=1,2,…,12),用函数),,,(122aaaMaxi和),,,(122aaaMini分别求出ia(i=1,2,…,12)中的最大值和最小值,最后输出该歌手的成绩。9.写出求nn2)12(654321的值的算法代码。