- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
Fortran程序设计第3讲逻辑运算与流程控制
回顾前一讲Fortran基础字符集句法程序结构常数与变量数据类型默认与显示声明赋值语句与算术运算内置函数输入与输出变量初始化IMPLICITNONE语句
第二讲内容2.1逻辑运算2.2IF语句2.3SELECTCASE语句
2.1.1逻辑常数与变量逻辑常数只可能是两个值中的一个.TRUE..FALSE.逻辑变量的声明形式LOGICAL::var1[,var2,var3,…]example21.f90显示如何定义逻辑变量以及赋值
2.1.2关系运算符新形式旧形式含义==.EQ.等于/=.NE.不等于.GT.大于=.GE.大于或等于.LT.小于=.LE.小于或等于关系运算符的一般形式aopba,b是算术表达式、变量、常数或字符串,op是上表所列关系运算符当a,b之间的关系满足op时,aopb的值为.TRUE.否则为.FALSE.关系运算符的优先级低于所有的算术运算符3+42+3等价于(3+4)(2+3)它们的值都是.FALSE.
2.1.3组合逻辑运算符运算符功能定义l1.AND.l2逻辑与l1与l2同时为真,结果为真l1.OR.l2逻辑或l1与l2至少一个为真,结果才为真l1.EQV.l2逻辑等值l1与l2相等(同真同假),结果为真l1.NEQV.l2逻辑非等值l1与l2不等(一真一假),结果为真.NOT.l1逻辑非l1为假则结果真,l1为真则结果假
2.1.4求解逻辑表达式运算符的计算顺序:先运算所有的算术运算符从左至右运算所有的关系运算符最后运算逻辑运算符所有的.NOT.运算符运算所有的.AND.从左至右计算所有的.OR.从左至右计算所有的.EQV.和.NEQV.从左至右计算
2.1QUIZ_1假定实数变量a,b,c分别是10.0,0.1,2.1,逻辑变量l1,l2,l3分别是.TRUE.,.FALSE.,.TRUE.下列表达式哪些合法?值为多少?ab.OR.bc(.NOT.a).OR.l1l1.AND..NOT.l2ab.EQV.bcl1.OR.l2.AND.l3l1.OR.(l2.AND.l3)(l1.OR.l2).AND.l3a.OR.b.AND.c
2.1QUIZ_2下面程序的输出结果是?PROGRAMquiz_21INTEGER::i,j,kLOGICAL::lREAD(*,*)i,jREAD(*,*)kl=i+j==kWRITE(*,*)lENDPROGRAMquiz_21输入数据是:1,3,52,4,6
2.2.1简单的IF语句IF程序结构块IF(logical_expr)THEN Statement1 Statement2 …ENDIF如果logical_expr为真,那么就执行IF和ENDIF语句之间的所有语句,如果为假,那么就跳过这些语句,直接执行ENDIF语句之后的下一条语句良好的编程习惯:总是将IF和ENDIF语句之间的程序块整体缩进两个或多个空格,以提高代码的可读性
2.2.2带ELSE子句的IF语句IF(逻辑表达式_1)THEN 程序块1ELSE 程序块2ENDIF如果逻辑表达式1成立,则执行程序块1中的语句,执行完毕后跳到ENDIF后面的第一条可执行语句继续执行否则,就跳过程序块1,直接执行程序块2的内容,执行完毕后调到ENDIF后面的第一条可执行语句继续执行
2.2.3带ELSEIF子句的IF语句IF(逻辑表达式_1)THEN 程序块1ELSEIF(逻辑表达式_2)THEN 程序块2ELSEIF(逻辑表达式_3)THEN 程序块3ELSE 程序块4ENDIF最后的ELSE不是必须的,可以省略
2.2.4IF结构举例--example_22求一元二次方程的解(程序设计的基本流程)编写程序,无论是不同的还是相同的实根,还是复根,都要求出一元二次方程的根说明问题程序的输入是二次方程的系数a,b,c输出是各种情况下的根定义输入和输出任务分成三个部分:输入、计算和输出设计算法将算法转换为Fortran程序测试程序
Example_22用伪代码描述的算法提示用户输入系数a,b,c读取a,b,c回显输入系数discriminant?b**2-4.*a*cIFdiscriminant0THENx1-(-b+sqrt(discriminant))/(2.*a)x2-(-b-sqrt(discriminant))/(2.*a)输出方程式有两个不同的实根的信息输出两个实根ELSEIFdiscriminant0THENreal_p
您可能关注的文档
- 《Fortran程序设计》第1讲 课程相关.pptx
- 《Fortran程序设计》第4课循环控制.pptx
- 《Fortran程序设计》第8课文件初步.pptx
- 《Fortran程序设计》期中总结.pptx
- 《Fortran程序设计》实验.docx
- 国家金融与发展实验室-房地产市场及房地产金融运行——2024Q3房地产金融.pdf
- Similarweb-针对不可预测节日季的数据驱动规划指南.pdf
- 新教科版小学六年级科学下册复习题大全2017-dea25bf951e2524de518964bc.pdf
- 新版精编移动大比武考试题库【数据通信】完整考试题库188题(含答案.pdf
- 教师年度考核个人述职报告精选5篇 .pdf
文档评论(0)