- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
fortran95教程12.doc
第三篇? 计算任务的剖分与组合
从前,有两个表匠,一个叫霍拉,一个叫坦普斯。两人都很受顾客的欢迎,他们各自的工场中的电话总是响个不停,因为老有新主顾上门。不过,霍拉发了大财,坦普斯却越来越穷,最后连店铺都给亏没了。这是为什么呢?他们做的表都是由1000个零件组成。坦普斯做表的方式是连续地把一只表从头做到尾,如果尚未装完一只表就不得不中途放下(比如说要去接客户电话了),那么装了一半的表就会立刻散掉,又得从头装起。顾客们越喜欢他的表,他的电话就越多,也就越难得到足够的不被打断的时间来装成一只表。霍拉做的表并不比坦普斯的简单。但他经过设计,用十个零件装成一个组件。十个组件又可装成更大的组件。十个大组件构成的系统就是整只表。因此,当霍拉不得不放下装了一部分的表去接电话时,他只损失了一小部分活儿,他装表所用工时只是坦普斯所用工时的一个零头。…在这个寓言里面,我的中心思想是,具有复杂性的系统最好是采取层级结构的形式,而层级结构有一些与系统的具体内容无关的共同性质。我将论证说,层级结构是构造复杂事物的建筑师们所使用的主要结构方式之一。
??????????????????????? ----H.Simon[1]《The Sciences of the Artificial》
?
?
一个计算任务可以很简单,使用几个语句进行描述,执行之后就可以得到结果,但是如果说我们人类使用计算机只是进行那种简单的计算,显然是浪费。而复杂的计算任务,则和任何复杂事物一样,具有非常庞大的内部结构,人类解决复杂问题的一般思路,就是把一个大的结构分解为相对比较小的结构,如果可能就一直分解到非常简单的结构,分别解决了那些简单结构的问题,按照我们分解大问题的逻辑,也就解决了开始的复杂问题。
如何运用程序语言来表达这个解构的思路,就是本篇我们要讨论的主要论题。
首先我们讨论一个FORTRAN程序所可以具有的结构,按照这个语言对程序结构模本的规定,我们就可以规划相应的针对计算任务的问题解构方式。
所谓FORTRAN程序的结构,就是一个FORTRAN程序可以包含那些程序单位,然后这些单位又必须如何组装在一起。
所以我们分类讨论了FORTRAN的程序单位之后,就需要讨论数据流与指令流是如何进行不同程序单位之间的通讯的,通过这种通讯,一个由许多程序单位组成的FORTRAN程序就构成了一个有机的整体,恢复了被支解的问题的本来结构。
特别的,我们还需要讨论最为重要的程序单位,就是过程,它的可执行程序单位的主体。其中FORTRAN语言以标准形式给出的固有过程,相当于为解决常见计算问题而准备的常用工具,熟练使用它们可以达到事半功倍的效果。
[1]
12章 ?程序的单位
一个FORTRAN程序可以由那些单位组成,在第一篇以及第4章都已经简单涉及过,在这里我们要详尽地讨论这个问题,特别是给出每种程序单位的结构与功能。
12.1 ?程序单位
FORTRAN的程序单位分为两大类:
●??? 可执行程序单位;
●??? 不可执行程序单位。
其中可执行程序单位,用来执行一个完整的功能,包括:
●??? 主程序;
●??? 外部函数子程序;
●??? 外部子例行程序子程序。
不可执行程序单位,用来为其他程序单位提供定义,包括:
●??? 模块程序单位;
●??? 数据块程序单位。
因此上面的五种类型的程序单位构成了FORTRAN程序的基本单位,不过在后面我们会看到,数据块程序单位属于早期版本的遗留物,完全是多余的。
一个完整的FORTRAN程序至少需要一个主程序,而且也只能有一个主程序。
一般说来,要完成一个完整的计算任务,除了一个主程序之外,往往还需要有函数以及子例行程序作为辅助,这时,主程序的作用就还包括驱动与管理这些作为过程的外部子程序,使得它们构成一个整体,从而完整地解决相关计算问题。
模块程序单位主要是提供给编程者用来组织程序元素的。一个模块程序单位包含了如下几个方面的内容:
●??? 数据声明;
●??? 派生类型定义;
●??? 过程界面信息;
●??? 供其他程序单位使用的子程序定义。
因此这样一个程序单位本身不是可执行程序单位。
数据块程序单位用于给出命名公用块里面的变量的初始值,因此同样不是可执行程序单位。由于FORTRAN的现代版本引入了模块结构,而模块能够提供全局的数据初始化,因此数据块程序单位几乎可以说是多余的。
由于在第13章我们将专门讨论过程以及过程的应用,因此属于过程的外部函数子程序和外部子例行程序子程序,在本章都只是简略说明,需要详细讨论的是主程序和模块。
各种程序单位里面并不是能够使用任何FORTRAN语句,语句类型与程序单位之间的兼容性在下面的表中予以说明。
表12-1? 语句与程序单元的兼容性
语??? 句 主程序 模块说明部分 数据块 外部子程
您可能关注的文档
最近下载
- 2025高考数学冲刺复习:立体几何与空间向量(试卷+答案解析).pdf VIP
- 侵犯名誉权与隐私权的法律规定与应对策略.pptx VIP
- 武汉体育学院专业技术职务量化评审办法试行.doc VIP
- 网络侵权培训课件案例.pptx VIP
- 2023-2024学年广东省珠海市凤凰中学八年级(上)竞赛物理试卷(附答案解析).docx VIP
- 2025年东海中学八年级物理竞赛试卷及答案.doc VIP
- EN 50530-2010+A1-2013 并网光伏逆变器的整体效率.pdf VIP
- 初三化学上册第四单元自然界的水各节习题.doc VIP
- 武汉体育学院教师专业技术职务任职资格申报评审条件【参考】.doc VIP
- 初中数学专题:一次函数背景下的动点问题(含答案).docx VIP
文档评论(0)