1
语句函数的方法,
f(x)=x*x+x+1.0
write(*,*) f(1.0),f(2.0),f(3.0)
end
2009-7-29
第 10章 语句函数语句函数 是用一个语句定义的的函数。
【 引例 】 求函数 f(x)=x2+x+1在 x=1,2,3时的值。
以前的方法,
x=1.0
f1=x*x+x+1.0
x=2.0
f2=x*x+x+1.0
x=3.0
f3=x*x+x+1.0
write(*,*) f1,f2,f3
end
2
2009-7-29
一、语句函数的定义
1,定义形式,f (x1,x2,…,xn)=e
其中,⑴ f 既是语句函数的函数名又代表该函数的函数值,
其类型既可隐式说明也可显式定义。
如:
⑵ 函数名 f 后一对括号中的 x1,x2,…,x n代表语句函数的 自变量,称为 虚拟参数 (虚参,形式参数,形参,哑元 )。
虚参的 特点,
语句函数定义时虚参 (自变量 )是没有具体数值的,只有在调用语句函数时将实参赋给虚参,虚参才有具体的值。
real ip
ip(x)=1/x
3
2009-7-29
当语句函数没有虚参 (自变量 )时,括号不能省 。
如:
语句函数中的虚参 (自变量 )可以与程序中的变量同名,
但它们彼此独立、无任何关系。
如:
虚参的类型既可隐式说明也可显式定义。
如:
f( )=0.0
f(x)=x*x+x+1.0
x=3.0
y=f(x)
integer x
ip(x)=1/x
x=3.0
当程序中有与虚参同名的变量时,则类型定义语句对两者均起作用。
4
2009-7-29
2,定义语句函数应遵循的规则
⑴ 一般,当函数用一条语句足以完成时才使用语句函数的形式定义函数 。
⑵ 语句函数定义语句属于非执行语句,放在所有可执行语句之前和所有的说明语句之后。
⑶ 语句函数定义时 右边的表达式 中除包含虚参
(自变量 )外,还可以包含常数、变量、数组元素、
外部函数、内部函数和已定义过的语句函数 。
当 包含变量时,程序在调用语句函数之前,变量应被赋值。
5
2009-7-29
如:
二、语句函数的引用即语句函数的调用,与使用 Fortran系统内部函数的方式一样。
注意,语句函数只能在定义它的程序单元使用。
sum(a,b,c)=a+b+c
aver(a,b,c)=sum(a,b,c)/3.0
ir(id)=mod(id,3)
logical xor,x1,x2
xor(x1,x2)=.not.x1.and.x2
ss(i,x,y)=a(i)+x+y
6
2009-7-29
【 例 】 求出各小题中 x的值。
① fna(a)=5.0+exp(a*a)
a=-1.0
x=2.0
x=1.0+fna(x)
② fun(a)=1+a
x=fun(fun(fun(1.0)))
6.0+e4
4.0
③ f(x)=a*x+b
a=3.0
b=6.0
c=7.0
x=f(c+6.0) 45.0
④ f(b,x)=a*b+x
a=2.0
h=10.0
t=16.0
x=f(h/4,sqrt(t)) 9.0
⑤ s(x)=a*x+b
f(d)=s(e)/d
p=4.0
a=3.0
b=6.0
e=5.0
x=f(p) 5.25
7
2009-7-29