fortran程序设计第4章xhb.ppt

上传人:文库蛋蛋多 文档编号:2719304 上传时间:2023-02-23 格式:PPT 页数:28 大小:99KB
返回 下载 相关 举报
fortran程序设计第4章xhb.ppt_第1页
第1页 / 共28页
fortran程序设计第4章xhb.ppt_第2页
第2页 / 共28页
fortran程序设计第4章xhb.ppt_第3页
第3页 / 共28页
fortran程序设计第4章xhb.ppt_第4页
第4页 / 共28页
fortran程序设计第4章xhb.ppt_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《fortran程序设计第4章xhb.ppt》由会员分享,可在线阅读,更多相关《fortran程序设计第4章xhb.ppt(28页珍藏版)》请在三一办公上搜索。

1、FORTRAN语言-FORTRAN 77结构化程序设计,第四章 逻辑运算和选择结构4.1 引言,在第三章介绍了最简单FORTRAN程序,在程序中各语句是顺序执行的,这种程序只包括顺序结构。这种程序只能解决逻辑关系比较简单的问题。在解决数值计算和非数值计算的问题时,常常遇到这样问题:需要对给定条件作逻辑判断,根据判断的结果决定执行哪种操作。这需要用到选择结构。,用块IF结构实现选择结构,其形式为:IF(条件)THEN then块 ELSE else块 END IF,例4.1计算职工工资。工人每小时计时工资为RATE,如果一周工作时间超过40小时,加班部分的工资按正常时间工资的1.5倍计算。,C

2、Payroll with overtimePROGRAM PAYROLLREAD(*,*)RATE,HOURSIF(HOURS.GT.40.0)THENREGPAY=RATE*40.0OVTPAY=1.5*RATE*(HOURS-40.0)ELSEREGPAY=RATE*HOURSOVTPAY=0.0END IFPAY=REGPAY+OVTPAYPRINT*,RATE=,RATE,HOURS=,HOURSPRINT*,REGULAR PAY=,REGPAY,OVERTIME PAY=,OVTPAYPRINT*,TOTAL PAY=,PAYEND,4.2 关系表达式,关系表达式是最简单的一种逻辑

3、表达式。算术量可以是数值常数、数值型变量、数值函数,也可以是算术表达式。FORTRAN中有六个关系运算符。见下表。,关系运算符 英语含义 数学符号.GT.Greater Than.GE.Greater than or Equal to.LT.Less Than.LE.Less than or Equal to.EQ.EQual to=.NE.Not Equal to,关系表达式示例:,关系表达式 数学式子 A.GT.3.5 A3.5 A+B.LE.0.0 A+B0 SIN(X).GE.0.5 SIN(X)0.5 A-B.NE.C+D A-BC+D I.LT.J/2 IJ/2,4.3 逻辑表达式

4、,关系表达式是最简单的逻辑表达式。关系表达式代表“简单条件”,如X.GT.0.0代表X0。但遇到一些比较复杂条件,如0X5,是0X和X5两个简单条件的组合,可以把它看作一个复合条件。可以写成以下逻辑表达式:X.GE.0.0.AND.X.LT.5.0,所谓逻辑表达式是对逻辑量进行逻辑运算的表达式。逻辑表达式的形式:FORTRAN 77的逻辑量:逻辑常量逻辑型变量关系表达式逻辑表达式的值是一个逻辑值,它不是真便是假。,4.3.1 逻辑常量,逻辑常量只有两个:.TRUE.FALSE.例如,当X=3时 X.LT.5 的值为.TRUE.,而 X.LE.0.0 的值为.FALSE.。逻辑常量可以在程序中出

5、现,可以将它们赋给逻辑型变量。逻辑常量又称逻辑常数,它的性质与其它类型的常量相类似,代表一个常值。,4.3.2 逻辑型变量,逻辑型变量存放逻辑常量。它的值也只能是.TRUE.或.FALSE.之一。可以将一逻辑常量赋予一个逻辑变量。假定A,B已被定义为逻辑型变量,则可以用赋值语句对它们赋值:A=.TRUE.B=.FALSE.这种赋值语句称为逻辑赋值语句。它的一般形式为:逻辑变量=逻辑表达式程序中对每一个逻辑变量都应加以说明,可用LOGICAL语句,如:LOGICAL A,B,4.3.3 逻辑运算符,逻辑运算符 含义 逻辑运算举例.AND.逻辑与 A.AND.B.OR.逻辑或 A.OR.B.NOT

6、.逻辑非.NOT.A.EQV.逻辑等 A.EQV.B.NEQV.逻辑不等 A.NEQV.B,逻辑表达式示例:,(A.LT.B).AND.(A.GT.C)(X.LT.0.0).OR.(X.GT.100.0)NOT.(X.LE.0.0)(A.GT.B).EQV.(C.GT.D)L1.NEQV.L2,4.3.4 逻辑表达式的运算次序,一个逻辑表达式中可以包括多个逻辑运算符。即多个逻辑量经过逻辑运算后可以得到一个逻辑值。例如以下逻辑表达式:A.LE.0.0.AND.A+C.GT.B+D.OR.NOT.TRUE.FORTRAN 77规定按以下次序进行运算:先计算算术表达式的值再求关系表达式的值最后进行逻

7、辑运算,运算类型运算符优先级 括号()1算术运算*2*/3+-4关系运算.GT.GE.LT.5.LE.EQ.NE.逻辑运算.NOT.6.AND.7.OR.8.EQV.,.NEQV.9,4.4 用块IF实现选择结构4.4.1 块IF的组成,块IF的形式:IF(逻辑表达式)THEN 块1ELSE 块2END IF,4.4.2 块IF的执行过程,若逻辑表达式的值为真,则执行块1,否则执行块2。,4.4.3 块IF的嵌套,例4.2学生考试成绩,大于等于80分的为A等,大于等于60分而小于80分的为B等,小于60分的为D等。READ(*,*)GRADEIF(GRADE.GE.60.0)THENIF(GR

8、ADE.GE.80.0)THENPRINT*,AELSEPRINT*,BEND IFELSEPRINT*,DEND IF,例4.3如果在上例的基础上将80分以上定为A等,7079分定为B等,6069分定为C等,小于60分的为D等。,READ(*,*)GRADEIF(GRADE.GE.60.0)THENIF(GRADE.GE.70)THENIF(GRADE.GE.80.0)THENPRINT*,AELSEPRINT*,BEND IFELSEPRINT*,CEND IFELSEPRINT*,DEND IF,例4.4 三个数A、B、C,按升序排序。,READ(*,*)A,B,CIF(A.LE.B)T

9、HENELSET=AA=BB=TEND IFIF(B.LE.C)THENELSET=BB=CC=TIF(A.LE.B)THENELSET=AA=BB=TEND IFEND IF,4.4.4 ELSE IF语句,FORTRAN提供ELSE IF语句来处理逻辑“否则,如果”。,例4.6例4.3可以用ELSE IF语句来实现。,READ(*,*)GRADEIF(GRADE.GE.80.0)THENWRITE(*,*)AELSE IF(GRADE.GE.70.0)THENWRITE(*,*)BELSE IF(GRADE.GE.60.0)THENWRITE(*,*)CELSEWRITE(*,*)DEND

10、 IF,例4.7有一函数:Y=0(X=50),READ(*,*)XIF(X.LT.-10.0)THENY=0.0ELSE IF(X.LT.0.0)THENY=2.0*X+20.0ELSE IF(X.LT.20.0)THENY=20.0ELSE IF(X.LT.40.0)THENY=30.0-0.5*XELSE IF(X.LT.50.0)THENY=50.0-XELSEY=0.0END IFPRINT*,Y=,YEND,4.5 逻辑IF语句,逻辑IF语句实现选择结构,但它与块IF不同:(1)它只有条件为真时才有操作,为假时不进行任何操作;(2)条件为真时只能执行一个语句而不能执行若干个语句。例如:IF(X.GT.0.0)PRINT*,X,例4.8计算,READ(*,*)XIF(X.GE.0.0)Y=3.0*X+6.0IF(X.LT.0.0)Y=-X*X+2.0*X-8.0PRINT*,X=,X,Y=,YEND,例4.9有三个数A,B,C,打印其中最大数。,READ(*,*)A,B,CBIG=AIF(B.GT.BIG)BIG=BIF(C.GT.BIG)BIG=CPRINT*,BIG,习题,

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号