fortran循环结构及基本语句.ppt

上传人:max****ui 文档编号:6345768 上传时间:2020-02-23 格式:PPT 页数:20 大小:436.81KB
返回 下载 相关 举报
fortran循环结构及基本语句.ppt_第1页
第1页 / 共20页
fortran循环结构及基本语句.ppt_第2页
第2页 / 共20页
fortran循环结构及基本语句.ppt_第3页
第3页 / 共20页
点击查看更多>>
资源描述
第五讲循环结构及基本语句 5 1循环结构概述 循环结构分为两类 循环体的循环次数事先确定 如 例5 1 中循环结构 这类循环结构称为确定性循环 或称 计数型 循环 使用计数型循环语句 如DO循环语句 实现这类循环结构 循环次数为 MAX 终值 初值 步长 1 0 循环体的循环次数事先不确定 如 例5 2 中循环结构 这类循环结构称为非确定性循环 或称 条件型 循环 使用条件型循环语句 如DOWHILE循环语句 实现这类循环结构 条件型循环又分 当型 循环和 直到型 循环 例5 1 求S 1 2 3 N的值 N由键盘输入 N 2 编写程序 解 求解这一问题 将执行N 1次加法运算 如果将等式写成S 0 1 2 N 则执行N次加法运算 重复问题易采用循环结构实现 用S保存和 用N保存最大求和值 用I作计数器 编写程序如下 Programex2INTEGERS N IREAD NS 0DOI 1 N 1S S IEDNDOWRITE S SEND 例5 2 读入某班级考试成绩 人数不定 计算其平均成绩 并输出 解 由于学生人数不定 所以输入的学生成绩个数不确定 以输入 1作为结束标志 因为成绩不可能为负数 从而动态确定学生人数n 平均成绩计算公式是 av x1 x2 xn nProgramex3INTEGERsum n xREALavsum 0n 0READ xDOWHILE x 1 n n 1sum sum xREAD xENDDOav sum nWRITE 平均成绩为 avEND 5 2使用DO循环语句实现计数型循环 DO ENDDO 说明 v为循环变量 一般为整型变量 用来控制循环次数 e1 e2和e3为表达式 其类型与循环变量类型相同 e1代表循环变量v的初值 e2代表循环变量v的终值 e3代表循环变量v的步长 e3可缺省 e3缺省指e3为1 循环次数计算公式是 MAX e2 e1 e3 1 0 如果e3 0 则一般要求e1 e2 否则循环次数为0 即循环体一次也不执行 如果e3 0 则一般要求e1 e2 否则循环次数为0 即循环体一次也不执行 在循环体中可引用循环变量v的值 但不能赋值 即修改它的值 DO循环语句执行过程说明 下面DO循环语句的循环次数为5 M 1 N 5 L 1DOI M N 5 L 1 输出1 3 5 7 9write I M N LM M 1 N N I L 2 L IENDDO程序运行后 输出结果为 11513253531597475239552553 5 3使用DOWHILE循环语句实现循环 DOWHILE循环语句在每次循环体执行前都要计算表示循环控制条件的逻辑表达式 其计算结果决定循环体是否继续执行 循环体的执行过程必须对循环控制条件产生影响 5 4使用IF和GOTO语句实现循环 用IF语句实现选择结构 用GOTO语句实现无条件控制转移 两者结合可实现循环结构 特别是 直到型 循环结构 IF语句给出循环条件 GOTO语句控制循环转移 由于GOTO语句易造成程序错误 故现代程序设计方法不提倡使用此法实现循环 ProgramINTEGERM N R1 R2 R3 gcd lcmread 输入两个自然数 read M NR1 M R2 N100R3 MOD R1 R2 求R1除以R2的余数R1 R2 R2 R3IF R2 0 GOTO100 或IF R2 0 THEN ELSE GOTO100 ENDIFgcd R1 lcm M N gcdWRITE 1X I3 和 I3 的最大公约数为 I3 M N gcdWRITE 1X I3 和 I3 的最小公倍数为 I3 M N lcmEND 5 5强制性终止循环 EXIT CYCLE 一般情况下 循环过程都是正常结束 有些特殊问题 在循环处理过程中遇到特殊情况需要提前终止本次循环或整个循环 以免循环陷入死循环 造成严重后果 终止循环过程有两条语句 EXIT CYCLE EXIT功能 在循环体执行过程中强制性终止整个循环语句的执行 转循环语句后的第一条语句执行 只能在DO和DOWHILE循环语句内使用EXIT语句 CYCLE功能 在循环体执行过程中强制性终止本次循环的执行 转循环开始语句 DO语句 执行 只能在DO和DOWHILE循环语句内使用CYCLE语句 5 6特殊DO循环语句与EXIT语句 ProgramINTEGERM N R1 R2 R3 gcd lcmWrite 输入两个自然数 READ M NR1 M R2 NDOIF R2 0 EXITR3 MOD R1 R2 求R1除以R2的余数R1 R2 R2 R3ENDDOgcd R1 lcm M N gcdWrite 1X I3 和 I3 的最大公约数为 I3 M N gcdWrite 1X I3 和 I3 的最小公倍数为 I3 M N lcmEND 5 7循环嵌套 前面介绍的循环结构和循环语句都是一层循环 许多实际问题的求解算法和程序往往具有多重循环结构 多重循环结构称为循环嵌套 循环嵌套是指在一个循环结构或循环语句的循环体中又含有循环结构或循环语句 对于n层循环嵌套称为n重循环 嵌套的循环层数原则上不限 但不易太多 计数型 当型 直到型循环结构都可相互嵌套 DO语句 DOWHILE语句 特殊DO循环语句都可相互嵌套 根据实际问题的求解需要决定循环嵌套的形式和层数 如果有n重循环 且循环次数分别为r1 r2 rn 则一般最内层循环体的循环总次数为 r1 r2 rn 例5 8 求 解 求解这一问题的算法结构具有 计数型 循环结构与 计数型 循环结构嵌套的二重循环结构 程序中用两个DO循环语句嵌套来实现二重循环结构 例5 12 根据下面泰勒级数求x的正弦值 解 我们已经熟悉FORTRAN90提供的SIN x COS x EXP x 等内部函数 我们可直接使用这些内部函数计算正弦 余弦 指数等值 那么这些函数是如何计算的呢 一般都是通过其泰勒级数计算 下面我们不用内部函数 自己编写程序计算正弦值 然后与内部函数计算值进行比较 遇到这类问题 必须将泰勒级数用通项公式表示 然后得出迭代公式 其中 n 1 2 3 设 Tn 1 n 1x2n 1 2n 1 Tn 1 1 x2 2n 2 2n 1 n 1 2 3 sinx T1 T2 Tn Tn 1 10 7 10 7决定了计算精度 上述计算问题变成了一个求和问题 可用一个DOWHILE语句实现 根据分析 设计算法 编写程序 PROGRAMSin xPARAMETER pi 3 14159278 eps 1E 7 INTEGER n 1 maxterms 10REALx T sinxWRITE A ADVANCE NO 输入一个度数值 READ xx x pi 180 转换为弧度值T x sinx TDOWHILE ABS T eps AND neps THENwrite 发散级数 不能得到结果 ELSEwrite 程序计算得到的正弦值 sinxwrite FORTRAN90内部函数值 SIN x ENDIFEND 输入数据 输入一个度数值 45 输出结果为 程序计算得到的正弦值 0 7071068Fortran90内部函数值 0 7071068 1 输入x值 x 1 按下列公式计算s 精度要求5位有效数字 最后一项 10 5 编写程序实现之 2 输入x 用迭代法按下列迭代公式求的值 初始值y0 x 精度要求4位有效数字 编写程序实现之 P194页9 10题 5 8习题
展开阅读全文
相关资源
相关搜索

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


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

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


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