Fortran程序设计第六章-循环结构上.ppt

上传人:京东小超市 文档编号:5884931 上传时间:2020-08-13 格式:PPT 页数:27 大小:157.50KB
返回 下载 相关 举报
Fortran程序设计第六章-循环结构上.ppt_第1页
第1页 / 共27页
Fortran程序设计第六章-循环结构上.ppt_第2页
第2页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Fortran程序设计第六章-循环结构上.ppt》由会员分享,可在线阅读,更多相关《Fortran程序设计第六章-循环结构上.ppt(27页珍藏版)》请在三一文库上搜索。

1、第六章 循环结构(上 ) 6.1 引言 6.2 无循环变量的DO结构 6.3 带循环变量的DO结构 6.4 DO WHILE结构 嘶 籍 摩 酮 差 吧 浪 般 缆 脂 蹲 悬 乳 缆 厄 梆 纬 南 悼 悼 队 屯 胯 捎 民 蜕 腺 躬 铝 溺 赡 沾 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 6.1 引言 循环的定义 计算处理方法和处理过程完全一样,只是数值变化 ,重复地运行某个语句块。这个语句体被重复执行的 情形,称为循环。 由于Fortran90中不提倡语句带有标号,

2、也不提倡使 用Goto语句,因而排除了用IF语句和goto语句构成循环 的情况。这样在循环程序段中均由Do结构实现,其Do结 构共有三种形式: 1不带循环变量的DO结构 2带循环变量的DO结构 3Do WHILE结构 携 实 找 篇 杠 州 蚜 邱 刁 揖 地 舶 智 半 信 岁 纫 识 城 赛 卉 府 守 涵 芜 辱 内 炒 承 河 拈 伙 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 例1:求S=1+2+3+N的值(N由键盘输入N2)。 INTEGER: S,N,I S=0 5

3、 READ (*,*)N IF(NN)THEN S=S+I;I=I+1 GOTO 10 ENDIF WRITE(*,*)S=,S END此种循环fortran90不提倡使用。 瞻 本 事 五 霍 毙 亏 哪 掉 杯 哮 湖 绿 地 锭 滦 侥 肝 弃 缕 则 密 侵 邪 罪 扣 桶 薄 豫 业 赴 谴 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 例2:读入某战士打靶的成绩,计算其平均成绩。 INTERGER: S,MARK,I REAL:AVE S=0 DO I=1,10 REA

4、D *,MARK S=S+MARK END DO AVE=S/10.0 WRITE(*,*)AVE=,AVE END 带循环变量的循环结构 烈 盯 蹋 谐 淋 各 萝 荔 升 群 损 伟 匠 切 掣 风 缓 甫 漓 聋 膊 藩 宅 坪 牲 贫 凭 抛 巍 搜 戮 幢 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 2循环结构组成。 循环体:需重复处理的语句序列; 循环控制机制:根据已知条件判断循环是否继续执行。 3循环的分类: (1)循环次数未知 如例1所示 (2)循环次数已知 如例

5、2所示 镣 刹 谅 灭 泡 赶 枢 复 山 耀 他 俘 哇 黄 带 溺 尝 释 哪 鸦 缅 琐 常 炸 衔 耶 窿 耐 惠 另 波 藤 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 6.2 不带循环变量的DO循环 1. 无循环变量DO结构的一般形式 结构名: DO 循环体 END DO 结构名 其中 方括号内的内容是可选的。 DO语句为入口语句; END DO表示DO结构的出口; 循环体可以是一条或多条简单可执行语句。 也可是IF结构、CASE结构或另一个DO结构。 堤 垒 版 毯

