欢迎来到天天文库
浏览记录
ID:40844719
大小:3.07 MB
页数:88页
时间:2019-08-08
《FORTRAN语言第8章(共8章)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第八讲子程序在程序设计中,常会遇到某些程序段需多次重复使用,为此,将这些需要重复使用的程序段单独编制成子程序,该子程序用以实现某些特定功能(例如:计算平均值、计算方差等)并可供其它程序单元多次调用,以处理不同的数据。第八讲子程序Fortran的应用程序一般由一个主程序和若干个子程序组成。主程序或子程序分别是一个独立的程序单元。主程序单元为Fortran应用程序提供程序执行的入口。Fortran应用程序必须有一个且只能有一个主程序单元。主程序单元可以调用子程序单元,各子程序单元之间也可互相调用。调用子程序的程序单元称
2、为调用程序单元,被调用的子程序单元称为被调用程序单元。第八讲子程序Fortran的子程序单元有函数子程序、子例行程序和数据块子程序。函数子程序单元用以计算一个值。子例行程序单元不仅可以计算一个或一批值,还可进行某些非数值计算。数据块子程序单元用以给公用区中的数据赋初值。第八讲子程序§8.1语句函数§8.5可调数组§8.2函数子程序§8.3子例行子程序§8.4虚实结合§8.6程序举例8.1语句函数语句函数通过一句代码定义来实现某种特定的处理功能,它是Fortran77时代的遗留产物。严格来说,语句函数不属于程序单元的
3、范畴。但是在实际应用中,语句函数以其灵活的应用、小巧的结构在程序中发挥着重要的作用。在实际的编程过程中,程序员往往会遇到这种情况:一些简单的函数会在一个程序单元中的不同地方重复用到,而Fortran系统并不提供这种内部函数。此时可采用语句函数。一、语句函数的概念引例:计算W=0.2P(X)+0.3P(Y)+0.5P(Z)其中P(T)=0.812T3+1.256T2-3.378T+0.689WRITE(*,*)’请输入X,Y,Z的值:‘READ(*,*)X,Y,ZP1=0.812*X**3+1.256*X**2-3.
4、378*X+0.689P2=0.812*Y**3+1.256*Y**2-3.378*Y+0.689P3=0.812*Z**3+1.256*Z**2-3.378*Z+0.689W=0.2*P1+0.3*P2+0.5*P3WRITE(*,*)WEND重复使用同一公式多遍,程序不简练如果能定义一个函数p(t),然后分别使用x,y,z等参数来调用p(t),将会有效简化程序量:P(T)=0.812*T**3+1.256*T**2-3.378*T+0.689WRITE(*,*)’请输入X,Y,Z的值:‘READ(*,*)X,Y
5、,ZP1=P(X)P2=P(Y)P3=P(Z)W=0.2*P1+0.3*P2+0.5*P3WRITE(*,*)’W=’,WEND对语句函数的引用注意:只有当函数可以用一个表达式表示时才能定义成语句函数,而对于那些不能用表达式表示的功能或分段表示的函数是不能定义成FORTRAN语句函数的。在程序中有时可能在好几处需要进行同样的某种表达式计算,而这种计算又不是某个内部函数所能完成的,这时,程序设计者可以自已来定义一个语句函数,通过引用语句函数来实现这种特殊运算。二、语句函数的定义语句函数定义的形式:f_name([x,
6、[,x]……])=e使用规定1)语句函数定义语句必须位于该程序段的说明语句之后,第一个可执行语句之前。它是非执行语句。2)语句函数名的命名规则与变量名相同,若语句函数前面没有用类型说明语句进行显式说明,则语句函数的返回值遵循默认的I-N规则。在一个程序单位内,语句函数名不能与其它名字(如变量名、数组名等)相同。使用规定3)语句函数定义中的虚参只能是变量名,不能是常量、表达式或数组元素,虚参表中的各虚参之间用逗号分隔,各虚参不能同名,虚参的类型说明与变量相同。由于虚参不代表实在的变量,因此虚参名可以与程序中的其他变量
7、同名。4)语句函数中的虚拟参数,本身没有具体的数值。只有当程序中的语句函数被引用时,用实际的变量(实参)代替虚参的情况下,才能得到语句函数的返回值。SS(A(I),X,Y)=A(I)+X*YEST(A,A)=SQRT(A*4.0)+AF(X)=X*X+2*XX=3.0Z=F(1.0)+F(X)WRITE(*,*)XEND5)e是含有x1,x2,…xn的表达式,在这个表达式中,除必须包含有关虚参外,还可以包含常量,变量,外部和内部函数和已定义过的语句函数。语句函数通过表达式得到一个函数值,此函数值的类型必须与函数名的
8、类型一致。6)语句函数的类型即是语句函数名的类型,当需要用类型说明语句说明语句函数名的类型时,其类型说明语句必须在语句函数的定义之前。语句函数只能在定义它的程序段使用。使用规定三、语句函数的引用语句函数的引用就是对语句函数定义的使用。它和内部函数一样,总是在表达式中作为一个运算分量或单独作为一个表达式出现。它的一般引用形式为:f_name(a1,a2……)注
此文档下载收益归作者所有