Fortran逻辑运算和选择结构.ppt

上传人:max****ui 文档编号:6345996 上传时间:2020-02-23 格式:PPT 页数:25 大小:935.55KB
返回 下载 相关 举报
Fortran逻辑运算和选择结构.ppt_第1页
第1页 / 共25页
Fortran逻辑运算和选择结构.ppt_第2页
第2页 / 共25页
Fortran逻辑运算和选择结构.ppt_第3页
第3页 / 共25页
点击查看更多>>
资源描述
第八章常用算法的程序设计举例 第一章算法 第二章计算机和计算机程序 第四章逻辑运算和选择结构 第五章循环结构的实现 第六章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 A elsewrite B endifelsewrite C endifelsewrite D endifend 成绩分级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 A elsewrite B endifelsewrite C endifelsewrite D endifend 为了避免过多的块IF嵌套 FORTRAN还提供了ELSEIF语句来处理 否则 如果 的情况 read gradeif grade ge 60 thenif grade ge 70 thenif grade ge 80 thenwrite A elsewrite B endifelsewrite C endifelsewrite D endifend read gradeif grade ge 80 thenwrite A elseif grade ge 70 thenwrite B elseif grade ge 60 thenwrite C elsewrite D endifend 几点说明 2 ELSEIF语句不需ENDIF语句与之对应 3 一个块IF可以有多个ELSEIF语句 除非有块IF嵌套否则只能有一个ELSE语句 1 ELSEIF语句相当于把ELSE语句和其下一行的块IF语句连结成一个语句 4 当处理多分支选择时 用ELSEIF语句往往比较方便 5 ELSEIF是在 条件为假 的分支中再继续进行分支处理的 故在处理多分支的选择时 要把出现几率高的条件写在前面 以提高效率 read gradeif grade ge 80 thenwrite A elseif grade ge 70 thenwrite B elseif grade ge 60 thenwrite C elsewrite D endifend read gradeif grade le 60 thenwrite D elseif grade le 70 thenwrite C elseif grade le 80 thenwrite B elsewrite A endifend 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 A if grade ge 70 and grade lt 80 write B if grade ge 60 and grade lt 70 write C if grade lt 60 write D end read gradeif grade ge 80 write A if grade ge 70 write B if grade ge 60 write C write D end C单价850 100以上95折优惠 求货款 price 850read nif n ge 100 price price 0 95amount n pricewrite n n amount amountend
展开阅读全文
相关资源
相关搜索

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


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

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


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