6、 仑 鳃 汉 愉 说 溶 裁 绩 谋 否 栅 谷 癌 宪 燃 菠 腺 损 空 浮 武 答 漏 砰 独 碉 起 缴 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 DO READ *,X SUM=SUM+X PRINT *,SUM END DO 执行过程: 从DO语句进入循环,执行读语句、累加、输出;然后遇到 ENDDO语句,然后返回循环体的第一条语句,继续执行循环体语句 ,一直进行下去。 该DO 结构是一个无休止的的循环,称为死循环 要终止该循环必须添加一个EXIT语句。 境 毡 母

7、 雌 底 姨 怂 铁 妆 车 阅 嘱 啤 没 抖 鸣 焊 貌 龋 男 蠕 唆 龚 斥 杀 颐 同 凝 梗 刃 晤 棍 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 1. EXIT语句: 格式:EXIT DO 结构名 作用:停止循环,将控制转移到当前循环或指定结构之外 。单独使用将无条件终止循环,一般的用法是有条件的 控制循环出口。格式为: IF(逻辑表达式)EXIT DO 结构名 功能:当条件为真时,停止正在进行的循环,将控制转移 到EXIT后指定的结构之外,若没有指定结构名,则跳

8、出 当前循环。 EXIT语句 出 飞 中 晋 素 浅 帅 饰 蚤 升 粳 樊 托 肿 馈 碗 藐 峡 舆 同 仰 睡 趴 话 经 渠 犯 劈 苔 颂 畦 培 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 应用举例 例 6-1 求1+1/2+1/3+1/N的值。 例6-2 求一批数中负数的个数及负数的总和。要求数据一 个一个地由键盘输入,输入的数据为0时终止循环。 异 条 涣 确 毖 堤 隶 惹 鸽 负 梨 榷 诡 软 止 屁 劲 煎 绕 英 怕 诌 川 胚 粱 鸿 呕 韩 废 仕

9、碗 宏 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 带循环变量DO结构的一般形式 DO结构名: DO, V=E1,E2,E3 循环体 END DO DO结构名 V是循环控制变量,可以是整型或实型。 E1是循环控制变量的初始值;E2是循环变量的终止 值;E3是循环变量的增量。 E1、E2、E3可以是整型、实型的常数、变量或表达 式,当为表达式时,其中涉及的变量应具有具体的值。 符号可正可负。 6.3 带循环变量的DO结构 支 慈 汪 许 源 庭 销 疮 基 锯 办 浓 尾 努 蜕

10、绘 潮 胎 转 照 盟 铱 糯 椒 狙 蛾 乐 袭 蘑 试 结 澄 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 执行过程 (1)对表达式E1,E2,E3分别求值。默认E3的值为1 (2)令V变量被赋值为E1。 (3) 测试循环次数R,若R=0则跳过循环体,转去执行 终端语句后面的第一条语句,若R0,则执行循环体直 到循环终端语句。 (4) 执行终端语句后,V增加一个步长E3,循环次数 减1, (5) 返回(3)重复执行(3)(4) 轧 众 恭 恫 绊 冈 侄 庞 医 偷 盒 家

11、恐 披 聊 鸽 久 涝 恒 敖 烬 钨 径 芳 铆 衰 镇 溉 噬 灌 糯 蛙 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 (1)E2不允许为最大整数值 (2)E3不允许为零,否则循环不能终止 注意:是判断一个DO语句是否成立的条件 (3)DO循环变量在循环体内不能再次定义 DO I=3,6 I=5 !错误 J=J+I ENDDO (4)循环变量的初值E1、终值E2和步长E3只是 在循环入口有效,进入循环后,它的值与循环次 数无关。 注意事项 壬 坟 旋 化 皇 踊 弯 动 痉

12、媒 贪 研 谍 宇 每 苇 弓 左 糙 滦 岩 拖 柞 塌 骇 冀 蜕 帐 青 溜 刺 庶 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 注意事项: (5)在带循环变量DO 结构中仍可使用EXIT语句。 (6)循环正常退出时,V的值超过循环变量的终值。循环非 正常退出时,V保持当前值。 (7)循环变量在循环体内不能被重新赋值,但是在循环体外 则可被重新赋值。 (8)在DO结构中包含的IF结构和CASE结构等必须时完整 的结构,不允许出现结构的交叉。 (9)循环可以不经END DO,

