选择结构程序设计 .ppt

上传人:石*** 文档编号:87159414 上传时间:2023-04-16 格式:PPT 页数:32 大小:1.76MB
返回 下载 相关 举报
选择结构程序设计 .ppt_第1页
第1页 / 共32页
选择结构程序设计 .ppt_第2页
第2页 / 共32页
点击查看更多>>
资源描述

《选择结构程序设计 .ppt》由会员分享,可在线阅读,更多相关《选择结构程序设计 .ppt(32页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、选择结构程序设计 现在学习的是第1页,共32页2.1关系表达式与关系表达式与逻辑表达式逻辑表达式 算法中经常要根据某种逻辑判断的结果来决算法中经常要根据某种逻辑判断的结果来决定下一个步骤应该做什么。这就是带分支选择的定下一个步骤应该做什么。这就是带分支选择的算法。算法。选择结构选择结构是结构化算法中一种基本结构。是结构化算法中一种基本结构。实实现现选选择择结结构构的的前前提提是是进进行行关关系系运运算算和和逻逻辑辑判判断断。现在学习的是第2页,共32页2.1.1 关系表达式关系表达式算术量算术量A A与与B B之间存在六种关系之间存在六种关系:AB AB AB A=B AB AB AB AB

2、A=B AB A(.GT.)(.GT.)表示表示 =(.GE.)(.GE.)表示表示 /=/=(.NE.)(.NE.)表示表示 =(.EQ.)(.EQ.)表示表示=(.LE.)(.LE.)表示表示 (.LT.)(.LT.)表示表示()()中是早期版本的写法中是早期版本的写法,不提倡使用。不提倡使用。格式格式:E1E1关系运算符关系运算符 E2E2 E1 E1与与E2E2为算术量或字符型的量为算术量或字符型的量关系表达式的值是逻辑量关系表达式的值是逻辑量:真真或或假假现在学习的是第3页,共32页算术运算符的优先级别高于关系运算符算术运算符的优先级别高于关系运算符:3+5.GT.SQRT(49.0

3、)-3=8.GT.4,3+5.GT.SQRT(49.0)-3=8.GT.4,真真实数的运算与存储都有误差实数的运算与存储都有误差,对实数进行对实数进行=或或/=/=运算运算时要特别当心。一般用两者之差的绝对值作为判断的时要特别当心。一般用两者之差的绝对值作为判断的依据。依据。用用ABS(A-B)1E-6ABS(A-B)1E-6ABS(A-B)1E-6来代替来代替A/=BA/=B对于整型数对于整型数,可直接用可直接用=,/=,/=来判断来判断.现在学习的是第4页,共32页2.1.2 逻辑表达式逻辑表达式逻辑型变量逻辑型变量:可以将关系表达式的结果赋值给一个变量可以将关系表达式的结果赋值给一个变量

4、,该变量的值只能是真或假该变量的值只能是真或假,类型是逻辑型类型是逻辑型 LOGICAL A,B,L1LOGICAL A,B,L1 A=3+5.GT.SQRT(49.0)-3 A=3+5.GT.SQRT(49.0)-3 逻辑赋值语句逻辑赋值语句FORTRANFORTRAN用五种用五种逻辑运算符逻辑运算符表示布尔运算表示布尔运算:.NOT.NOT.逻辑非逻辑非 .AND.AND.逻辑与逻辑与 .OR.OR.逻辑或逻辑或 .EQV.EQV.逻辑等逻辑等 .NEQV.NEQV.逻辑不等逻辑不等.NEQV.NEQV.也可用也可用 .XOR.XOR.表示。表示。布尔运算按照数学上的规定进行。要在理解的基

5、础布尔运算按照数学上的规定进行。要在理解的基础上掌握逻辑运算的上掌握逻辑运算的“真值表真值表”判断几个条件是否同时满足判断几个条件是否同时满足,数学上可以用布尔运算数学上可以用布尔运算,FORTRAN,FORTRAN用逻辑表达式表示。用逻辑表达式表示。现在学习的是第5页,共32页 逻辑表达式的格式逻辑表达式的格式:E1E1逻辑运算符逻辑运算符 E2E2 E1 E1与与E2E2为逻辑型的量为逻辑型的量,可以是可以是:逻辑变量、逻辑常量、关系表达式、逻辑表达式、逻辑变量、逻辑常量、关系表达式、逻辑表达式、整型量整型量 逻辑表达式运算次序逻辑表达式运算次序:括号括号函数函数算术表达式算术表达式关系表

6、达式关系表达式逻辑运算逻辑运算同一级别的运算同一级别的运算,从左至右从左至右进行进行 逻辑运算符优先级别逻辑运算符优先级别:.NOT.NOT.高于高于.AND.AND.高于高于.OR.OR.高于高于.EQV.EQV.和和 .NEQV.NEQV.逻辑表达式的值也是逻辑量逻辑表达式的值也是逻辑量:真真或或假假现在学习的是第6页,共32页 当逻辑运算符作用于整型量时当逻辑运算符作用于整型量时,执行整数的按位操执行整数的按位操作作,结果是一个整数而不是逻辑型数据。结果是一个整数而不是逻辑型数据。3.XOR.5=6 3.and.5=5 3.or.5=73.XOR.5=6 3.and.5=5 3.or.5

7、=7五种五种逻辑运算符逻辑运算符中中,逻辑非、逻辑与、逻辑或是基本逻辑非、逻辑与、逻辑或是基本的。其它两种可以由它们组合得到的。其它两种可以由它们组合得到,例如例如:.EQV.B.EQV.B 等等价于价于(注意逻辑运算符两边小圆点注意逻辑运算符两边小圆点)A.AND.B.OR.NOT.A.AND.NOT.B A.AND.B.OR.NOT.A.AND.NOT.B.NEQV.B.NEQV.B 等价于等价于 A.AND.NOT.B.OR.NOT.A.AND.BA.AND.NOT.B.OR.NOT.A.AND.B现在学习的是第7页,共32页关系表达式不可连写关系表达式不可连写:BC 0)PRINT*,

