FORTRAN语言第8章(共8章).ppt

  1. 1、本文档共88页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
②不同维不同体积: 若主程序中a(2,3),子程序中b(5),则: 总结:数组的虚实结合与维数无关。 结合原则:按照存储结构一一结合 但注意:虚参数组的体积应小于实参数组的体积 最好是同维同体积,不易出错,程序可读性强。 ⒉ 实参为数组元素时的虚实结合 仍按地址结合,但该数组元素与对应虚参数组的第一个元素结合;该数组元素的下一个元素与对应虚参数组的第二个元素结合,…,依此类推。 例: program main subroutine ctx(y) dimension x(6) dimension y(3) call ctx(x(3)) ┆ ┆ end end 8.2 函数子程序(外部函数)   DIMENSION X(10) READ(*,*)X Y=0.0 DO 1 I=1,10 Y=Y+F(X(I)) CONTINUE Y=Y/10.0 WRITE(*,*)’Y=‘,Y END FUNCTION F(X) IF(X.GE.0)F=2*X+1 IF(X.LT.0)F=-3*X+1 END 引 用 返回 一、引例 二、外部函数的定义 函数子程序通常称为外部函数,它也是根据程序设计者的需要由自己定义的函数。和语句函数不同的是,函数子程序是一个由若干语句组成的独立的程序单位。当某些函数的值不可能用一条语句来求得时,就可借助函数子程序来定义一个函数。 二、外部函数的定义 一般形式: 类型说明 FUNCTION 函数名([虚参表])      函数子程序体      END FUNCTION 函数名([虚参表]) 类型说明 函数名 函数子程序体 END 说明: 1、FUNCTION语句   FUNCTION语句是函数子程序的声明语句。它表示函数子程序定义开始。同时给出函数子程序所需的各种虚拟参数(简称虚参、形参),在函数子程序调用之前虚参没有值,只有函数子程序被调用时,由调用程序单元将实在参数(简称实参)的数据传递给虚参,虚参才有数据。当有多个虚参时,必须用逗号将虚参隔开;若没有虚参时,括号不能省略。虚参可以是变量名、数组名、子程序名。 说明:  1、FUNCTION语句  函数名用以标识函数子程序的名称,它在函数体中存放函数值,故函数名具有类型,函数名的命名方法与变量名相同。类型说明用来显式说明函数名的类型,若省略类型说明,则按I-N规则确定函数名的类型。 例:function rdh(n,h) 实型函数 Integer function rdh(n,h)整型函数 说明:  2、函数体  包括说明语句(对虚参变量和实参变量的说明,也包括对函数中所用变量、数组和符号常量的说明)和执行语句(用来完成求函数值的运算。在程序的执行流程返回调用程序之前,必须把所求得的函数值返回给函数名)。    由于函数子程序的计算结果(即函数值)存放在函数名中,故函数名必须在函数体中,至少要有一次出现在赋值语句的左边,即:函数名=表达式 说明:  2、函数体   RETURN语句只允许出现在子程序中,可以有任意多条,并可放在任何位置。END语句在子程序中只能有一条。而且必须放在子程序的最后,不能省略,但RETURN语句可省略。 三、函数子程序的引用 函数子程序是不能直接执行的,只有在其他程序单位中对它引用时,才能控制转移到它的内部执行。调用函数子程序目的是将外部函数子程序的计算结果(即函数值)作为表达式的一个运算分量参与表达式的运算。函数子程序的调用可以出现在表达式出现的任何地方,即只能出现在赋值语句的右边或WRITE语句中。 三、函数子程序的引用 调用函数子程序时应注意的问题 在调用程序中,必须对被调用的函数子程序名如变量那样进行类型说明(也可以遵循隐含规则),并且,在调用程序中,其他的名字(如变量名、数组名等)不能与被调用的函数子程序名相同。 在调用一个函数子程序时,其实参必须在个数、类型与顺序上与函数子程序中的形参一致。 子程序不能直接或间接的调用子程序本身,即在F77中不支持递归调用。如果函数是递归的,则应以RECURSIVE开头(F90标准)。 三、函数子程序的引用 - 如果一个FORTRAN程序由一个主程序和若干个子程序组成,则主程序和子程序可以分

文档评论(0)

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

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

1亿VIP精品文档

相关文档