




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八章常用算法的程序设计举例,第一章算法,第二章计算机和计算机程序,第四章逻辑运算和选择结构,第五章循环结构的实现,第六章Fortran的数据结构,第七章数据的输入、输出,第三章Fortran语言程序设计初步,一、引言,在FORTRAN77中,用块IF结构来实现选择结构,其形式为:,IF(条件)THENthen块ELSEelse块ENDIF,例:计算职工工资。正常工资rate(yuan/h),一周超过40hours时,超过部分按1.5rate(yuan/h)。,cPayrollwithovertimeprogrampayrollread(*,*)rate,hoursif(hours.gt.40.0)thenregpay=rate*40.0ovtpay=1.5*rate*(hours-40.0)elseregpay=rate*hoursovtpay=0.0endifpay=regpay+ovtpaywrite(*,*)rate=,rate,hours=,hourswrite(*,*)regularpay=,regpay,overtimepay=,ovtpaywrite(*,*)totalpay=,payend,二、关系表达式,关系表达式是最简单的一种逻辑表达式。,其一般形式为:,算术量:数值常数、数值型变量、数值函数、算术表达式。关系运算符:关系比较符。,FORTRAN中有六种关系运算符,几点注意:,1.关系运算符字母两侧各有一个句点,不要漏写。,2.在一个关系表达式中可能包括算术运算符和关系运算符,先进行算术运算,然后进行关系运算。(建议加括号),i+j.ne.m+n相当于(i+j).ne.(m+n),3.不同类型常变量比较时,遵循低级向高级转化规律。,X.GT.3,4.关系表达式的值不是一个数值,而是逻辑量“真”或“假”。,5.判断实数相等和不等,用.EQ.和.NE.时要特别注意。,(1.0/3.0+1.0/3.0+1.0/3.0).EQ.1.0,(10.0*0.1).NE.1.0,A.EQ.B可改为ABS(A-B).LT.1E-6,C.NE.D可改为ABS(C-D).GT.1E-6,三、逻辑表达式,1.逻辑常量,FORTRAN只有两个逻辑常量,.TRUE.表示“真”,即满足逻辑条件.FALSE.表示“假”,即不满足逻辑条件,2.逻辑型变量,Fortran用LOGICAL语句说明逻辑变量。,logicala,ba=.true.b=(x+y).gt.z,3.逻辑运算符,4.逻辑表达式,FORTRAN77逻辑量包括:,逻辑常量逻辑型变量关系表达式,(a.lt.b).and.(a.gt.c),(x.lt.0.).or.(a.gt.100.),.not.(x.le.0.),(a.gt.b).eqv.(c.gt.d),(l1.lt.0.).neqv.true.,注意:.AND.和.EQV.的区别。,例如,A=3.5,B=5.0,C=2.5,D=1.0,算术运算符的运算对象是数值量,运算结果为数值。关系运算符的运算对象是数值量,运算结果为逻辑量。逻辑运算符的运算对象是逻辑量,运算结果仍为逻辑量。,逻辑运算符和算术运算符可以连续用运算符连接运算量,但关系运算符不可以。,逻辑运算符可以写成:(设L1,L2,L3,L4为逻辑变量)L1.AND.L2.AND.L3.AND.L4算术运算符可以写成:A+B+C+D但关系运算符不能写成:A.LT.B.LT.C.LT.D,四、用块IF实现选择结构,IF(逻辑表达式)THEN块1ELSE块2ENDIF,几点说明:,1.一个块IF是有若干个语句组成的,其中三条语句均不能单独是使用。,2.一个块IF必须以块IF语句开始,以ENDIF语句结束。一个块IF语句必须和一个ENDIF语句对应。,3.一个块IF可以不包含ELSE语句和else块,也可以不包含then块。,if(grade.lt.60.)thenprint*,No.,numprint*,grade,gradeendif,4.块IF的嵌套,一个块IF可以嵌套另一个块IF,但另一个块if必须完整地出现在then块或else块的位置。,if(grade.ge.60.)thenelseprint*,No.,numprint*,grade,gradeendif,read(*,*)gradeif(grade.ge.60.)thenif(grade.ge.70.)thenif(grade.ge.80.)thenwrite(*,*)Aelsewrite(*,*)Bendifelsewrite(*,*)Cendifelsewrite(*,*)Dendifend,成绩分级A:80B:70且80C:60且70D:60,给a,b,c三个数排序,要求从小到大输出,read(*,*)a,b,cif(a.le.b)thenelset=aa=bb=tendifif(b.le.c)thenelset=bb=cc=tif(a.le.b)thenelset=aa=bb=tendifendifwrite(*,*)a,b,cend,五、ELSEIF语句,read(*,*)gradeif(grade.ge.60.)thenif(grade.ge.70.)thenif(grade.ge.80.)thenwrite(*,*)Aelsewrite(*,*)Bendifelsewrite(*,*)Cendifelsewrite(*,*)Dendifend,为了避免过多的块IF嵌套,FORTRAN还提供了ELSEIF语句来处理“否则,如果”的情况。,read(*,*)gradeif(grade.ge.60.)thenif(grade.ge.70.)thenif(grade.ge.80.)thenwrite(*,*)Aelsewrite(*,*)Bendifelsewrite(*,*)Cendifelsewrite(*,*)Dendifend,read(*,*)gradeif(grade.ge.80.)thenwrite(*,*)Aelseif(grade.ge.70.)thenwrite(*,*)Belseif(grade.ge.60.)thenwrite(*,*)Celsewrite(*,*)Dendifend,几点说明:,2.ELSEIF语句不需ENDIF语句与之对应。,3.一个块IF可以有多个ELSEIF语句,除非有块IF嵌套否则只能有一个ELSE语句。,1.ELSEIF语句相当于把ELSE语句和其下一行的块IF语句连结成一个语句。,4.当处理多分支选择时,用ELSEIF语句往往比较方便。,5.ELSEIF是在“条件为假”的分支中再继续进行分支处理的。故在处理多分支的选择时,要把出现几率高的条件写在前面,以提高效率。,read(*,*)gradeif(grade.ge.80.)thenwrite(*,*)Aelseif(grade.ge.70.)thenwrite(*,*)Belseif(grade.ge.60.)thenwrite(*,*)Celsewrite(*,*)Dendifend,read(*,*)gradeif(grade.le.60.)thenwrite(*,*)Delseif(grade.le.70.)thenwrite(*,*)Celseif(grade.le.80.)thenwrite(*,*)Belsewrite(*,*)Aendifend,read(*,*)xif(x.lt.-10.0)theny=0.0elseif(x.lt.0.0)theny=2.0*x+20.0elseif(x.lt.20.0)theny=20.0elseif(x.lt.40.0)theny=30.0-0.5*xelseif(x.lt.50.0)theny=50.0-xelsey=0.0endifwrite(*,*)y=,yend,求函数值,六、逻辑IF语句,逻辑IF语句只有“条件为真”时才有操作,为“假”时不进行任何操作,且条件为“真”时只能执行一条执行语句,而后不论“真”或“假”,都接着执行逻辑IF语句的下一条语句。逻辑IF语句又称行IF语句。,如果在块IF结构中else块空块,而then块只有一条语句,则用逻辑IF语句比较方便。,if(x.lt.60.0)thenwrite(*,*)gradeendifend,if(x.lt.60.0)write(*,*)grade,因为不论“真”或“假”,都接着执行逻辑IF语句的下一条语句,故逻辑IF语句的条件要写全。,read(*,*)gradeif(grade.ge.80.)write(*,*)Aif(grade.ge.70.and.grade.lt.80.)write(*,*)Bif(grade.ge.60.and.grade.lt.70.)write(*,*)Cif(grade.lt.60.)write(*,*)Dend,read(*,*)gradeif(grade.ge.80.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/TS 19206-9:2025 EN Road vehicles - Test devices for target vehicles,vulnerable road users and other objects,for assessment of active safety functions - Part 9: Require
- GB/T 45906.8-2025变电站二次系统第8部分:电气操作防误
- 桥梁远景图文体课件
- 《机械员》考试题库含完整答案【网校专用】
- 常见病症用药测试题库含答案
- 2025年物流行业招聘面试实战指南与预测题解答
- 2025年电子商务运营师中级面试必-备题库
- 2025广东政府采购评标专家考试题库及答案
- 2025年注册验船师资格考试(A级船舶检验专业法律法规)练习题及答案一
- 2025年高级电子商务运营师认证考试题库及参考答案
- 2025新版企业员工劳动合同范本
- PCR实验室基因扩增检验人员培训试题及答案
- 2025年全国版图知识竞赛(中学组)历年参考题库含答案详解(5卷)
- 2025年西藏自治区三支一扶人员招募考试(公共基础知识)历年参考题库含答案详解(5卷)
- 2025年富县辅警考试题库(附答案)
- 2026届张家港市达标名校中考语文模试卷含解析
- 国家中医药管理局《中医药事业发展“十五五”规划》全文
- 上交叉综合征的肌肉失衡及处理
- 开学安保工作方案(6篇)
- QC080000-2017 HSF有害物质管理程序文件全套
- 碳九加氢标准工艺标准流程
评论
0/150
提交评论