1语句函数名 在语句函数定义格式中,f称为函数名,函数名的组成规则 与变量名相同。如果没有在语句函数定义语句前用类型语句 说明该函数名的数据类型,则该语句函数的函数值的类型按 其函数名遵守|-N隐含规则。如f函数隐含为实型函数,而nf 则隐含为整形函数 F(X,Y)=X*2+Y*2 !定义了一个实型函数F INTEGER F(X,Y)=X*2Y*2!定义了一个整型函数F NF(X,Y)=X**2+Y**2 !也同样定义了一个整型函数 语句函数不能与同一个程序单元中的变量同名
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语句函数的虚参 在语句函数定义语句中的函数参数称为虚参,他们本身是没有值的,只有在 函数调用时才用实际参数(称为实参代替。实参或是常数、或是一个有确定 值的变量、或是一个可以计算值的表达式。虚参在形式上与普通变量相同, 个语句函数中的虚参不能同名。不同语句函数中的虚参可以同名,虚参也 可以和程序中的变量同名。 当没有语句对虚参的数据类型进行说明时,虚参的类型遵守-N隐含规则; 当使用了类型说明语句对虚参类型进行说明后,这种说明对于虚参以及与虚 参同名的变量同时有效。 INTEGER Z F(X)=3*X**2+5 G(Y)=3*Y*2+5 H(Z)=3*Z*2+5 在上述程序中,函数F和G本质上是一个函数,因为对于任意的实参T,F(T)和 G(T)总是相同的,但函数F、G和H有点不同,其虚参Z被说明为整型 当虚参个数多于一个时,虚参间用逗号分隔,当没有虚参时(这样的语句函数 没有使用价值),函数名后的括弧也不能省略
2.语句函数的虚参 在语句函数定义语句中的函数参数称为虚参,他们本身是没有值的,只有在 函数调用时才用实际参数(称为实参)代替。实参或是常数、或是一个有确定 值的变量、或是一个可以计算值的表达式。虚参在形式上与普通变量相同, 一个语句函数中的虚参不能同名。不同语句函数中的虚参可以同名,虚参也 可以和程序中的变量同名。 当没有语句对虚参的数据类型进行说明时,虚参的类型遵守I—N隐含规则; 当使用了类型说明语句对虚参类型进行说明后,这种说明对于虚参以及与虚 参同名的变量同时有效。 INTEGER Z F(X)=3*X**2+5 G(Y)=3*Y**2+5 H(Z)=3*Z**2+5 在上述程序中,函数F和G本质上是一个函数,因为对于任意的实参T,F(T)和 G(T)总是相同的,但函数F、G和H有点不同,其虚参Z被说明为整型。 当虚参个数多于一个时,虚参间用逗号分隔,当没有虚参时(这样的语句函数 没有使用价值),函数名后的括弧也不能省略
3语句函数表达式 语句函数表达式说明函数与参数的对应关系,在函数表达式中,可以包含常 量、变量、函数虚参(虚参必须包含在表达式中)、 FORTRAN90内在函数、数组 以及前面已经说明了的语句函数 4关于语句函数的进一步说明 (1)只有当函数关系简单,可以用一个语句描述函数与参数的对应关系 时,才能使用语句函数。 (2)语句函数是非执行语句,语句函数的定义语句要放在一个程序单位 的所有其他说明语句之后,并放在所有可执行语句之前。 (3)语句函数只有在本程序单元中才有意义。也就是说,不能使用其他 程序单元中的语句函数。 (4)语句函数中的虚参必须是变量,不能是常量、数组元素和内在函数 等 (5)语句函数是有类型的,因而语句函数表达式的类型一定要和其函数 名的类型相容
3.语句函数表达式 语句函数表达式说明函数与参数的对应关系,在函数表达式中,可以包含常 量、变量、函数虚参(虚参必须包含在表达式中)、FORTRAN 90内在函数、数组 以及前面已经说明了的语句函数。 4.关于语句函数的进一步说明 (1)只有当函数关系简单,可以用一个语句描述函数与参数的对应关系 时,才能使用语句函数。 (2)语句函数是非执行语句,语句函数的定义语句要放在一个程序单位 的所有其他说明语句之后,并放在所有可执行语句之前。 (3)语句函数只有在本程序单元中才有意义。也就是说,不能使用其他 程序单元中的语句函数。 (4)语句函数中的虚参必须是变量,不能是常量、数组元素和内在函数 等。 (5)语句函数是有类型的,因而语句函数表达式的类型一定要和其函数 名的类型相容
6.1.2语句函数的调用 语句函数一经定义,就可以在同一个程序单元中调用它,调用的形式和内在 函数完全相同。 函数调用要注意以下两个问题 1.调用时可以使用常量、变量、内在函数以及它们的表达式作为实参代替 对应的虚参位置,但要保证实参与虚参具有完全相同的类型,并且实参是可 以计算值的(即调用前实参中包含的变量全部已经赋值。 2.实参和虚参个数相同。 例62用函数语句的方法设计例61 PROGRAM EXAM1B NTEGERⅩ F(X)=5*X**3-2*X*2+7*X+6 WRTE(**)F(2)F(10),F(12),F(-2) END
6.1.2 语句函数的调用 语句函数一经定义,就可以在同一个程序单元中调用它,调用的形式和内在 函数完全相同。 函数调用要注意以下两个问题: 1.调用时可以使用常量、变量、内在函数以及它们的表达式作为实参代替 对应的虚参位置,但要保证实参与虚参具有完全相同的类型,并且实参是可 以计算值的(即调用前实参中包含的变量全部已经赋值。) 2. 实参和虚参个数相同。 例 6.2用函数语句的方法设计例6.1 PROGRAM EXAM1B INTEGER X F(X)=5*X**3-2*X**2+7*X+6 WRITE(*,*)F(2),F(10),F(12),F(-2) END
62函数子程序 语句函数由于要求在一个语句中完成函数的定义,因而它只能解决一些较 简单的问题,当函数关系比较复杂,用一个语句无法定义时,语句函数就 无能为力了,这时需要用到函数子程序。 6.2.1函数子程序的定义 函数子程序是以保留字 FUNCTION开头,并以保留字END结束的 个程序段,该程序段可以独立存储为一个文件,也可以和调用 它的程序单元合并存储为一个程序文件。函数子程序的定义格式 是 [类型说明] FUNCTION函数名(虚参表) 函数体 END 函数名的命名方法与变量名相同,虚参可以是简单变量和数组变 量,但不能是常数、数组元素、表达式)
6.2 函数子程序 语句函数由于要求在一个语句中完成函数的定义,因而它只能解决一些较 简单的问题,当函数关系比较复杂,用一个语句无法定义时,语句函数就 无能为力了,这时需要用到函数子程序。 6.2.1 函数子程序的定义 函数子程序是以保留字 FUNCTION 开头,并以保留字 END结束的 一个程序段,该程序段可以独立存储为一个文件,也可以和调用 它的程序单元合并存储为一个程序文件。函数子程序的定义格式 是: [类型说明] FUNCTION 函数名(虚参表) 函数体 END 函数名的命名方法与变量名相同,虚参可以是简单变量和数组变 量,但不能是常数、数组元素、表达式)