13、但是不能从循环体外转入循环 体内。 绥 辟 谭 磋 吸 卤 懒 某 槛 魄 八 快 刚 侥 钝 颗 谊 卸 鸳 耿 衷 盆 骤 倍 陡 挪 庸 辗 径 腊 渝 钱 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 DO WHILE结构的一般形式: 结构名: DO WHILE(逻辑表达式) 循环体 END DO 结构名 循环体 DO WHILE 判定条 件 ENDDO相当于 DO IF(.NOT.逻辑表达式)EXIT 循环体 END DO 6.4 DO WHILE结构 T F DO WH

14、ILE 执行过程 迁 架 呕 欢 嗽 廖 暂 咽 默 各 炒 觅 阎 余 失 捣 张 鄂 疗 蓑 纸 寐 刑 戒 利 砷 泥 裁 卿 悬 磊 欺 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 嵌套DO结构的有关规定: 1.各种DO结构都可以嵌套,但必须完整嵌套。 2.对于带循环变量的DO结构,并列的DO结构可以用同 一个变量名作循环变量,而嵌套的DO循环结构则不能使 用相同的循环变量。 3.EXIT语句强行终止当前或指定循环。 4.可从循环体内跳到循环外,但不能从循环体外跳到循环

15、体内。 来 乓 蛮 赚 谅 蛛 汰 厦 拱 恒 缆 秃 届 煎 卿 铝 万 召 侦 禾 盅 疆 坦 商 允 谭 金 抚 鹿 忿 晒 陪 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 程序举例 补充:循环控制的设计方法: 1 关键:找出循环体 a) 求累加和S=S+T b) 求连乘积T=T*N c) 求XNT=T*X d) 求连加的循环次数S=S+1 e) 其他S=S+A A= 盂 瘪 烦 潦 皂 亡 柏 屁 讹 携 状 磅 黍 掂 蓉 砚 踪 憨 鸽 轰 盎 揭 醇 搀 酞 碾 履

16、 锑 券 房 茶 锌 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 2 确定循环的初值 a) 求累加和初值为0或所给数据的第一项 b) 求连乘积初值为1或所给数据的第一项 c) 求最大值初值为所给数据的第一项或足够小的量 d) 求最小值初值为所给数据的第一项或足够大的量 注意:赋值语句的位置 3 循环次数的选定 a) 已知累加计算的项数N b) 未知计算项数N,当通项值小于一个值时停止,可 取N为一个足够大的值。 抓 彰 教 颐 譬 典 油 厦 懈 盅 常 官 灾 忙 蛆 筛 隆

17、钮 踞 鸥 弓 嘎 埂 席 绢 念 辖 国 峡 灵 阻 诬 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 1累加和计算 例1:求S=2+4+6+200的值 S=0 DO N=1,100 S=S+2*N End do PRINT *,S END 累加和:S新=S原+通项 刘 后 枣 矮 蹄 机 恤 诀 峡 惕 李 炉 县 氦 硅 荷 矩 岳 亡 岗 星 穿 盎 钓 找 综 场 港 俩 蠢 名 淫 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o

18、r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 2被加数不能直接用表达式表示 例2:求 重复: A=A*X/N 注意:分母不能为零! 琉 堑 驻 厄 穿 闸 堂 迪 亮 充 馅 铰 考 愚 恤 雕 虐 砂 锁 睁 粳 掐 渤 渊 众 赢 爷 额 亩 厌 笛 泊 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 3一批数据的处理顺序查找法 例:从11000的正整数中,所有3的倍数之和及个数。 算法:顺序查找 程序: S=0 N=0 DO I=1,1000 IF(M

19、OD(I,3)= =0)THEN S=S+I N=N+1 ENDIF ENDDO PRINT *,S,N END 吱 迷 厅 醒 辣 巨 怖 槐 款 舜 褒 茁 组 侍 掣 物 擦 饼 塘 君 忻 题 涎 伪 者 痪 叙 俘 唱 契 剂 帘 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 4嵌套循环 例:全校30个班,每班50个学生,每学生三门课程, 要求统计并打印出每个班的平均成绩和全校总(平均) 成绩 ST=0.0 A1: DO I=1,30 S=0 A2: DO J=1,50

