fortran90程序设计chapter7

fortran90程序设计chapter7

ID:2262516

大小:271.50 KB

页数:26页

时间:2017-11-15

fortran90程序设计chapter7_第1页
fortran90程序设计chapter7_第2页
fortran90程序设计chapter7_第3页
fortran90程序设计chapter7_第4页
fortran90程序设计chapter7_第5页
资源描述:

《fortran90程序设计chapter7》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、7.1循环结构概述第七章循环结构程序设计循环结构是三种基本控制结构之一。使用循环结构是优化程序结构的一种有效方法。本章将详细介绍循环结构及其程序设计方法有关内容。7.1循环结构概述7.1.1循环及循环结构在求解复杂问题时,常常遇到大量重复或相似的处理过程(计算过程、操作过程)。对于这些处理过程,我们不难按顺序结构设计和编写程序。例如:从键盘输入5个数,求5个数之和,并打印输出计算结果。求解这个问题,我们甚至会不假思索地采用顺序结构设计出求解算法,编写出相应程序。求解算法如下:(1)初始化:赋初值0.0至sum。(2)输入一个数x,并累加到sum中。(3)输入一个数x,

2、并累加到sum中。(4)输入一个数x,并累加到sum中。(5)输入一个数x,并累加到sum中。(6)输入一个数x,并累加到sum中。(7)输出结果sum。(8)结束。根据上述算法,编写程序如下:sum=0.0READ*,xsum=sum+xREAD*,xsum=sum+xREAD*,xsum=sum+xREAD*,xsum=sum+xREAD*,xsum=sum+xPRINT*,'sum=',sumEND1937.1循环结构概述在上述算法中,第2至第6步的处理过程完全相同。在程序中,下面2条语句依次重复出现5次:READ*,xsum=sum+x这是一个典型的重复处理问

3、题。对于这类问题,如果问题规模比较小(如处理5个数),则设计的算法和编写的程序不会感到有何不足之处,相反还给人以简洁、清晰、直观的感觉。问题是当求解规模增大时(如处理100个数据),则算法中的处理过程“输入一个数x,并累加到sum中”将增加到100个,算法设计人员要机械地重复写100个这样的处理过程,同样程序中的重复语句也增加至100组,程序员要机械地重复写200条这样的语句。从中可以看出,采用顺序结构不但大大增加了算法和程序长度,增加了存储开销,而且也大大降低了设计算法和编写程序的效率,浪费了程序设计人员宝贵的时间和精力。求解这类问题的有效办法是采用循环结构,FOR

4、TRAN90提供了循环语句用于实现循环结构。对于上述问题,采用循环结构设计算法如下:(1)初始化:赋初值0.0至sum,即0.0Þsum。(2)1ÞI。(3)如果I≤5,则执行步骤(4),否则执行步骤(7)。循环体(4)输入一个数x,并累加到sum中。(5)I+1ÞI。(6)转步骤(3)。(7)输出结果sum。(8)结束。对于上述问题,采用循环语句编写程序如下:sum=0.0DOI=1,5READ*,xsum=sum+xENDDOPRINT*,'sum=',sumEND循环体对于顺序结构,其算法步数和程序行数与问题规模成正比,当问题规模从5个数增加到100个数时,算法

5、步数从8步增加至103步,程序行数从13行增加至203行。而对于循环结构,当问题规模从5个数增加到100个数时,算法步数也是8步,程序行数从13行降低至7行,算法步数和程序行数与问题的规模大小几乎无关。在算法或程序中,重复地执行某个处理过程或语句块(程序段、语句组)的情形称为循环,被重复执行的处理过程或语句块称为循环体,具有循环特征的程序结构称为循环结构,将重复执行的处理过程或语句块设计成循环结构或编写成循环语句的过程称为循环设计,具有循环结构和循环语句的程序称为循环程序。1937.1循环结构概述[例7.1]求S=1+2+3+…+N的值(N由键盘输入,N>2)。编写程

6、序。解:求解这一问题,将执行N-1次加法运算,如果将等式写成S=0+1+2+…+N,则执行N次加法运算,不同的是参与运算的操作数不同而已。显然该问题易采用循环结构实现之。用整型变量S保存和值,用N保存求和最大值,用I作计数器。编写程序如下:INTEGERS,N,IREAD(*,*)NS=0DOI=1,NS=S+IEDNDOWRITE(*,*)'S=',SEND循环体[例7.2]读入某班级考试成绩(人数不定),计算其平均成绩,并输出。编写程序。解:由于学生人数不定,所以输入的学生成绩个数不确定,以输入-1作为结束标志(因为成绩不可能为负数),从而动态确定学生人数n。平均

7、成绩计算公式是:av=(x1+x2+…+xn)/n对于计算平均成绩问题,核心问题是一个求和问题,类似[例7.1]问题。程序易采用循环结构和循环语句来实现。编写程序如下:INTEGERsum,n,xREALavsum=0;n=0READ*,xDOWHILE(x<>-1)n=n+1sum=sum+xREAD*,xENDDOav=sum/nWRITE(*,*)'平均成绩为:',avEND循环体从上述例题中可看出,循环结构或循环语句由两部分组成:一部分是循环体,指需要重复执行的处理过程(语句序列、语句块);另一部分是循环控制机制,指根据条件判断循环体是否继续

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。