FORTRAN90第二章选择结构程序设计.ppt

上传人:max****ui 文档编号:6343214 上传时间:2020-02-23 格式:PPT 页数:32 大小:351.31KB
返回 下载 相关 举报
FORTRAN90第二章选择结构程序设计.ppt_第1页
第1页 / 共32页
FORTRAN90第二章选择结构程序设计.ppt_第2页
第2页 / 共32页
FORTRAN90第二章选择结构程序设计.ppt_第3页
第3页 / 共32页
点击查看更多>>
资源描述
2 1关系表达式与逻辑表达式 2选择结构程序设计 2 2块IF结构与IF语句 2 3CASE结构 2 4选择结构程序设计举例 2 5小结 2 1关系表达式与逻辑表达式 算法中经常要根据某种逻辑判断的结果来决定下一个步骤应该做什么 这就是带分支选择的算法 选择结构是结构化算法中一种基本结构 实现选择结构的前提是进行关系运算和逻辑判断 2 1 1关系表达式 算术量A与B之间存在六种关系 A BA BA BA BA BA GT 表示 GE 表示 NE 表示 EQ 表示 LE 表示 LT 表示 中是早期版本的写法 不提倡使用 格式 E1关系运算符E2E1与E2为算术量或字符型的量 关系表达式的值是逻辑量 真或假 算术运算符的优先级别高于关系运算符 3 5 GT SQRT 49 0 3 8 GT 4 真 实数的运算与存储都有误差 对实数进行 或 运算时要特别当心 一般用两者之差的绝对值作为判断的依据 用ABS A B 1E 6来代替A B对于整型数 可直接用 来判断 2 1 2逻辑表达式 逻辑型变量 可以将关系表达式的结果赋值给一个变量 该变量的值只能是真或假 类型是逻辑型LOGICALA B L1A 3 5 GT SQRT 49 0 3逻辑赋值语句 FORTRAN用五种逻辑运算符表示布尔运算 NOT 逻辑非 AND 逻辑与 OR 逻辑或 EQV 逻辑等 NEQV 逻辑不等 NEQV 也可用 XOR 表示 布尔运算按照数学上的规定进行 要在理解的基础上掌握逻辑运算的 真值表 判断几个条件是否同时满足 数学上可以用布尔运算 FORTRAN用逻辑表达式表示 逻辑表达式的格式 E1逻辑运算符E2E1与E2为逻辑型的量 可以是 逻辑变量 逻辑常量 关系表达式 逻辑表达式 整型量 逻辑表达式运算次序 括号 函数 算术表达式 关系表达式 逻辑运算同一级别的运算 从左至右进行 逻辑运算符优先级别 NOT 高于 AND 高于 OR 高于 EQV 和 NEQV 逻辑表达式的值也是逻辑量 真或假 当逻辑运算符作用于整型量时 执行整数的按位操作 结果是一个整数而不是逻辑型数据 3 XOR 5 63 and 5 53 or 5 7 五种逻辑运算符中 逻辑非 逻辑与 逻辑或是基本的 其它两种可以由它们组合得到 例如 EQV B等价于 注意逻辑运算符两边小圆点 A AND B OR NOT A AND NOT B NEQV B等价于A AND NOT B OR NOT A AND B 关系表达式不可连写 B C不能写成A LT B LE C须用逻辑表达式A LT B AND B LE C 2 2块IF结构与IF语句 FORTRAN90有三种方法实现选择结构 IF语句 块IF结构和CASE结构 4 2 1逻辑IF语句 4 2 2块IF结构 2 2 1逻辑IF语句 逻辑IF语句也称为行IF语句 格式 IF E 可执行语句 例 IF X 0 PRINT XIF X 0 and Y 0 PRINT 第一象限 逻辑IF语句本身仅仅是一条语句 当条件为真时 也只执行一条语句 而不可能执行多条语句 与下面要介绍的块IF有明显的区别 IF X 0 Y X 5 也可写为 Y XIF X 0 Y X 5 而IF X 0 Y X 5Y X 是错误的 2 2 2块IF 2 2 2块IF IF E THEN一条或多条执行语句ELSEIF E THEN一条或多条执行语句ELSEIF E THEN一条或多条执行语句 ELSE一条或多条执行语句ENDIF 块if语句和endif语句分别标志块IF的开始和结束 每个块IF都有且仅有一条块if语句 endif语句 块IF中每个块都可以省略 表示那种情况下什么也不做 每个块IF至多有一条ELSE语句和一个ELSE块 没有ELSE块的时候 ELSE语句可有可无 一个块IF中可以没有也可以有一条或多条Elseif语句 省略ELSEIF块时 Elseif语句可有可无 被省略的块也可以理解为空块 块IF中最多只有一个块被执行 在省略ELSE语句的情况下 有可能什么也不做 2 2 2 1块IF的几种形式 因各个块都可省略 块IF常以较简单的形式出现 2 2 2 2块IF编程例题 例 输入三条边的长度 计算三角形面积 简要程序Read A B CIF A LE 0 OR B LE 0 OR C LE 0 THENSTOP 输入数据错误 边长必须为正数 ENDIFIF A B LE C OR A C LE B OR B C LE A THENPRINT 不能构成三角形 STOP12345ELSES A B C 0 5S SQRT S S A S B S C PRINT 三角形边长 A B C 面积 SENDIFEND 例 计算分段函数的值 0 x 102x 20 10 x 0200 x 2030 0 5x20 x 4050 x40 x 500 x 50 简要程序 Read XIF X LT 10 THENY 0ELSEIF X LT 0 THENY X X 20ELSEIF X LT 20 THENY 20ELSEIF X LT 40 THENY 30 0 5 XELSEIF X LT 50 THENY 50 XELSEY 0EndifEnd 2 2 2 3块IF的嵌套 块IF中各块里的执行语句都可以出现又一个块IF结构 称为块IF的嵌套 块IF的嵌套理论上可以有无穷层 块IF结构是由块IF语句和ENDIF语句括起来的一段程序 块IF嵌套中的IF与ENDIF必须成对出现 这是显而易见的 ENDIF与IF总是就近配对 应该推敲算法 减少块IF嵌套的层数 因为块IF嵌套太深会导致程序结构复杂 可读性降低 可选部分如果有 就必须与关键字用空格分开 为提高块IF嵌套结构的程序可读性 可以给块IF结构取名 其一般用法为 named if block if e thenstatementselse named if block statementsendif named if block 例 输入点P x y 的坐标 判别P点在第几象限 简要程序Read X YIF X GT 0 THENIF Y GT 0 THENPRINT P点在第一象限 ELSEPRINT P点在第四象限 ENDIFELSEIF Y GT 0 THENPRINT P点在第二象限 ELSEPRINT P点在第三象限 ENDIFENDIFEND 未考虑正好在坐标轴上的情形 例 将学生的成绩分为A G 90 B 80 G 90 C 70 G 80 D 60 G 70 E G 60 五等 程序为 INTEGERGREAD GIF G 90 THENPRINT A ELSEIF G 80 THENPRINT B ELSEIF G 70 THEN PRINT C ELSEIF G 60 THENPRINT D ELSEPRINT E ENDIFEND 例 阅读程序 写出程序的运行结果 程序1LOGICALP QREAD 1X 2L4 P QX 0 Y 0IF P X 1 0IF Q Y 1 0WRITE X YEND当从键盘输入FFTTFFTTFFTT 则X Y的值为 程序2READ XIF X 0 THENY 0 0ELSEIF X 15 THENY 1 0ELSEIF X 30 THENY 2 0ELSEY 3 0ENDIFWRITE YEND当X 12 12 22 32时 对应的Y值各为多少 2 3CASE结构 对多重分支选择结构 可以用CASE结构描述 比起块IF嵌套结构来 更加直观简洁 2 3 1CASE结构的形式 CASE结构一般形式 Selectcase case exp case case selector1 CASE块statementscase case selector2 CASE块statements casedefaultDEFAULT块statements EndSelect Selectcase与EndSelect是CASE结构的入口和出口 必须成对出现CASE表达式case exp可以是整型 逻辑型与字符型 但不可以用实型或复型表达式CASE选择器必须与CASE表达式类型一致CASE块可多可少 可以省略 CASEDEFAULT语句应不多于一条 并应放在所有CASE语句之后 CASE选择器是整数时 可以有多种表示法 case 1 case 1 3 5 case 1 5 9 6 case 100 200 case 100 case 120 2 3 2CASE结构的执行过程 计算CASE表达式的值依次比较CASE选择器的值与CASE表达式的值 如果找到相等的就执行相应的CASE块 否则就执行DEFAULT块 2 3 3CASE结构的命名 CASE结构命名方式与块IF结构相仿 Case结构名 Selectcase case exp case case selector1 Case结构名 CASE块statementscase case selector2 Case结构名 CASE块statements casedefault Case结构名 DEFAULT块statements EndSelect Case结构名 2 4选择结构程序设计举例 例 输入一个整数 如果能被7整除则输出 YES 否则输出 NO LogicalLIntegerkRead kL mod k 7 0If L thenprint Yes Elseprint NO EndifeND 例 打印学生成绩等级IMPLICITNONEREALGSELECTCASE INT G CASE 90 100 PRINT A CASE 80 89 PRINT B CASE 70 79 PRINT C CASE 60 69 PRINT D CASE 59 PRINT E CASEDEFAULTPRINT 输入有错 ENDSELECTEND
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!