选择结构程序设计课件.ppt

上传人(卖家):晟晟文业 文档编号:4317476 上传时间:2022-11-29 格式:PPT 页数:42 大小:138.50KB
下载 相关 举报
选择结构程序设计课件.ppt_第1页
第1页 / 共42页
选择结构程序设计课件.ppt_第2页
第2页 / 共42页
选择结构程序设计课件.ppt_第3页
第3页 / 共42页
选择结构程序设计课件.ppt_第4页
第4页 / 共42页
选择结构程序设计课件.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、第四章第四章 选择结构程序设计选择结构程序设计关系表达式和逻辑表达式用行IF语句实现选择结构用块IF实现选择多分支选择结构多分支转移语句选择结构程序设计问题的提出问题的提出在实际问题中,要求计算机进行逻辑判断,即给出一个条件,让计算在实际问题中,要求计算机进行逻辑判断,即给出一个条件,让计算机判断是否满足条件,并按照判断的结果来做不同的处理。机判断是否满足条件,并按照判断的结果来做不同的处理。从键盘输入一个数,如果是正数则打印出来,否则不做任何处理;将学生中成绩不合格者打印出来;将职工工资低于300元者打印出来;根判别式b2-4acb小于x=-1小于等于h=I不等于uv关系表达式关系表达式l用

2、一个关系运算符把两个运算量(数值量或字符串)联用一个关系运算符把两个运算量(数值量或字符串)联结起来称关系表达式;结起来称关系表达式;l每个关系表达式都有一个值,这个值称作逻辑值(即每个关系表达式都有一个值,这个值称作逻辑值(即“真真”或或“假假”););l在在QBASIC中,如果表达式不成立,即中,如果表达式不成立,即“假假”,则此表,则此表达式的值为达式的值为“0”,否则为,否则为“-1”;l举例:举例:PRINT 1513,1315运行结果:运行结果:-1 0逻辑运算符逻辑运算符问题的提出:如果需要判断一个数是否满足0 x10,语句 IF 0=x=0 AND x b+d OR cd AN

3、D ABS(c)=a OR NOT c d+5 7 11 OR cd AND 2=a OR NOT c13 假 OR 假 AND 假 OR NOT 假 假 OR 假 OR 真真真IF语句语句语法:ELSE 语句2在IF语句中,实际是判别关系表达式的逻辑值是零还是非零。如果是非零(即条件成立),则执行THEN后的语句,否则执行ELSE后的语句(有ELSE语句!)。IF 53 THEN PRINT“This is true.”ELSE PRINT“This is false”IF 35 THEN PRINT“This is true.”ELSE PRINT“This is false”IF 2 T

4、HEN PRINT“This is true.”ELSE PRINT“This is false”IF 0 THEN PRINT“This is true.”ELSE PRINT“This is false”表达式的逻辑值可以赋值给变量:x=53x=5=3甲、乙、丙、丁四个人中有一个人是小偷,请根据四个人的谈话判断谁是小偷。已知四人中有一个人说假话。甲:我不是小偷。乙:丙是小偷。丙:丁是小偷。丁:丙说谎。分析:可以采用枚举法,依次假设甲、乙、丙、丁是小偷,再根据他们的谈话找到关系式。由于有一个人说谎,所以四个关系式相加值为-3时即可找到小偷。(X1)+(X=3)+(X=4)+(X4)=-3四大

5、湖问题四大湖问题(湖南省湖南省1986年青少年程序设计竞赛试题年青少年程序设计竞赛试题)。上地理课时,四个学生回答我国四大淡水湖的大小时说:上地理课时,四个学生回答我国四大淡水湖的大小时说:甲:洞庭湖最大,洪泽湖最小,鄱阳湖第三。甲:洞庭湖最大,洪泽湖最小,鄱阳湖第三。乙:洪泽湖最大,洞庭湖最小,鄱阳湖第二,太湖第三。乙:洪泽湖最大,洞庭湖最小,鄱阳湖第二,太湖第三。丙:洪泽湖最小,洞庭湖第三。丙:洪泽湖最小,洞庭湖第三。丁:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三。丁:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三。对于每个湖的大小,每人仅答对了一个。对于每个湖的大小,每人仅答对了一个。请

