如何用VB写一个计算反三角函数的程序?

网友解答: 首先,你得明确,VB是一种语言,凡是语言都有一定规范,计算机语言在这方面更严格,语言的基本单位是字词,学习一门语言,你不能想当然认为你学过的东西在新的语言中一定适用。向我们翻

网友解答:

首先,你得明确,VB是一种语言,凡是语言都有一定规范,计算机语言在这方面更严格,语言的基本单位是字词,学习一门语言,你不能想当然认为你学过的东西在新的语言中一定适用。向我们翻词典一样,VB也有自己的词典,其中有内置的函数,你可能在想,VB一定认识“arccos”,但实际上,它的词典中并没有这个词,但这并不意味着我们拿这个问题没办法,VB有很多函数、算法实现这个目的。

对于这个问题,可以用级数的方法,或者找到类似的函数进行转换。相似地,VB自带函数有cos(余弦函数)和atn(反正切),考虑到算法最优,可以选择atn。

下面分析反余弦和反正切的关系。仅从数学上推导,设arccos(x)=y,则x=cosy,1-x²=siny,得到tany=√(1-x²) /x,充分考虑了两个函数的定义域和值域后,关系是个类似分段函数的形式:当-1≤x<0时,arccos(x)=π+atn√(1-x²) /x;当x=0时,arccos(x)=π /2;当0<x≤1时,arccos(x)=π+atn√(1-x²) /x。具体怎么写,到后面介绍函数过程一起带过。

再说说“函数未申明”什么意思。前面说过,VB有自己的语言体系,没看到过的它就不认识,但它也没有这么死板,你可以把新词加入到它的词库,比如说“arccos”,你得让VB认识它,就得介绍它,就要用一大堆话解释它,解释一次,VB就知道了,以后可以直接用了。在你要经常用到“arccos”,给它申明下,写个function过程很有用。

函数申明的语法

[private][public]function bb(a as 数据类型,b as 数据类型……) as 数据类型

……

end function

function arccos(x as double)as string

const pi=3.1415926

if x<-1 or x1 then

arccos="无意义"

else

select case x

case is <0

arccos=str(pi+atn(sqr(1-x^2)/x))

case 0

arccos=str(pi/2)

case else

arccos=str(atn(sqr(1-x^2)/x))

end select

end if

end function

没试过,不知道有什么问题,有兴趣自己慢慢调试。

标签: