05mqs流程控制与逻辑运算_第1页
05mqs流程控制与逻辑运算_第2页
05mqs流程控制与逻辑运算_第3页
05mqs流程控制与逻辑运算_第4页
05mqs流程控制与逻辑运算_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第5章 流程控制与逻辑运算孟庆生环境科学与工程学院2012.11.17Fortran 程序设计目目 录录 第1章 计算机概论 第2章 编译器的使用 第3章 Fortran程序设计基础 第4章 输入输出及声明 第5章 流程控制与逻辑运算 第6章 循 环 第7章 数组(ARRAY) 第8章 函 数 第9章 文 件 第10章 MODULE及面向对象 第5章 流程控制与逻辑运算u5.1 IF语句 u5.2 浮点数及字符的逻辑运算 u5.3 SELECT CASE语句 u5.4 其他流程控制 在程序执行中,选择是否要执行某一段程序代码。第一次课第二次课5.1 IF 语句功能:能够在程序执行当中自动选择转

2、向、跳过某些程序模块来执行程序代码。l5.1.1 IF基本用法l5.1.2 逻辑运算l5.1.3 多重判断 IF-ELSE IFl5.1.4 嵌套IF语句基本用法5.1.1 IF基本用法IF的用法: 一个IF-ENDIF程序模块 一个IF-ENDIF程序语句 一个IF-ELSE-ENDIF模块 多个IF语句嵌套模块 多重判断 IF-ELSE IF-ENDIF模块 一个IF-ENDIF程序模块u 结构:u 例: ex0501.f90IF (逻辑判断式) THEN.END IF逻辑成立时,才执行这里面的程序代码5.1.1 IF基本用法例:ex0501.f905.1.1 IF基本用法 一个IF程序语

3、句u 当IF 程序模块中只有一个程序命令只有一个程序命令时,可省略then 及end if,简写成一个IF程序语句.例:5.1.1 IF基本用法 一个IF-ELSE-ENDIF模块u 结构:u 例2: ex0502.f90IF (逻辑判断式) THEN.ELSE.END IF逻辑成立时,执行这一段的程序代码逻辑不成立时则执行这一段的程序代码5.1.1 IF基本用法例2ex0502.f90编程习惯:模块内的代码向后错位,增加程序可读性,减少出错。5.1.2 逻辑运算u IF命令需搭配逻辑表达式才能使用。u逻辑运算符号F90以上以上F77说明=.EQ.判断是否“相等”/=.NE.判断是否“不相等”

4、.GT.判断是否“大于”=.GE.判断是否“大于或等于”.LT.判断是否“小于”5 .AND. 61 .AND. 31105 .AND. 62 .AND. 13【.OR.】15 .OR. 21 .OR. 3115 .OR. 25【.NOT.】.NOT. 35.NOT. 13 .EQV. 23 12 .EQV. 2312 .NEQV. 23 12 .NEQV. 22 .NEQV. TrueTrueFalseTrueFalseFalseu集合运算符的应用: 例 ex0503.f905.1.3 多重判断 IF-ELSE IF-ENDIFu 多重判断:可一次列出多个条件及多个程序模块,但最多只有一个条