6、判断四个湖的大小。请判断四个湖的大小。问题分析:问题分析:可以设洞庭湖、洪泽湖、鄱阳湖、太湖分别用变量可以设洞庭湖、洪泽湖、鄱阳湖、太湖分别用变量A、B、C、D表示。每个变量的取值是表示。每个变量的取值是14。因为每个只答对了一个,所以,他们的叙述可以表示为:因为每个只答对了一个,所以,他们的叙述可以表示为:甲:甲:(A=1)+(B=4)+(C=3)=-1 乙:乙:(B=1)+(A=4)+(C=2)+(D=3)=-1 丙:丙:(B=4)+(A=3)=-1 丁:丁:(C=1)+(D=4)+(B=2)+(A=3)=-1 只有以上条件都满足时,才能找到正确答案。只有以上条件都满足时,才能找到正确答案

7、。用行用行IF语句实现选择结构语句实现选择结构行IF语句有二种形式:(1)IF 条件条件 THEN 语句语句例如:IF x0 THEN PRINT x(2)IF 条件条件 THEN 语句语句1 ELSE 语句语句2例如:IF x0 THEN PRINT x ELSE PRINT x一般形式:IF 条件条件 THEN 语句语句1 ELSE 语句语句2求解一元二次方程ax2+bx+c=0(参见SAMP4-2.BAS)qipxacbDqpxacbDaDqabpaDbaacbbx2,122,1222,1,04,042,2224则若则若令输入a,b,cd=b2-4acp=-b/2aaDq2d0是否x1=

