udf-2(2)

2019-04-01 19:26

y = x/50.; else {

x = -x; y = x/25.;

}

下面是等价的FORTRAN代码,大家可以比较一下: IF (X.LT.0.) THEN Y = X/50. ELSE X = -X Y = X/25.

ENDIF 2.11.3 for循环

for循环是C程序最为基本的循环控制语句。它和FORTRAN中的do循环很类似。格式为: for (起点;终点;增量)

{语句}

其中起点是在循环开始时执行的表达式;终点是判断循环是否结束的逻辑表达式;增量是循环迭代一次之后执行的表达式(通常是增量计数器)。 例子:

/* 输出整数1-10及它们的平方*/ int i, j, n = 10;

for (i = 1 ; i <= n ; i++) { j = i*i;

printf(\ }

下面是等价的FORTRAN代码,大家可以做一比较: INTEGER I,J N = 10 DO I = 1,10 J = I*I WRITE (*,*) I,J ENDDO

2.12常用的C运算符

运算符是内部的C函数,当它们对具体数值运算时会得到一个结果。常用的C运算符是算术运算符和逻辑运算符。 2.12.1 算术运算符

下面是一些常用的算术运算符。 = 赋值 + 加 - 减 * 乘 / 除

% 取模

++ 增量 -- 减量

注意:乘、除和取模运算的优先级要高于加、减运算。除法只取结果的整数部分。取模只取结果的余数部分。++运算符是增量操作的速记符。 2.12.2 逻辑运算符

下面是一些逻辑运算符。 < 小于

<= 小于或等于 > 大于 >= 大于或等于 == 等于

!= 不等于 2.13 C库函数

当你书写UDF代码时,你可以使用C编译器中包括的标准数学库和I/O函数库。下面各节介绍了标准C库函数。标准C库函数可以在各种头文件中找到(如:global.h)。这些文件都被包含在udf.h文件中。

2.13.1 三角函数

下面的三角函数都是计算变量x(只有一个还计算y)的三角函数值。函数和变量都是双精度实数变量。具体的意义大家应该都很清楚,就不具体介绍了。

double acos (double x); double asin (double x); double atan (double x); 返回x的反余弦函数 返回x的反正弦函数 返回x的反正切函数 double atan2 (double x, double y); 返回x/y的反正切函数 double cos (double x); double sin (double x); double tan (double x); double cosh (double x); double sinh (double x); double tanh (double x); 返回x的余弦函数 返回x的正弦函数 返回x的正切函数 返回x的双曲余弦函数 返回x的双曲正弦函数 返回x的双曲正切函数 2.13.2 各种数学函数

下面列表中,左边是C函数,右边是对应数学函数:

double sqrt (double x); x double pow(double x, double y); double exp (double x); x xye double log (double x); ln?x? log10?x? double log10 (double x); double fabs (double x); x double ceil (double x); double floor (double x); 不小于x的最小整数 不大于x的最大整数 2.13.3 标准I/O函数

C中有大量的标准输入输出(I/O)函数。在很多情况下,这些函数在指定的文件中工作。下面是一些例子。

FILE *fopen(char *filename, char *type); 打开一个文件 int fclose(FILE *fd); int fprintf(FILE *fd, char *format, ...); int printf(char *format, ...); int fscanf(FILE *fd, char *format, ...); 关闭一个文件 格式化输出到一个文件 输出到屏幕 格式化读入一个文件 函数fopen和fclose分别打开和关闭一个文件。函数fprintf以指定的格式写入文件,函数fscanf以相同的方式从某一文件中将数据读入。函数printf是一般的输出函数。fd是一个文件指针,它所指向的是包含所要打开文件的信息的C结构。除了fopen之外所有的函数都声明为整数,这是因为该函数所返回的整数会告诉我们这个文件操作命令是否成功执行。

在下面的例子中,需要打开的数据文件的名字用双引号括起来。fopen中的选项r表明该文件是以可读形式打开的。fscan函数从fd所指向的文件中读入两个浮点数并将它们存储为f1和f2。关于C的标准输入输出函数其它更多的信息,你可以查阅相关手册(如:[2])。 例子:

FILE *fd;

fd = fopen(\ /* opens a file named data.txt */ fscanf(fd, \

fclose(fd);

2.14 用#define实现宏置换

UDF解释程序支持宏置换的C预处理程序命令。当你使用#define宏置换命令,C预处理程序(如,cpp)执行了一个简单的置换,并用替换文本替换宏中定义的每一个自变量。 #define macro replacement-text 如下面的宏置换命令:

#define RAD 1.2345

预处理程序会在UDF中所有的变量RAD出现的地方将RAD替换为1.2345。在你的函数中可能会有很多涉及到变量RAD的地方,但是你只需要在宏命令中定义一次,预处理程序会在所有的代码中执行替换操作。 在下面这个例子中:

#define AREA_RECTANGLE(X,Y) ((X)*(Y))

你的UDF中所有的AREA_RECTANGLE(X,Y)都会被替换为(X)和(Y)的乘积。

2.15 用#include实现文件包含

UDF解释程序还支持文件包含的C前处理命令。当你使用#include包含一个文件时,C前处理程序会将#include filename行替换为文件名对应的文件内容。 #include \filename \

文件名对应的文件必须在当前目录中。只有udf.h文件例外,这是因为FLUENT解算器会自动将它读入。

如下面的文件包含命令: #include \

会将文件udf.h包含进你的源代码中。

2.16 与FORTRAN 的比较

很多简单的C函数和FORTRAN函数的子程序很相似,例子如下:

简单的C函数 等价的FORTRAN函数 int myfunction(int x) INTEGER FUNCTION MYFUNCTION(X) { int x,y,z; y = 11; z = x+y; printf(\return z; }

INTEGER X,Y,Z Y = 11 Z = X+Y WRITE (*,100) Z MYFUNCTION = Z END


udf-2(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高三作文写作指导

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: