

已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
fortran语言 -fortran 77结构化程序设计 第四章 逻辑运算和选择结构 4.1 引言 在第三章介绍了最简单fortran程序,在程 序中各语句是顺序执行的,这种程序只包括顺序 结构。这种程序只能解决逻辑关系比较简单的问 题。在解决数值计算和非数值计算的问题时,常 常遇到这样问题:需要对给定条件作逻辑判断, 根据判断的结果决定执行哪种操作。这需要用到 选择结构。 用块if结构实现选择 结构,其形式为: if (条件) then then块 else else块 end if 例4.1计算职工工资。工人每小时计时工资为 rate,如果一周工作时间超过40小时,加班部分 的工资按正常时间工资的1.5倍计算。 c payroll with overtime program payroll read (*, *) rate, hours if (hours .gt. 40.0) then regpay=rate*40.0 ovtpay=1.5*rate*(hours-40.0) else regpay=rate*hours ovtpay=0.0 end if pay=regpay+ovtpay print *, rate=, rate, hours=, hours print *, regular pay=, regpay, overtime pay=, ovtpay print *, total pay=, pay end 4.2 关系表达式 关系表达式是最简单的一种逻辑表达式。 算术量可以是数值常数、数值型变量、数值函 数,也可以是算术表达式。 fortran中有六个关系运算符。见下表。 关系运算符 英语含义 数学符号 .gt. greater than .ge. greater than or equal to .lt. less than 3.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 i0。但遇 到一些比较复杂条件,如0x fortran 77的逻辑量: 逻辑常量 逻辑型变量 关系表达式 逻辑表达式的值是一个逻辑值,它不是真便是假 。 4.3.1 逻辑常量 逻辑常量只有两个: .true. .false. 例如,当x=3时 x .lt. 5 的值为.true.,而 x .le. 0.0 的值为.false.。 逻辑常量可以在程序中出现,可以将它们赋给 逻辑型变量。逻辑常量又称逻辑常数,它的性质 与其它类型的常量相类似,代表一个常值。 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. 逻辑非 .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规定按以下次序进行运算: 先计算算术表达式的值 再求关系表达式的值 最后进行逻辑运算 运算类型运算符优先级 括号 ( ) 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 块1 else 块2 end if 4.4.2 块if的执行过程 若逻辑表达式的值为真,则执行块1,否 则执行块2。 4.4.3 块if的嵌套 例4.2学生考试成绩,大于等于80分的为a等,大于等于60 分而小于80分的为b等,小于60分的为d等。 read (*, *) grade if (grade .ge. 60.0) then if (grade .ge. 80.0) then print *, a else print *, b end if else print *, d end if 例4.3如果在上例的基础上将80分以上定为a等,7079 分定为b等,6069分定为c等,小于60分的为d等。 read (*, *) grade if (grade .ge. 60.0) then if (grade .ge. 70) then if (grade .ge. 80.0) then print *, a else print *, b end if else print *, c end if else print *, d end if 例4.4 三个数a、b、c,按升序排序。 read (*, *) a, b, c if (a .le. b) then else t=a a=b b=t end if if (b .le. c) then else t=b b=c c=t if (a .le. b) then else t=a a=b b=t end if end if 4.4.4 else if语句 fortran提供else if语句来处理逻辑 “否则,如果” 。 例4.6例4.3可以用else if语句来实现。 read (*,*) grade if (grade .ge. 80.0) then write (*,*) a else if (grade .ge. 70.0) then write (*,*) b else if (grade .ge. 60.0) then write (*,*) c else write (*,*) d end if 例4.7有一函数: y=0 (x=50) read (*,*) x if (x .lt. -10.0) then y=0.0 else if (x .lt. 0.0) then y=2.0*x+20.0 else if (x .lt. 20.0) then y=20.0 else if (x .lt. 40.0) then y=30.0-0.5*x else if (x .lt. 50.0) then y=50.0-x else y=0.0 end if print *, y=, y end 4.5 逻辑if语句 逻辑if语句实现选择结构,但 它与块if不同: (1)它只有条件为真时才有操作, 为假时不进行任何操作; (2)条件为真时只能执行一个语句 而不能执行若干个语句。 例如: if (x .gt. 0.0) print *, x 例4.8计算 read (*, *) x if (x .ge. 0.0) y=3.0*x+6.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人工智能算法测试员公司招聘笔试题库及答案
- 小学生课件图片背景
- 丁基橡胶装置操作工岗位实习报告
- 饱和潜水员安全技术操作规程
- 工程机械维修工(堆场机械维修工)职业技能鉴定经典试题含答案
- 变电站值班员公司招聘笔试题库及答案
- 吊装清洗工实操任务书
- 小学生课件分析模板
- 凿岩工职业技能模拟试卷含答案
- 小学生课件下载网站
- 2025至2030全球及中国盐水管理技术行业产业运行态势及投资规划深度研究报告
- 2024-2025学年广东省广州市海珠区八年级(下)期末数学试卷
- 2025至2030中国洁净室FFU行业产业运行态势及投资规划深度研究报告
- 2025年山东省新高考政治试卷(含答案)
- 陆河辅警考试题库2025(有答案)
- 2025至2030拼图玩具行业项目调研及市场前景预测评估报告
- ISO22000食品安全管理体系培训
- 生物医学工程师岗位面试问题及答案
- DB43∕T 876.2-2014 高标准农田建设 第2部分:土地平整
- 针灸科重点病种诊疗方案
- 2025年河北省高考化学试卷真题(含答案详解)
评论
0/150
提交评论