8、p+qx2=p-qx1=p+q”i”x2=p-q”i”INPUT Please enter the value of a,b,c:,a,b,cd=b*b-4*a*cp=-b/(2*a)q=SQR(ABS(d)/(2*a)IF d=0 THEN x1=p+q:x2=p-q:PRINT x1=;x1,x2=;x2 ELSE PRINT x1=;p;+;q;i,x2=;p;-;q;iEND选择结构的嵌套选择结构的嵌套在一个选择结构中包含另外一个选择结构,就称为选择结构的嵌套y=0(x=0)1(x0)-1(x0是是否否y=1x=0是是否否y=0 y=-1INPUT“Please input x”IF

9、x0 THEN y=1 ELSE IF x=0 THEN y=0 ELSE y=-1PRINT“y=“;y:END 对选择结构的嵌套的理解对选择结构的嵌套的理解选择结构的嵌套实际上是把一个选择结构的嵌套实际上是把一个IF结构的语句作为它外层结构的语句作为它外层IF结结构的构的THEN 或或ELSE 子句中应该执行的语句。子句中应该执行的语句。对比:IF 逻辑表达式 THEN 语句语句1 ELSE 语句语句2IF x0 THEN y=1 ELSE IF x=0 THEN y=0 ELSE y=-1IF x=0 THEN IF x0 THEN y=1 ELSE y=0 ELSE y=-1内层内层I

10、F-ELSE外层外层IF-ELSEIF x=0 THEN IF x0 THEN y=1 ELSE y=-1IF x=0 THEN IF x0 THEN y=1 ELSE y=-1内层内层IF-ELSEIF x=0 THEN IF x0 THEN y=1 ELSE y=-1内层内层IF-ELSE规定:ELSE 与离它最近的IF 配对关于选择结构嵌套的两点说明关于选择结构嵌套的两点说明将内层的THEN子句和ELSE子句写全,即使不需要ELSE子句,也应写上ELSE子句,后面不跟任何语句。内层内层IF-ELSE外层外层IF-ELSEIF x=0 THEN IF x0 THEN y=1 ELSE EL

11、SE y=-1尽量将内嵌的IF 结构放在外层IF 的ELSE子句中,而不放在THEN子句中,由于内层IF出现在外层IF 的ELSE子句中,内层的ELSE只能与其前面的IF配对,而IF是在外层的ELSE 右边,由于有外层IF的ELSE隔开,所以内层的ELSE绝不会越过外层的ELSE与外层的IF 配对。IF x0 THEN y=1 ELSE IF x=0 THEN y=0 ELSE y=-1内层内层IF-ELSE外层外层IF-ELSE利用块利用块IF实现选择结构实现选择结构语法:IF 条件 THEN 语句组语句组1ELSE 语句组语句组2END IFy=0(x=0)1(x0)-1(x0 THEN

12、y=1ELSE IF x=0 THEN y=0 ELSE y=-1 END IFEND IFPRINT“x=”;x,”y=”;yEND块块IF实现选择结构举例实现选择结构举例举例(P108,sam4-6.bas):d=0.05(250m500)0(m250)0.075(500m1000)0.1(1000m2000)0.15(2000m)INPUT Please input your money for buying:,mIF m 250 THEN d=0ELSE IF m 500 THEN d=.05 ELSE IF m 1000 THEN d=.075 ELSE IF m 2000 THEN

13、 d=.1 ELSE d=.15 END IF END IF END IFEND IFamount=m*(1-d)PRINT amount=;amountENDamount=m*(1-d)PRINT amount=;amountENDINPUT Please input your money for buying:,mIF m 2000 THENELSE d=.15END IFIF m 1000 THENELSE d=0.1 END IFIF m 500 THENELSE d=0.75 END IFIF m 250 THEN d=0 ELSE d=.05 END IFELSEIF语句实现选择结

14、构语句实现选择结构语法:IF 条件1 THEN 语句组语句组1ELSEIF 条件2 THEN 语句组语句组2ELSEIF 条件3 THEN 语句组语句组3.ELSEIF 条件4 THEN 语句组语句组nELSE 语句组语句组n+1 END IFINPUT“Please input your money for buying:”,mIF m250 THEN d=0ELSEIF m500 THEN d=0.05ELSEIF m1000 THEN d=0.075ELSEIF m0)-1(x0 y=1 CASE IS=0 y=0 CASE IS 0 y=-1END SELECTPRINT“x=”;x,

15、”y=”;yENDSELECT CASE结构举例结构举例有一笔款欲存银行,三年后取出,可以采取几种方案之一:活期3年;3次一年定期(每年到期后取出,在重新存入);先存一次2年定期,再存一次1年定期;先存一次1年定期,再存一次2年定期;3年定期。假设存款年利率为:活期:1.5%1年期:4%2年期:4.5%3年期:5.1%求本、利和的公式:p=p0*(1+r)n(其中:r为年利率,n为存款年数)(参见(参见samp4-9.bas)REM program for bank savingsr0=.01:r1=.04:r2=.045:r3=.051INPUT Please input your depo

16、sit:,p0INPUT Please input scheme:,cSELECT CASE c CASE 1 p=p0*(1+r0)3 CASE 2 p=p0*(1+r1)3 CASE 3 p=p0*(1+r2)2 p=p*(1+r1)CASE 4 p=p0*(1+r1)p=p*(1+r2)2 CASE 5 p=p0*(1+r3)3END SELECTPRINT p=;pEND关于关于SELECT CASE结构的几点说明结构的几点说明(I)SELECT CASE行后的表达式称“CASE表达式表达式”,又可称“测试表达测试表达式式”,它可以是一个变量或表达式,如a+b,sin(x)CASE后的

17、条件有如下三种形式:v常量;v用“TO”指定一个范围,如3 TO 4,8 TO 23(闭区间闭区间);v用“IS”指定一个条件,其一般形式为:IS ,当“条件”为一个关系条件时,不能包含逻辑运算符,如IS 6(正正确确),IS NOT 6(错误错误,不能包含逻辑运算符)。v表示0=x=0 AND IS 100CASE IS=0,IS=100 (各个条件之间的关系是“逻辑或”的关系,所以-x0PRINT“0”CASE 2 TO 10PRINT“2-10”END SELECT 除了CASE ELSE 子句外,其他CASE子句的顺序对执行结果没有影响,如果把CASE ELSE子句放在最前,则首先执行

18、的是CASE ELSE子句,而认为前面的CASE子句均不符合条件,例如:SELECT CASE INT(m)CASE ELSE d=0.15CASE IS 0)-1(x0)举例:INPUT“Enter x:”,xs=SGN(x)ON s+2 GOTO a,b,ca:y=-1:GOTO db:y=0:GOTO dc:y=1:GOTO dd:PRINT“x=”;x,”y=”;yEND选择结构程序设计举例选择结构程序设计举例例1:输入一个年份(例如1999),要求判断它是否是闰年。分析:判断闰年的条件是:能被4整除但不能被100整除的是闰年,如1992年;能被4整除又能被400整除的是闰年,如200

19、0年;其他为非闰年。(参见:s4-11-1.bas,s4-11-2.bas,s4-11-3.bas,s4-11-4.bas)INPUT Please input year:;yearPRINT year;is;IF(year MOD 4=0 AND year MOD 100 0)OR year MOD 400=0 THEN PRINT a leap year!ELSE PRINT NOT a leap year!ENDs4-11-1.bas用行用行IF语句实现选择语句实现选择 s4-11-2.bas用块用块IF结构实现选择结构实现选择INPUT Please input year:;yearP

20、RINT year;is;IF(year MOD 4=0 AND year MOD 100 0)OR year MOD 400=0 THEN PRINT a leap year!ELSE PRINT NOT a leap year!END IFENDs4-11-3.bas逐个条件判断逐个条件判断INPUT Please input year:;yearIF year MOD 4=0 THEN IF year MOD 100=0 THEN IF year MOD 400=0 THEN leap=1 ELSE leap=0 END IF ELSE leap=1 END IFELSE leap=0E

21、ND IFIF leap=1 THEN PRINT year;is a leap year!ELSE PRINT year;is NOT a leap year!END IFENDs4-11-4.bas在块在块IF结构使用结构使用ELSEIF语句实现选择语句实现选择INPUT Please input year:;yearIF year MOD 4 0 THEN leap=0ELSEIF year MOD 100 0 THEN leap=1ELSEIF year MOD 400=0 THEN leap=1ELSE leap=0END IFIF leap=1 THEN PRINT year;is

22、 a leap year!ELSE PRINT year;is NOT a leap year!END IFEND选择结构程序设计举例选择结构程序设计举例例2 有一城市,规划建设1个中心城和4个卫星城。中心城的边长20公里,卫星城边长为5公里,均为正方形,中心城的地价为每公顷10万,卫星城为5万,其他地区1万。编程序,输入任意一点的位置,确定该点的地价。-10-20-202020-101010中心城的范围:中心城的范围:|x|10 AND|y|10卫星城的范围:卫星城的范围:20|x|25 AND 20|y|25s4-12-1.bas在块在块IF结构使用结构使用ELSEIF语句实现选择语句实现

23、选择INPUT Please input your coordinate:;x,yIF ABS(x)=10 AND ABS(y)=20 AND ABS(x)=20 AND ABS(y)=25)THEN price=5ELSE price=1END IFPRINT Price=;priceENDs4-12-2.bas用用3个行个行IF语句实现选择语句实现选择INPUT Please input your coordinate:;x,yIF ABS(x)=10 AND ABS(y)=20 AND ABS(x)=20 AND ABS(y)=25)THEN price=5IF NOT(ABS(x)=1

24、0 AND ABS(y)=20 AND ABS(x)=20 AND ABS(y)=25)THEN price=1PRINT Price=;priceENDs4-12-3.bas用用2个行个行IF语句实现选择语句实现选择INPUT Please input your coordinate:;x,yprice=1IF ABS(x)=10 AND ABS(y)=20 AND ABS(x)=20 AND ABS(y)=25 THEN price=5PRINT Price=;priceENDs4-12-4.bas通过标志变量实现选择通过标志变量实现选择INPUT Please input your co

25、ordinate:;x,yprice=1IF ABS(x)=10 AND ABS(y)=20 AND ABS(x)=20 AND ABS(y)=25 THEN price=5 flag=2IF flag 1 AND flag 2 THEN price=1PRINT Price=;priceEND找出剩余找出剩余2个数中的最大者,放在个数中的最大者,放在c中中找出找出4个数中的最大者,放在个数中的最大者,放在a中中找出剩余找出剩余3个数中的最大者,放在个数中的最大者,放在b中中ab真真假假a与与b互换互换ac真真假假a与与c互换互换ad真真假假a与与d互换互换bc真真假假b与与c互换互换bd真真假假b与与d互换互换cd真真假假c与与d互换互换INPUT Please input a,b,c,d:;a,b,c,dIF a b THEN SWAP a,bIF a c THEN SWAP a,cIF a d THEN SWAP a,dIF b c THEN SWAP b,cIF b d THEN SWAP b,dIF c d THEN SWAP c,dPRINT a,b,c,dEND程序设计程序设计参见:参见:Samp4-14.bas基本要求基本要求l掌握多分支选择结构和多分支转移语句的使用。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(选择结构程序设计课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|