第2章Fortran程序设计基础.ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[类型说明] FUNCTION 函数名(虚参表)
例 6.3 编程,求:
100
140
50
s1
i2
s2
i3 s3
1 i
i1
i100
i20
分析:上述三个数列的通项不同,求和范围也不同,用一个程序 段难以同时计算三个数列的和,并且,因为无法用一个语句函数 完成数列的求和计算,所以也无法使用语句函数来简化程序设计。
FUNCTION SM(M,N,L) SM=0 DO I=M,N
IF (L>0) THEN SM=SM+I**L
ELSE
PROGRAM EXAM2
!开始主程序单元定义
WRITE(*,*)'S1=',SM(1,100,2) !调用函数子程序SM完成S1的计算
WRITE(*,*)'S2=',SM(100,140,3)
6.1.2 语句函数的调用
语句函数一经定义,就可以在同一个程序单元中调用它,调用的形式和内在 函数完全相同。
函数调用要注意以下两个问题:
1.调用时可以使用常量、变量、内在函数以及它们的表达式作为实参代替 对应的虚参位置,但要保证实参与虚参具有完全相同的类型,并且实参是可 以计算值的 (即调用前实参中包含的变量全部已经赋值。) 2. 实参和虚参个数相同。 例 6.2 用函数语句的方法设计例6.1
• 子程序不能独立运行,它们和一种称为主程序(就是本 章前读者已经熟知的程序结构)的程序单元一起组成一 个实用程序。一个程序可以不含子程序,但不能缺少主 程序。
• 本章讨论各种子程序的结构、功能以及子程序与主程序 或子程序之间的数据交互作用。语句函数不具备子程序
语句函数
SIN(X)、SQRT(X)等由FORTRAN编译器提供的函数为内在函数。 这些内在函数是在程序设计过程中使用频率很高,并且一般 实现比较复杂的函数。用户在使用内在函数时,并不需要对 函数的实现过程进行描述,只需按照FORTRAN 90手册要求使 用即可,FORTRAN 90编译器“认识”这些内在函数并能正确 完成函数所规定的功能。
PROGRAM EXAM1B
INTEGER X
6.2 函数子程序
语句函数由于要求在一个语句中完成函数的定义,因而它只能解决一些较 简单的问题,当函数关系比较复杂,用一个语句无法定义时,语句函数就 无能为力了,这时需要用到函数子程序。
6.2.1 函数子程序的定义
函数子程序是以保留字 FUNCTION 开头,并以保留字 END结束的 一个程序段,该程序段可以独立存储为一个文件,也可以和调用 它的程序单元合并存储为一个程序文件。函数子程序的定义格式 是:
第6章 子程序
• 子程序是构造大型程序的有效工具,一个实用程序(不 管是系统程序还是应用程序),一般都含有多个子程序。
• FORTRAN 90 中的子程序按子程序完成的功能划分有子 例行程序、函数子程序、数据块子程序等,按是否定义 在某个特定的程序单元内部来划分有程序单元子程序、 模块子程序以及内部(INTERNAL)子程序等,这些通称为 子程序。
程序如PROGRAM EXAM1A :
PROGRAM EXAM1A
X=12
X=1
FX=5*X**3-2*X**2+7*X+6
FX=5*X**3-2*X**2+7*X+6
WRITE(*,*)'f(',X,')=',FX
WRITE(*,*)'f(',X,')=',FX
X=-1
X=10
FX=5*X**3-2*X**2+7*X+6
FX=5*X**3-2*X**2+7*X+6
WRITE(*,*)'f(',X,')=',FX
6.1.1 语句函数的定义
如前所述,由于FORTRAN 90 的编译器不“认识” 一般的函数f(x),不知道怎样计算f(x)的函数值, 因而,在使用(称为函数调用)函数时,必须向 FORTRAN 90编译器说明该函数的计算方法,这种 说明过程称为函数定义。 语句函数定义的一般格式是:
1.语句函数名
在语句函数定义格式中,f称为函数名,函数名的组成规则 与变量名相同。如果没有在语句函数定义语句前用类型语句
说明该函数名的数据类型,则该语句ห้องสมุดไป่ตู้数的函数值的类型按 其函数名遵守I—N隐含规则。如f函数隐含为实型函数,而nf 则隐含为整形函数。
F(X,Y)=X**2+Y**2
! 定义了一个实型函数F
INTEGER F(X,Y)=X**2+Y**2 ! 定义了一个整型函数F
NF(X,Y)=X**2+Y**2 F
! 也同样定义了一个整型函数
2.语句函数的虚参
在语句函数定义语句中的函数参数称为虚参,他们本身是没有值的,只有在 函数调用时才用实际参数(称为实参)代替。实参或是常数、或是一个有确定 值的变量、或是一个可以计算值的表达式。虚参在形式上与普通变量相同, 一个语句函数中的虚参不能同名。不同语句函数中的虚参可以同名,虚参也 可以和程序中的变量同名。
当没有语句对虚参的数据类型进行说明时,虚参的类型遵守I—N隐含规则; 当使用了类型说明语句对虚参类型进行说明后,这种说明对于虚参以及与虚 参同名的变量同时有效。
INTEGER Z
F(X)=3*X**2+5
G(Y)=3*Y**2+5
H(Z)=3*Z**2+5
3.语句函数表达式
语句函数表达式说明函数与参数的对应关系,在函数表达式中,可以包含常 量、变量、函数虚参(虚参必须包含在表达式中)、FORTRAN 90内在函数、数组 以及前面已经说明了的语句函数。
在实际设计过程中,用户还会遇到大量的并未包含在内在 函数中的其他函数,计算这些函数时,就不能象内在函数那 样仅仅使用函数名来使用这些函数,而必须在适当的地方以 FORTRAN 90能“理解”的形式向FORTRAN 90 编译器说明这些
例 6.1 设多项式函数 f(x)5x32x27x6
设计一个程序,计算f(1)、f(10)、f(12)、f(-5)的值。
4.关于语句函数的进一步说明
(1)只有当函数关系简单,可以用一个语句描述函数与参数的对应关系 时,才能使用语句函数。
(2)语句函数是非执行语句,语句函数的定义语句要放在一个程序单位 的所有其他说明语句之后,并放在所有可执行语句之前。
(3)语句函数只有在本程序单元中才有意义。也就是说,不能使用其他 程序单元中的语句函数。
相关文档
最新文档