8、X:IF(X0)PRINT*,XIF(X0.and.Y0)PRINT*,IF(X0.and.Y0)PRINT*,第一象限第一象限逻辑逻辑IFIF语句本身仅仅是一条语句语句本身仅仅是一条语句,当条件为真时当条件为真时,也只也只执行一条语句执行一条语句,而不可能执行多条语句而不可能执行多条语句,与下面要介绍的块与下面要介绍的块IFIF有明显的区别。有明显的区别。现在学习的是第10页,共32页IF(X=0)Y=X+5也可写为也可写为Y=XIF(X=0)Y=X+5而而IF(X=0)Y=X+5Y=X是错误的是错误的.现在学习的是第11页,共32页4.2.2 块块IFIFIF(E)THEN(IF(E)TH

9、EN(块块IFIF语句语句)一条或多条执行语句一条或多条执行语句(THEN(THEN块块)ELSE(ELSEELSE(ELSE语句语句)一条或多条执行语句一条或多条执行语句(ELSE(ELSE块块)ENDIF(ENDIFENDIF(ENDIF语句语句)EIF块ELSE块真真假假现在学习的是第12页,共32页2.2.2 块块IFIFIF(E)THENIF(E)THEN 一条或多条执行语句一条或多条执行语句ELSEIF(E)THENELSEIF(E)THEN 一条或多条执行语句一条或多条执行语句ELSEIF(E)THENELSEIF(E)THEN 一条或多条执行语句一条或多条执行语句ELSEELS

10、E 一条或多条执行语句一条或多条执行语句 ENDIFENDIFEIF块真真假假EELSEIF块真真假假EELSEIF块真真假假ELSE块EndIfIF现在学习的是第13页,共32页 块块if if语句和语句和end if end if 语句分别标志块语句分别标志块IFIF的开始和结束。每的开始和结束。每个块个块IFIF都有且仅有一条块都有且仅有一条块if if语句、语句、end if end if 语句语句块块IFIF中每个块都可以省略中每个块都可以省略,表示那种情况下什么也不表示那种情况下什么也不做。做。每个块每个块IFIF至多有一条至多有一条ELSEELSE语句和一个语句和一个ELSEEL

11、SE块。没有块。没有ELSEELSE块的时候块的时候,ELSE,ELSE语句可有可无。语句可有可无。一个块一个块IFIF中可以没有也可以有一条或多条中可以没有也可以有一条或多条Else ifElse if语句语句,省略省略ELSEIFELSEIF块时块时,Else if,Else if语句可有可无。语句可有可无。被省略的块也可以理解为空块。被省略的块也可以理解为空块。块块IFIF中最多只有一个块被执行中最多只有一个块被执行,在省略在省略ELSEELSE语句的情况语句的情况下下,有可能什么也不做。有可能什么也不做。现在学习的是第14页,共32页2.2.2.1 块块IFIF的几种形式的几种形式因各

12、个块都可省略因各个块都可省略,块块IFIF常以较简单的形式出现常以较简单的形式出现 形式一形式一:只有只有IFIF块块 IF(E)THENIF(E)THEN 一条或多条执行语句一条或多条执行语句END IFEND IFEIF块真真假假形式二形式二:只有只有ELSEELSE块块IF(E)THENIF(E)THENELSEELSE 一条或多条执行语句一条或多条执行语句 ENDIFENDIFEELSE块真真假假现在学习的是第15页,共32页形式二实际是形式一的变种形式二实际是形式一的变种IF(.NOT.E)THENIF(.NOT.E)THEN 一条或多条执行语句一条或多条执行语句 ENDIFENDI

13、F.NOT.ETHEN块真真假假现在学习的是第16页,共32页2.2.2.2 块块IFIF编程例题编程例题现在学习的是第17页,共32页例例:输入三条边的长度输入三条边的长度,计算三角形面积。计算三角形面积。简要程序简要程序Read(*,*)Read(*,*)A,B,CA,B,CIF(A.LE.0.OR.B.LE.0.OR.C.LE.0)THENIF(A.LE.0.OR.B.LE.0.OR.C.LE.0)THENSTOP STOP 输入数据错误输入数据错误,边长必须为正数边长必须为正数ENDIFENDIFIF(A+B.LE.C.OR.A+C.LE.B.OR.B+C.LE.A)THENIF(A+

14、B.LE.C.OR.A+C.LE.B.OR.B+C.LE.A)THEN PRINT*,PRINT*,不能构成三角形不能构成三角形!STOP 12345 STOP 12345ELSEELSE S=(A+B+C)*0.5 S=(A+B+C)*0.5 S=SQRT(S*(S-A)*(S-B)*(S-C)S=SQRT(S*(S-A)*(S-B)*(S-C)PRINT*,PRINT*,三角形边长三角形边长:,A,B,C,A,B,C,面积面积:,S,SENDIFENDIFENDEND现在学习的是第18页,共32页 y=y=例例:计算分段函数的值计算分段函数的值0 x-100 x-102x+20 -102x

15、+20 -10 x 0 x 020 020 0 x 20 x 2030-0.5x 20 x 4030-0.5x 20 x 4050-x 4050-x 40 x 50 x 500 x 0 x 5050现在学习的是第19页,共32页简要程序简要程序:Read(*,*)XRead(*,*)XIF(X.LT.IF(X.LT.10)THEN10)THEN Y=0 Y=0ELSEIF(X.LT.0)THENELSEIF(X.LT.0)THEN Y=X+X+20 Y=X+X+20ELSEIF(X.LT.20)THENELSEIF(X.LT.20)THEN Y=20 Y=20ELSE IF(X.LT.40)T

16、HEN ELSE IF(X.LT.40)THEN Y=30-0.5*X Y=30-0.5*XELSE IF(X.LT.50)THENELSE IF(X.LT.50)THEN Y=50-X Y=50-XELSEELSEY=0Y=0End ifEnd ifEndEnd现在学习的是第20页,共32页2.2.2.3 块块IFIF的嵌套的嵌套块块IFIF中各块里的执行语句都可以出现又一个块中各块里的执行语句都可以出现又一个块IFIF结构结构,称为称为块块IFIF的嵌套的嵌套。块。块IFIF的嵌套理论上可以的嵌套理论上可以有无穷层。有无穷层。块块IFIF结构是由块结构是由块IFIF语句和语句和ENDIFE

17、NDIF语句括起来的一语句括起来的一段程序。块段程序。块IFIF嵌套中的嵌套中的IFIF与与ENDIFENDIF必须成对出现必须成对出现,这是显而易见的。这是显而易见的。ENDIF ENDIF 与与IFIF总是就近配对总是就近配对 。应该推敲算法应该推敲算法,减少块减少块IFIF嵌套的层数。因为块嵌套的层数。因为块IFIF嵌嵌套太深会导致程序结构复杂套太深会导致程序结构复杂,可读性降低。可读性降低。现在学习的是第21页,共32页可选部分如果有可选部分如果有,就必须与关键字用空格分开。就必须与关键字用空格分开。为提高块为提高块IFIF嵌套结构的程序可读性嵌套结构的程序可读性,可以给块可以给块IF

18、IF结结构取名构取名,其一般用法为其一般用法为:named_if_block:if(e)then named_if_block:if(e)then statements statements else named_if_block else named_if_block statements statements endif named_if_block endif named_if_block现在学习的是第22页,共32页例例:输入点输入点P(x,y)P(x,y)的坐标的坐标,判别判别P P点在第几象限。点在第几象限。简要程序简要程序Read(*,*)Read(*,*)X,YX,YIF(X.

19、GT.0)THENIF(X.GT.0)THEN IF(Y.GT.0)THEN IF(Y.GT.0)THEN PRINT*,PRINT*,P P点在第一象限点在第一象限 ELSE ELSE PRINT*,PRINT*,P P点在第四象限点在第四象限 ENDIFENDIFELSEELSE IF(Y.GT.0)THEN IF(Y.GT.0)THEN PRINT*,PRINT*,P P点在第二象限点在第二象限 ELSEELSE PRINT*,PRINT*,P P点在第三象限点在第三象限 ENDIFENDIFENDIFENDIFENDEND未考虑正好在坐标轴上的情形现在学习的是第23页,共32页例例:将

20、学生的成绩分为将学生的成绩分为A(G90),B(80G90),C(70G80),D(60G70),E(G=90)THENPRINT*,AELSE IF(G=80)THENPRINT*,BELSE IF(G=70)THENPRINT*,CELSEIF(G=60)THENPRINT*,DELSEPRINT*,EEND IFEND现在学习的是第24页,共32页例:阅读程序,写出程序的运行结果例:阅读程序,写出程序的运行结果程序程序1LOGICAL P,QREAD(*,(1X,2L4)P,QX=0;Y=0IF(P)X=1.0IF(Q)Y=1.0WRITE(*,*)X,YEND当当从从键键盘盘输输入入F

21、FTTFFTTFFTT,则则X,Y的的值值为为 _.程序程序2READ*,XIF(X0)THENY=0.0ELSE IF(X15)THENY=1.0ELSE IF(X30)THENY=2.0ELSEY=3.0END IFWRITE(*,*)YEND当当X=-12,12,22,32时时,对对应应的的Y值值各各为多少。为多少。现在学习的是第25页,共32页2.3 CASE CASE结构结构 对多重分支选择结构对多重分支选择结构,可以用可以用CASECASE结构描述结构描述,比起块比起块IFIF嵌套结构来嵌套结构来,更加直观简洁。更加直观简洁。现在学习的是第26页,共32页2.3.1 CASECAS

22、E结构的形式结构的形式 CASECASE结构一般形式结构一般形式:Select case(case_exp)Select case(case_exp)case(case_selector1)case(case_selector1)CASE CASE块块statementsstatements case(case_selector2)case(case_selector2)CASE CASE块块statementsstatements.case defaultcase default DEFAULT DEFAULT块块statementsstatementsEnd SelectEnd Selec

23、t现在学习的是第27页,共32页 Select caseSelect case与与End SelectEnd Select是是CASECASE结构的入口和出口结构的入口和出口,必必须成对出现须成对出现CASECASE表达式表达式case_expcase_exp可以是整型、逻辑型与字符型可以是整型、逻辑型与字符型,但不可以用实型或复型表达式但不可以用实型或复型表达式CASECASE选择器必须与选择器必须与CASECASE表达式类型一致表达式类型一致CASECASE块可多可少块可多可少,可以省略。可以省略。CASE DEFAULTCASE DEFAULT语句应不多于一条语句应不多于一条,并应放在所

24、有并应放在所有CASECASE语句之后。语句之后。CASECASE选择器是整数时选择器是整数时,可以有多种表示法可以有多种表示法:case(1),case(1,3,5),case(1:5,9,6)case(1),case(1,3,5),case(1:5,9,6)case(100:200)case(100:)case(:120)case(100:200)case(100:)case(:120)现在学习的是第28页,共32页2.3.2 CASECASE结构的执行过程结构的执行过程 计算计算CASECASE表达式的值表达式的值依次比较依次比较CASECASE选择器的值与选择器的值与CASECASE表

25、达式的值表达式的值,如果如果找到相等的就执行相应的找到相等的就执行相应的CASECASE块块,否则就执行否则就执行DEFAULTDEFAULT块。块。现在学习的是第29页,共32页2.3.3 CASECASE结构的命名结构的命名CASECASE结构命名方式与块结构命名方式与块IFIF结构相仿结构相仿:Case Case 结构名结构名:Select case(case_exp):Select case(case_exp)case(case_selector1)Case case(case_selector1)Case 结构名结构名 CASE CASE块块statementsstatements

26、case(case_selector2)Case case(case_selector2)Case 结构名结构名 CASE CASE块块statementsstatements.case default Case case default Case 结构名结构名 DEFAULT DEFAULT块块statementsstatementsEnd Select Case End Select Case 结构名结构名 现在学习的是第30页,共32页2.4 选择结构程序设计举例选择结构程序设计举例例例:输入一个整数输入一个整数,如果能被如果能被7 7整除则输出整除则输出“YESYES”,否否则输出则输

27、出“NONO”。Logical LLogical LInteger kInteger kRead*,kRead*,kL=mod(k,7)=0L=mod(k,7)=0If(L)thenIf(L)then print*,Yes print*,YesElse Else print*,NO print*,NOEndifEndifeNDeND现在学习的是第31页,共32页例:打印学生成绩等级例:打印学生成绩等级IMPLICIT NONEREAL GSELECT CASE(INT(G)CASE(90:100)PRINT*,A CASE(80:89)PRINT*,BCASE(70:79)PRINT*,CCASE(60:69)PRINT*,DCASE(:59)PRINT*,ECASE DEFAULTPRINT*,输入有错输入有错END SELECTEND现在学习的是第32页,共32页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com