第六讲 Fortran中的子程序讲课稿.ppt

第六讲 Fortran中的子程序讲课稿.ppt

ID:60782140

大小:258.00 KB

页数:18页

时间:2020-12-18

第六讲 Fortran中的子程序讲课稿.ppt_第1页
第六讲 Fortran中的子程序讲课稿.ppt_第2页
第六讲 Fortran中的子程序讲课稿.ppt_第3页
第六讲 Fortran中的子程序讲课稿.ppt_第4页
第六讲 Fortran中的子程序讲课稿.ppt_第5页
资源描述:

《第六讲 Fortran中的子程序讲课稿.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第六讲Fortran中的子程序(3)语句函数表达式给出函数与参数之间的对应关系,可由虚参(必须包含所有的虚参)、常量、变量、数组、Fortran的内部函数及在其前面说明了的语句函数。2021/8/292(2)语句函数的虚参---即语句函数的自变量1、称其为“虚参”是因为其本身是没有值的,只有在函数被调用时才用实际意义(叫实参)代替;2、可以按照普通变量对待虚参,但是一个语句函数中虚参不能同名,但不同语句函数中虚参可以同名,虚参也可以和程序中的变量同名;3、虚参的类型说明与变量的类型说明方法与规则相同,而且对与虚参同名变量同时有效;4、当存

2、在多个虚参时,之间用“,”分隔,如果没有虚参则函数名后的括号是不能省略的。2021/8/2931、只有当函数关系简单到,可以用一条语句描述函数与参数的对应关系时,才能使用语句函数;2、语句函数是非执行语句,要放在一个程序单元的所有其它说明语句之后,并放在所有可执行语句之前;3、语句函数只有在本程序单元中才有意义,即不能使用其它程序单元中的语句函数;此外,还需注意的是:4、语句函数中的虚参必须是变量,不能是常量、数组元素和内部函数等;5、语句函数是有类型的,因此语句函数表达式的类型一定要与其函数名同类型。二、语句函数的调用语句函数一经定义,

3、就可以在同一程序单元中调用它,调用的方法与内部函数相同,即:函数名(实参表)2021/8/294需要注意下面2个问题:1、调用时可以使用常量、变量、内部函数及其表达式作为实参代替对应的虚参位置,但要保证实参和虚参具有完全相同的类型,并且实参是可以计算值的(即调用前实参中包含的变量全部已经赋值);2、实参和虚参个数相同。比如:integerx,ff(x)=5*x**3-2*x**2+7*x+6print*,f(-1),f(0),f(1)End运行结果为:-86162021/8/295§2函数子程序语句函数的不足是必须要在一条语句中完成对函数

4、的定义,因此只能用于较简单的函数,对于复杂的函数关系、无法用一条语句完成时,需要用到本节的函数子程序。一、函数子程序的定义函数子程序是以Function语句开头,并以End语句结束的一个程序段,其可以独立自成一个程序文件,也可以和调用它的程序单元合并成一个程序文件。其定义的一般格式为:[类型说明符]Function函数名(虚参表)函数体end2021/8/296其中,类型说明用于说明函数名的类型;函数名的命名方法与变量名相同;虚参可以是简单变量和数组变量,但不能是常数、数组元素、表达式。比如:求functionsm(m,n,l)sm=0d

5、oi=m,nif(l>0)thensm=sm+i**lelsesm=sm+(1.0*i)**lendifenddoendprogrammainwrite(*,*)'s1=',sm(1,100,2)write(*,*)'s2=',sm(100,140,3)write(*,*)"s3=",sm(20,50,-1)end程序的运行结果为:S1=338350.000000S2=7.291440E+07S3=9.514656E-012021/8/297程序说明:1、整个程序由主程序和1个函数子程序组成,二者的位置不分先后,因为程序执行时总是从主程序

6、开始的;2、函数子程序FunctionSM(m,n,l)中,缺省类型说明时,则函数SM及其虚参标量m、n、l的类型遵守I~N规则;3、主程序中的第2~4语句都要输出SM的值,其调用了函数子程序SM。函数子程序的定义还应注意以下问题:1、函数值的类型说明方法可使用:IntegerFunctionf(x1,x2,…,xn)函数体endFunctionf(x1,x2,…,xn)Integerf函数体end等价如果没有这样的显式说明,则按照I-N规则。2021/8/2982、函数不能有同名虚参。而虚参的类型可以在函数体中说明,没有说明则服从I-N

7、规则;3、在函数体中至少要有一个语句给函数名赋值,这种赋值语句的格式为:函数名=表达式切莫在函数名后加入括号,错误地写成:函数名(虚参)=表达式。二、函数子程序的调用定义函数子程序的目的是为了调用,在Fortran中不仅主程序可以调用函数子程序,而且函数子程序也可调用其它的函数子程序,甚至调用本身(叫递归调用)。常把调用程序叫主调程序单元,而被调用的函数子程序叫被调程序单元。调用函数子程序的方法与调用内部函数及语句函数基本相同:(1)调用时应该用实参(可以是常量、变量、表达式等)代替函数子程序中的虚参,实参和虚参的类型要相同;2021/8

8、/299(2)调用程序单元中的变量不能与函数子程序同名。函数值的类型由函数定义程序单元决定,与调用程序单元无关;(3)当函数名的类型不满足I-N规则时,在调用程序单元中要对函数名的类型给出说明

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

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

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