5、件成立而执行。u 结构:5.1.3 多重判断IF (条件(条件1) then.else if(条件(条件2) then.else if(条件(条件3) then.else if(条件(条件4) then.else.End if条件1成立时,执行这个模块程序条件2成立时,执行这个模块程序条件3成立时,执行这个模块程序条件4成立时,执行这个模块程序Else这个模块可以省略,每个条件都不成立时,才执行这个模块程序u例: ex0505.f905.1.3 多重判断23u 比较: 多重判断的不同写法5.1.3 多重判断24u比较:多重判断、 多个IF语句5.1.3 多重判断判断次数多执行效率差u程序清楚u

6、效率低!u比较:多个IF语句要注意逻辑表达式的正确性(可能的错误)5.1.3 多重判断错误 !5.1.4 嵌套IF语句u结构:IF () THEN 第1层 if 开始 IF () THEN 第2层 if 开始 IF () THEN 第3层 if 开始 ELSE IF () THEN ELSE END IF 第3层 if 结束 END IF 第2层 if 结束 END IF 第1层 if 结束u 例: ex0508.f90ex0508.f90u例: ex0508.f90ex0508.f90 读入坐标(x,y),判断点位于哪个象限中?第5章 流程控制与逻辑运算u5.1 IF语句 u5.2 浮点数及

7、字符的逻辑运算 u5.3 SELECT CASE语句 u5.4 其他流程控制 在程序执行中,选择是否要执行某一段程序代码。第一次课第二次课5.2 浮点数及字符的逻辑运算 使用浮点数、字符做逻辑判断时,有一些注意事项。 5.2.1 浮点数的逻辑判断 5.2.2 字符的逻辑判断5.2.1 浮点数的逻辑判断u浮点数做逻辑判断运算时,避免使用“等于”的判断浮点数的有效位数有限,难免出现计算误差,理想的等号不一定会成立。 例:EX0509.f90EX0509.f90浮点数的有效位数有限,SQRT(3)是无穷小数,用其纪录有误差。5.2.1 浮点数的逻辑判断u浮点数的计算误差经常存在,在判断式中要设置误差

8、范围( 使用abs()取绝对值),其大小根据计算数值范围设置。例:EX0510.f90EX0510.f90改进:浮点数计算有误差,在判断中要设置误差范围。abs( )绝对值5.3 SELECT CASE 语句u 功能:多重判断,等价于 IF 模块取代某些IF-ELSE IF多重语句,代码较简洁u CASE语法结构u 例: EX0512.f90u SELECT CASE使用的限制u 例 : EX0513.f90u 语法结构(判断变量是否等于某个数值)Select case (变量)(变量) case (数值(数值1). case (数值(数值2). case (数值(数值n). case def

9、ault.End select放入所要判断的变量变量等于数值1时,执行此程序段变量等于数值2时,执行此程序段变量等于数值n时,执行此程序段变量不等于任何数值时,执行此程序段( case default 程序段可以省略)5.3 SELECT CASESELECT CASE 语句u 语法结构( CASE语句的语法)l CASE里的数值可以是数字或parameter定义的常量。l CASE里使用冒号:其前后放入两个数值时,代表这两个数字范围中的所有数值;l CASE用逗号放入多个变量l 例:u 例:EX0512.f90u SELECT CASE 使用的限制5.3 SELECT CASESELECT

10、CASE 语句lselect case()的变量:只能使用整数,字符和逻辑变量,不能使用浮点数和复数。lcase()的数值:必须是,不能使用变量。l例:u 例:EX0513.f90-小型交互式计算机程序5.3 SELECT CASESELECT CASE 语句5.4 5.4 其他流程控制其他流程控制(以下略)(以下略)u5.4.1 5.4.1 GOTOGOTOu5.4.2 5.4.2 IFIF与与GOTOGOTO的联用的联用u5.4.35.4.3 PAUSEPAUSE,CONTINUECONTINUE,STOPSTOP5.4.1 5.4.1 GOTOGOTOuGOTO命令的功能:任意跳跃到所赋

11、值“行代码”的那一行程序位置来执行。uGOTO跳跃的“行代码”位置:可在GOTO命令的后面或前面。例: ex0514.f90 、 ex0515.f90uGOTO可一次提供几个跳跃点:根据GOTO后面的算式选择使用哪一个跳跃点。(例: ex0516.f90 )u缺点:使程序结构复杂,程序难以阅读、修改维护。 不建议频繁使用。 u跳跃的“行代码” 在在GOTO命令的后面: 例例 ex0514.f90ex0502.f90u跳跃的“行代码” 在在GOTO命令的前面: 例例 ex0515.f90循环uGOTO可一次提供几个跳跃点: 根据GOTO后面的算式选择使用哪一个跳跃点。(例: ex0516.f90

12、 ) 该变量(I/N)的值:与GOTO语句中的行代码从左到右的序号相对应。5.4.2 IF与与GOTO的联用的联用uIF判断有一种叫做算术判断的方法,做法和GOTO类似 u 例:例:if (c) 10, 20, 30! c0时时goto 30u例:ex0517.for例例 : ex0517.f905.4.3 PAUSE,CONTINUE,STOPuPAUSE:暂停执行,按ENTER键继续执行适用:屏幕连续输出多页数据时,设置换页uCONTINUE: 继续向下执行程序,Fortran 77 中使用较多,f90很少使用。uSTOP:结束程序执行适用:程序读取不合理的输入、计算错误时第第5章章 作作

13、 业业u 1 1假如所得税有3个等级,月收入在1000元以下的税率为3%,在1000元至5000元之间的税率为10%,在5000元以上的税率为15%。 请写一个程序来输入一位上班族的月收入,并计算他(她)所应缴纳的税金。 u 2 2某电视台的晚上8点节目安排如下: 星期一、四:新闻 星期二、五:电视剧 星期三、六:卡通片 星期日:电影 请写一个程序,可输入星期几来查询当天晚上的节目。P98 P98 : 1 1、2 2、3 3、补充4 4第第5章章 作作 业业u 3 3假如所得税有三个等级,随年龄不同又有不同算法: 第一类:年轻级(不满50岁) 月收入在l000元以下的税率为3%,在1000元至5000元之间的税率为10%,在5000元以上的税率为15%。 第二类:老年级(50岁以上) 月收入在1000元以下的税率为5%,在1000元至5000元之间的税率为7%,在5000元以上的税率为10 % 。 请写一个程序来输入一位上班族的年龄、月收入,并计算他(她)所应缴纳的税金。P98 P98 : 1 1、2 2、3 3、补充4 4第第5章章 作作 业业u4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论