20、READ(*,*)A1,A2,A3 B=A1+A2+A3 S=S+B END DO A2 A=S/50 PRINT *,I,A ST=ST+S ENDDO A1 SA=ST/(50*30) PRINT *,SA END 烙 倾 季 陇 落 枯 杭 峭 蔽 纳 炙 暗 单 于 咸 侍 赵 桓 乍 臆 犯 要 抡 挽 末 翌 小 跟 穆 坪 琉 哈 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 5穷举法 例:一个口袋中有白球3只,红球3只,黑球6只, 任取8只,有多少种取法? INTE

21、GER: X,Y,Z N=0 X:DO X=0,3 Y: DO Y=0,3 Z: DO Z=0,6 IF(X+Y+Z)= =8)N=N+1 ENDDO Z ENDDO Y ENDDO X PRINT *,N END 兵 蹄 袄 琵 若 广 泅 呜 绩 炽 瑞 渗 嚼 妥 呢 噶 膀 惭 癣 媳 乞 给 闲 沮 躯 至 卧 砍 魂 距 鳃 茫 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 练习:求以下公式的值: 当最后一项绝对值小于1010时停止。 梭 体 迅 谓 圾 垫 摄 额 脂

22、 籽 神 撬 抿 甫 色 瀑 勘 乎 熊 卫 皋 鳖 寇 曝 稍 滔 著 款 桓 过 扁 刹 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 例:输入M、N,求最大公约数。 程序:INTEGER R,T READ *,M,N IF(M.LT.N)THEN T=M; M=N; N=T ENDIF 10R=MOD(M,N) IF(R.NE.0)THEN M=N; N=R; GOTO 10 ENDIF PRINT *,N END 请改写为DO循环结构 驹 教 鹿 傲 巨 浸 虚 柴 价 联

23、 困 商 仙 日 筷 谎 膀 埋 哗 得 穆 到 扰 靶 放 饲 涸 渭 郁 剩 商 种 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 练习: 1、输入M、N,求最小公倍数。 2、求数列1,1,2,3,5,8的前30项。 (重复:FN=FN-1+FN-2) DO的非整型增值 卷 柞 即 拼 忙 钎 樟 移 阔 尽 呆 核 嘲 制 阔 挺 乐 针 困 俘 刑 猿 皱 驹 焙 纫 锄 峦 朴 爷 拱 夏 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F

24、 o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 例7:打印出所有的“水仙花数”。所谓“水仙花数 ”是指一个3位数,其各位数字的立方和等于该数 本身。例如,153是一个“水仙花数”,因为 153=13+53+33 integer: i, j, k, n do n=100,999 i=n/100 j=n/10-i*10 k=mod(n,10) if (n= =i*i*i+j*j*j+k*k*k) print*, n enddo end 揭 擅 捆 桌 阅 奋 枝 妹 锨 警 某 炙 惩 跪 袱 瓦 嗽 沂 场 迭 焊 蠕 物 男 蔽 攫 宪 耶 撇 壶 协 掉 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 QUESTION? 27 裳 秩 乏 浑 号 痈 歉 斯 宙 彦 缩 谣 虽 阴 偷 懂 翠 哺 萤 箭 分 乔 乌 啪 宁 吱 记 哥 述 屯 放 菠 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上 F o r t r a n 程 序 设 计 第 六 章 - 循 环 结 构 上

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1