返回介绍

1.4.2 内在函数

发布于 2025-03-08 16:28:29 字数 5252 浏览 0 评论 0 收藏 0

用 Fortran 解题往往要用到一些专门运算。如求三角函数,开根,绝对值,对数,指数,求一组数中最大数和最小数等。Fortran 提供了一些系统内在函数来完成这些运算。程序设计者不必自己设计进行这些运算的语句组(即程序段或子程序),只需写出一个函数的名字以及结出一个或若干个自变量,就可以得到所需的值。例如:

SQRT(4.0) →

SIN(2.0) → 2(弧度) 的正弦值 ← 注意三角函数中的自变量单位为弧度!

EXP(3.5) →

LOG(3.0) →

常用的 Fortran77 函数如下表所示。

函数名

含 义

应用例子

相当数学上的运算

ABS

EXP

SIN

COS

ASIN

ACOS

TAN

ATAN

LOG

LOGlO

INT

MOD

SIGN

REAL

MAX

MIN

求绝对值

指数运算

正弦值

余弦值

反正弦

反余弦

正切

反正切

自然对数

常用对数

取整

求余

求符号

转换为实型

求最大值

求最小值

ABS(X)

EXP(X)

SIN(X)

COS(X)

ASIN(X)

ACOS(X)

TAN(X)

ATAN(X)

ALOG(X)

ALOG10(X)

INT(X)

MOD(X1,X2)

SIGN(Xl,X2)

REAL(I)

MAX0(I1,I2,I3)

MIN(Xl,X2,X3)

,取的整数部分

(当),(当)

   内在函数的执行方法

Fortran 将这些内在函数分别编成单个子程序,组成函数库,存在于外部介质(如磁盘) 上。在完成源程序的编译之后,用 LINK 命令实现连接,即将已翻译成二进制指令的目标程序与函数库连接。也就是将程序中出现函数名的地方用函数库中相应的一组指令代入之,组成一个统一的“可执行目标块”。例如程序中出现一个 SIN 函数,在连接时就将一组求正弦值二进制指令直接插入到程序中出现 SIN 的地方。由于是插入到程序内部的,所以称为“内在函数”。

   一个内在函数可要求一个或多个自变量

例如,SQRT 函数只能有一个自变量,而 MOD 函数要求两个自变量,MAX 和 MIN 函数要求两个以上自变量。注意当自变量个数规定为 2 个时,自变量的顺序不应任意颠倒,如 MOD(8,3) 表示 8 被 3 除的余数,其值为 2,而 MOD(3,8) 则表示 3 被 8 除的余数,其值为 3。当自变量个数为>2 时,自变量的顺序无关。

   函数的自变量是有类型的,函数值也是有类型的

例如 MOD(8,3) 中自变量 8 和 3 是整型,函数 MOD(8,3) 的值“2”也是整型,如果写成 MOD(8.0,3.0),自变量是实型的,函数值也是实型的,其值为 2.0。

   函数名分为“通用名”和“专用名”

例如求余函数的“通用名”为 MOD,“专用名”有三个(MOD,AMOD,DMOD)。根据自变量的类型就自动确定了函数值的类型,如 MOD(8,3) 的值为整型,而 MOD(8.0,3.0) 的值为实型。当调用子程序时如果用内在函数作为自变量(实参),必须使用该内在函数的专用名。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文