FORTRAN95第六章.ppt

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

第六章 Fortran 过程程序设计 本章介绍Fortran 95语言中过程的程序设计 方法。通过本章的学习, 应了解Fortran过程 的基本概念,掌握Fortran的外部过程(函数子 程序?子例行子程序) 和内部过程的定义和调 用方法, 理解公用语句与等价语句的形式与作 用,了解数据块子程序的形式及作用。 6.1 FORTRAN过程概述 一个FORTRAN程序由若干个程序单元组成。程序单元可以是主程序单元、外部程序单元、模块程序单元或数据块程序单元。其中,只能包含一个主程序单元。 所谓过程,是指一些由系统提供或用户自己编写的程序块。 在解决实际问题时,为了降低问题的复杂程度,常常把一个大问题分解为若干个小问题,然后再把这些小问题分解为更小的问题,这样重复下去,直到各个小问题都能解决为止。这样,原来的问题就可以解决了。在程序设计中,也往往遵循这样的思想,将程序的功能逐步分解成若干个子功能,每个子功能还可以再分解为更小的若干个子功能,直到每个子功能都可以较简单地实现,也就是说,采用“自顶向下?逐步求精”的方法,将一个大型程序的设计任务分解成若干个较小的子任务来完成。这就是模块化程序设计方法,它是构成大型复杂软件的一种重要方法,是结构化程序设计的主要手段。FORTRAN语言中的“过程”就是实现这一方法的重要工具。 在Fortran 95语言中包括以下过程: 内部过程(internal procedure) 内部过程是在程序单元内部定义而且只能被该程序单元调用的过程。内部 过程也称为标准过程。 外部过程(external procedure) 外部过程是在某个外部程序单元中定义的独立过程,或是用非Fortran语言 编写的过程。Fortran的外部过程包括函数子程序和子例行子程序。 模块过程(module procedure) 模块过程是在模块中定义, 可以被所有使用该模块的程序调用的过程。包 含过程的模块称为宿主。 内在过程(intrinsic procedure) 内在过程是由编译系统内部定义, 不用任何附加声明或说明就可以可直接 引用的过程。 哑过程(dummy procedure) 如果一个哑元(形式参数)被指明为过程或作为过程名出现在过程引用中,那 么该哑元代表的过程为一个哑过程。 语句函数(statement function) 语句函数是由单个语句定义的函数。Fortran 95不推荐使用,因为它不符合 过程的一般规则。建议使用内部过程替代它。 下面通过例子介绍语句函数的用法。 例6.1 利用梯形法 计算定积分的值。 语句函数定义的形式为: 语句函数名([哑元名表])=表达式 语句函数定义语句,必须出现在其它说明语句之后?第一个可执行语句之前 program ex601 implicit none real::a=0.0,b=1.0,s=0.0,h,f,x integer::n,i f (x)= 1.0/(1+x) !语句函数f的定义语句 write(*,(输入等分区间的个数n:) ,advance=no) read *,n h=(b-a)/n do i=1,n-1 s=s+f (a+i*h) !调用语句函数f的语句 end do s=h*(f (a)+f (b)+2.0*s)/2.0 !调用语句函数f write ( *,(定积分的值为: ,f10.6))s end 程序执行示例: 输入等分区间的个数n:100 定积分的值为: 0.6931533 前面所举的程序例子,大多只有一个主程序块。实际上fortran 程序通常是由多个程序块组成的。各程序块之间是相互独立 的,即各程序块中的变量名? 数组名?语句函数和语句标号只 在本块中有效。本章重点介绍外部过程(函数子程序和子例行 子程序),以及与过程相关的一些语句。 6.2 外部函数子程序 由fortran语言提供的内在过程,虽然在任何程序单元中都可以随意调用,但是仅仅限于内在过程远远不能满足许多应用的需要。因此,任何一种程序设计语言都提供某种方法,使用户能够根据实际问题的要求,自行编写相应的函数或子程序来扩充程序的处理能力。 如果被计算的任务既不是内在函数,也不能用一个表达式表示,或者虽然能用一个表达式表示,但有多个程序块都要使用它,在这些情况下,可以用一个外部函数子程序定义它。 6.2.1 外部函数子程序的定义 外部函数子程序又分为普通的?递归的和并行的三种。此处仅讨论普

文档评论(0)

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

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

1亿VIP精品文档

相关文档