1、“条件语句”要点精析所谓条件语句就是处理条件结构的算法语句,在程序设计中,它起到推断和选择的作用.学习时,要认真体会条件语句的表示方法、结构和作用,能够用条件语句表示算法,不妨用它编一些简洁程序,解决你学过的一些需要条件推断的数学问题.这样,你才会快速入门.1. 条件语句的基本格式IFTHENELSE IFTHENIF 条件 THEN语句END IFIF 条件 THEN语句1ELSE语句2END IF 或 (图2)(图1)说明:(1)在图1中,“条件”表示推断的条件,“语句1”表示满足条件时执行的操作内容;“语句2”表示不满足条件时执行的操作内容;END IF表示条件语句的结束。计算机在执行时
2、,首先对IF后的条件进行推断,假如条件符合,则执行THEN后面的语句1;若条件不符合,则执行ELSE后面的语句2。(2)在图2中,“语句”表示满足条件时执行的操作内容,条件不满足时,结束程序;计算机在执行时首先对IF后的条件进行推断,假如条件符合就执行THEN后边的语句,若条件不符合则直接结束该条件语句,转而执行其它语句。2. 表达式2.1关系表达式在人教版第18页例5的程序中,第5行是一个条件语句,其中的条件“d=0”表达式,一般称为关系表达式,关系表达式是用关系运算符连接起来的式子,关系运算符常见有“大于 ”、“小于等于=”、“不等于”等.当关系表达式成立时其值为真(TRUE),当关系表达
3、式不成立时其值为假(FALSE). 关系表达式的值既不是数值型量,也不是字符型量,而是一种新的数据类型规律型(Boolean).2.2规律表达式 在实际问题中,对于一些简单的条件,还需要用几个关系表达式组合起来才能表示.比如,2x5就需要用2x和x6)结果为TRUE,NOT(76)的结果为FALSE.(2)(12)AND(23)的结果为TRUE,(38)AND(59)的结果为FALSE.(3)(-15)OR(82)的结果为TRUE,(60)OR(2=B THEN PRINT A,BELSE T=A A=B B=TPRINT A,BEND IFEND 程序中ELSE后面跟了一个由四个语句组成的语
4、句组,其中前三句是实现了变量A与B值的变换.另外,条件语句中的条件都应当是具备规律值:真或假的表达式 ,BASIC中的关系表达式和规律表达式都具有规律值.3.2条件语句可以嵌套.即条件语句中的THEN或ELSE后还可以跟条件语句.在多重嵌套时,应特殊留意避开规律上的混乱,这里给出两种方法:一是将嵌套的内层条件语句放在外层条件语句中ELSE的后面;二是接受多个并列的条件语句来完成,举两例说明. 例2.已知函数 编写一个程序,对每输入一个x值,都得到相应的函数值.分析:这是一个分段函数,计算函数值必需先推断x的范围,因而设计求函数值的算法必需用到条件结构,相应程序的书写也应用条件语句书写。解:用变
5、量x,y分别表示自变量和函数值。程序:可分别用IFTHENELSE语句和IFTHEN语句表示程序。INPUT“x”;xIF x0 THENyx2+1END IFIF x=0 THENy2x+7END IFIF x0 THENy3*x25END IFPRINT“y”;yEND IFENDINPUT“x”;xIF x0 THENyx2+1ELSE IF x=0 THEN y=2x+7ELSEy3*x25END IFEND IFPRINT “y”;yEND说明:在左图中第四行ELSE后面的语句:IF x=0 THEN y=2x+7ELSEy3*x25END IF成为内层的条件语句,它整个地镶嵌在外层
6、条件语句中.右图程序则接受多个并列的条件语句来完成.例3.1857年德国统计学家思特恩格尔阐明白一个定律:随着家庭和个人收入增加,投入中用于食品方面的支出比例将渐渐削减.反映这肯定律的系数称为恩格尔系数,计算公式为n = 人均食品支出总额 100 人均个人消费支出总额支出总额国际上常用恩格尔系数来衡量一个国家和地区居民生活水平的状况,依据联合国粮农组织提出的标准:恩格尔系数n在59以上为贫困,50n59为温饱,40n50为小康,30n40为富有,低于30为最富有.依据某地区居民家庭抽样调查的有关资料,已知该区居民人均食品支出总额x和人均个人消费支出总额y,请编写一个程序,求恩格尔系数n,并依据
7、联合国粮农组织提出的标准,推断该地区居民生活水平的状况.算法分析:依据上面的分析,我们将解决问题的算法描述如下: 输入人均食品支出总额x和人均个人消费支出总额y; 求,并输出n的值; 假如n59,则输出“贫困水平!” 假如50n59,则输出“温饱水平!”; 假如40n50,则输出“小康水平!”; 假如30n40,则输出“富有水平!”; 假如n30, 则输出“最富有水平!” 结束.参考程序:INPUT“x,y=”;x,yn=x/yPRINT“恩格尔系数n=”;nIF n0.59 THEN PRINT“贫困水平!”END IFIF (0.5n)AND(n0.59 ) THENPRINT“温饱水平!”END IFIF (0.4n)AND(n0.5 ) THENPRINT“小康水平!”END IFIF (0.3n)AND(n0.4 ) THENPRINT“富有水平!”END IFIF n0.3 THEN PRINT“最富有水平!”END IFEND