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

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
fortran循环结构和基本语句

* 第五讲 循环结构及基本语句 5.1 循环结构概述 对于问题规模较大的重复问题适宜采用循环结构。 如:从键盘输入50个数,求50个数之和,并输出。 求解算法: 求解程序: (1)初始化:0.0?sum。 (2)1?I。 (3)如果I50,则执行步骤(7)。 (4)输入一个数x,并累加到sum中。 (5)I+1?I。 (6)转步骤(3)。 (7)输出结果sum。 (8)结束。 对于上述算法和程序,不管程序规模多大,长度不变。 Program ex1 sum=0.0 DO I=1,50,1 READ(*,*) x sum=sum+x ENDDO WRITE(*,*)sum=, sum END 循环结构分为两类: 循环体的循环次数事先确定(如[例5.1]中循环结构),这类循环结构称为确定性循环,或称“计数型”循环,使用计数型循环语句(如DO循环语句)实现这类循环结构。循环次数为:MAX(?(终值-初值)/步长+1?,0)。 循环体的循环次数事先不确定(如[例5.2]中循环结构),这类循环结构称为非确定性循环,或称“条件型”循环,使用条件型循环语句(如DO WHILE循环语句)实现这类循环结构。条件型循环又分“当型”循环和“直到型”循环。 初值?循环变量v v≤终值 v+步长?v 假 真 计数型 判定条件 判定条件 循环体 假 真 循环体 假 真 当型 直到型 [例5.1] 求S=1+2+3+…+N的值(N由键盘输入,N2)。编写程序。 解:求解这一问题,将执行N-1次加法运算。 如果将等式写成S=0+1+2+…+N,则执行N次加法运算。 重复问题易采用循环结构实现。 用S保存和,用N保存最大求和值,用I作计数器。编写程序如下: Program ex2 INTEGER S,N,I READ(*,*)N S=0 DO I=1,N,1 S=S+I EDNDO WRITE(*,*) S=,S END [例5.2] 读入某班级考试成绩(人数不定),计算其平均成绩,并输出。 解:由于学生人数不定,所以输入的学生成绩个数不确定,以输入-1作为结束标志(因为成绩不可能为负数),从而动态确定学生人数n。 平均成绩计算公式是:av=(x1+x2+…+xn)/n Program ex3 INTEGER sum,n,x REAL av sum=0 n=0 READ(*,*)x DO WHILE (x/=-1) n=n+1 sum=sum+x READ(*,*)x ENDDO av=sum/n WRITE(*,*) 平均成绩为:,av END 5.2 使用DO循环语句实现计数型循环 DO循环语句→[名字:] DO v=e1,e2[,e3] 语句1 语句2 …… 语句n ENDDO [名字] 说明: ①v为循环变量,一般为整型变量,用来控制循环次数。e1、e2和e3为表达式,其类型与循环变量类型相同。e1代表循环变量v的初值,e2代表循环变量v的终值,e3代表循环变量v的步长,e3可缺省,e3缺省指e3为1。 ②循环次数计算公式是:MAX(?(e2-e1)/e3 + 1? ,0)。 ③如果e30,则一般要求e1≤e2,否则循环次数为0,即循环体一次也不执行。 ④如果e30,则一般要求e1≥e2,否则循环次数为0,即循环体一次也不执行。 ⑤在循环体中可引用循环变量v的值,但不能赋值,即修改它的值。 DO循环语句执行过程说明:下面DO循环语句的循环次数为5: M=1;N=5;L=1 DO I=M,N+5,L+1 !输出1、3、5、7、9 write(*,*)I,M,N,L M=M+1;N=N*I;L=2*L+I ENDDO 程序运行后,输出结果为: 1 1 5 1 3 2 5 3 5 3 15 9 7 4 75 23 9 5 525 53 计算表达式e1,e2,e3 e1 ? v 计算循环次数r:MAX(INT((e2-e1)/e3+1),0)?r r ? 0 执行循环体 v+e3 ? v r-1 ?

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档