资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2.1 关系表达式与逻辑表达式2 选择结构程序设计2.2 块IF结构与IF语句2.3 CASE结构2.4 选择结构程序设计举例2.5 小结2.1关系表达式与逻辑表达式算法中经常要根据某种逻辑判断的结果 来决定下一个步骤应该做什么。这就是带分 支选择的算法。选择结构是结构化算法中一 种基本结构。 实现选择结构的前提是进行关系运算和逻辑 判断。 2.1.1 关系表达式 算术量A与B之间存在六种关系:AB AB AB A=B AB A(.GT.)表示 =(.GE.)表示 /=(.NE.)表示 =(.EQ.)表示= 1E-6来代替A/=B 对于整型数,可直接用=,/=来判断.2.1.2 逻辑表达式 逻辑型变量:可以将关系表达式的结果赋值给一 个变量,该变量的值只能是真或假,类型是逻辑型LOGICAL A,B,L1A=3+5.GT.SQRT(49.0)-3 逻辑赋值语句FORTRAN用五种逻辑运算符表示布尔运算:.NOT.逻辑非 .AND.逻辑与 .OR.逻辑或.EQV.逻辑等 .NEQV.逻辑不等 .NEQV.也可用 .XOR.表示。 布尔运算按照数学上的规定进行。要在理解的基 础上掌握逻辑运算的“真值表”判断几个条件是否同时满足,数学上可以用布尔 运算,FORTRAN用逻辑表达式表示。逻辑表达式的格式: E1逻辑运算符 E2E1与E2为逻辑型的量,可以是:逻辑变量、逻辑常量、关系表达式、逻辑表达式 、整型量逻辑表达式运算次序: 括号函数算术表达式关系表达式逻辑运算 同一级别的运算,从左至右进行逻辑运算符优先级别:.NOT.高于.AND.高于.OR.高于.EQV.和 .NEQV.逻辑表达式的值也是逻辑量:真或假当逻辑运算符作用于整型量时,执行整数的按位 操作,结果是一个整数而不是逻辑型数据。 3.XOR.5=6 3.and.5 = 5 3.or.5=7 五种逻辑运算符中,逻辑非、逻辑与、逻辑或是 基本的。其它两种可以由它们组合得到,例如: .EQV.B 等价于(注意逻辑运算符两边小圆点)A.AND.B .OR. .NOT.A.AND.NOT.B .NEQV.B 等价于A.AND.NOT.B .OR. .NOT.A.AND.B关系表达式不可连写:0) PRINT *, X IF(X0.and.Y0) PRINT *,第一象限逻辑IF语句本身仅仅是一条语句,当条件为真时,也 只执行一条语句,而不可能执行多条语句,与下面要 介绍的块IF有明显的区别。IF(X=0)Y=X+5也可写为Y=XIF(X=0)Y=X+5而IF(X=0)Y=X+5Y=X是错误的.2.2.2 块IFIF(E) THEN(块IF语句)一条或多条执行语句(THEN块) ELSE(ELSE语句)一条或多条执行语句(ELSE块) ENDIF(ENDIF语句)EIF块ELSE块真假2.2.2 块IFIF(E) THEN一条或多条执行语句 ELSEIF(E)THEN一条或多条执行语句 ELSEIF(E)THEN一条或多条执行语句 ELSE一条或多条执行语句 ENDIFEIF块真假EELSEIF块真假EELSEIF块真假ELSE块EndIfIF块if语句和end if 语句分别标志块IF的开始和结束 。每个块IF都有且仅有一条块if语句、end if 语句块IF中每个块都可以省略,表示那种情况下什么也 不做。 每个块IF至多有一条ELSE语句和一个ELSE块。 没有ELSE块的时候,ELSE语句可有可无。 一个块IF中可以没有也可以有一条或多条Else if语 句,省略ELSEIF块时,Else if语句可有可无。 被省略的块也可以理解为空块。 块IF中最多只有一个块被执行,在省略ELSE语句的 情况下,有可能什么也不做。2.2.2.1 块IF的几种形式 因各个块都可省略,块IF常以较简单的形式出现形式一:只有IF块IF(E) THEN一条或多条执行语句 END IFEIF块真假形式二:只有ELSE块 IF(E) THEN ELSE一条或多条执行语句 ENDIFEELSE块真假形式二实际是形式一的变种 IF(.NOT.E) THEN一条或多条执行语句 ENDIF.NOT.ETHEN块真假2.2.2.2 块IF编程例题例:输入三条边的长度,计算三角形面积。 简要程序 Read(*,*) A,B,C IF(A.LE.0.OR.B.LE.0.OR.C.LE.0) THEN STOP 输入数据错误,边长必须为正数 ENDIF IF(A+B.LE.C.OR.A+C.LE.B.OR.B+C.LE.A) THENPRINT *, 不能构成三角形!STOP 12345 ELSES = (A+B+C)*0.5S = SQRT(S*(S-A)*(S-B)*(S-C)PRINT *, 三角形边长:,A,B,C, 面积:,S ENDIF ENDy=例:计算分段函数的值0 x =90)THENPRINT*,AELSE IF(G=80)THENPRINT*,BELSE IF(G=70)THENPRINT*,CELSEIF(G=60)THENPRINT*,DELSEPRINT*,EEND IFEND例:阅读程序,写出程序的运行结果程序1LOGICAL P,QREAD(*,(1X,2L4)P,QX=0;Y=0IF(P)X=1.0IF(Q)Y=1.0WRITE(*,*)X,YEND当从键盘输入FFTTFFTTFFTT,则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 值各为多少。2.3 CASE结构对多重分支选择结构,可以用CASE结构描述,比 起块IF嵌套结构来,更加直观简洁。2.3.1 CASE结构的形式CASE结构一般形式: Select case(case_exp)case (case_selector1)CASE块statementscase (case_selector2)CASE块statements . case defaultDEFAULT块statements End SelectSelect case与End Select是CASE结构的入口和出 口,必须成对出现 CASE表达式case_exp可以是整型、逻辑型与字 符型,但不可以用实型或复型表达式 CASE选择器必须与CASE表达式类型一致 CASE块可多可少,可以省略。 CASE DEFAULT语句应不多于一条,并应放在 所有CASE语句之后。 CASE选择器是整数时,可以有多种表示法:case(1),case(1,3,5),case(1:5,9,6)case(100:200) case(100:) case(:120)2.3.2 CASE结构的执行过程计算CASE表达式的值 依次比较CASE选择器的值与CASE表达式的值 ,如果找到相等的就执行相应的CASE块,否则就 执行DEFAULT块。2.3.3 CASE结构的命名 CASE结构命名方式与块IF结构相仿: Case 结构名: Select case(case_exp)case (case_selector1)Case 结构名CASE块statementscase (case_selector2) Case 结构名CASE块statements . case default Case 结构名DEFAULT块statements End Select Case 结构名2.4 选择结构程序设计举例例:输入一个整数,如果能被7整除则输出 “YES”,否则输出“NO”。 Logical L Integer k Read *,k L = mod(k,7)=0 If(L) thenprint *, Yes Else print *, NO Endif eND例:打印学生成绩等级IMPLICIT NONEREAL GSELECT CASE(INT(G)CASE(90:100)PRINT*,ACASE(80:89)PRINT*,BCASE(70:79)PRINT*,CCASE(60:69)PRINT*,DCASE(:59)PRINT*,ECASE DEFAULTPRINT*,输入有错END SELECTEND
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号