Atn()是VB反正切函数,VB不提供其他反三角函数,不过可以用下列公式导出:
Inverse
Sine
(反正弦):
Arcsin(X)
=
Atn(X
/
Sqr(-X
*
X
+
1))
Inverse
Cosine
(反余弦):
Arccos(X)
=
Atn(-X
/
Sqr(-X
*
X
+
1))
+
2
*
Atn(1)
Inverse
Secant
(反正割):
Arcsec(X)
=
Atn(X
/
Sqr(X
*
X
-
1))
+
Sgn((X)
-
1)
*
(2
*
Atn(1))
Inverse
Cosecant
(反余割):
Arccosec(X)
=
Atn(X
/
Sqr(X
*
X
-
1))
+
(Sgn(X)
-
1)
*
(2
*
Atn(1))
以上这些公式,其实就是应用了数学中的各类三角函数和正切函数之间的关系导出的。其中需要注意的是其中的
X
不能等于正负1。(引用-_-)
x都是弧度制
这个需要用函数指针实现.
这几个函数都是 double sin(double)的形式, 所以函数指针为 double(*pfun)(double)
于是 结果如下:
#include <math.h>double execute (double x, double (*func)(double))
{
double temp
temp = 0//这里的temp没有实际作用.
return ((*func)(x))
}
main()
{
double (*function[3])(double)
double x=1
int i
function[0]=sin
function[1]=cos
function[2]=tan
for (i=0 i<3 i++)
printf("func No: %d---%f\n", i+1, execute(x, function[i]))
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)