永发信息网

用VB做sin 函数。

答案:4  悬赏:30  手机版
解决时间 2021-02-01 12:38
  • 提问者网友:最美的风景
  • 2021-01-31 11:44
用VB做sin 函数。
最佳答案
  • 五星知识达人网友:第幾種人
  • 2021-01-31 13:12
Function MySin(ByVal x As Double) As Double
Dim k As Integer
Dim nowSinx As Double

Dim temp As Double
Dim tol As Double
k = 1
tol = 0.00001
nowSinx = x
temp = x
Do
temp = -temp * (x * x) / (2 * k + 1) / (2 * k)
nowSinx = nowSinx + temp
k = k + 1
Loop While Abs(temp) > tol
MySin = nowSinx
End Function

'本程序改编自计算方法 C++作业。已在VB环境编译通过。
'可以用上一次计算的结果,没必要定义阶乘函数。
'MySin(2)结果是:0.909297.。。和Sin(2)差不多。
全部回答
  • 1楼网友:老鼠爱大米
  • 2021-01-31 17:01
Function Sin(Number As Double) As Double
VBA.Math 的成员
返回一个角度的正弦值
不是有这个函数么....
  • 2楼网友:七十二街
  • 2021-01-31 15:24
Function MySin(x As Double) As Double
Dim t As Double, s As Double, n As Integer
't为连同符号的每项分母值连同符号 s为和值
t = 1: n = 1: s = 0
Do While Abs(x ^ n / t) >= 10 ^ (-5)
s = s + x ^ n / t
n = n + 2
t = (-1) ^ Int(n / 2) * JC(n)
'这里好好理解下
Loop
MySin = s
End Function
'定义阶乘函数
Function JC(n As Integer) As Long
If n <= 0 Then JC = 1: Exit Function
Dim i As Integer, t As Long
t = 1
For i = 1 To n
t = t * i
Next
JC = t
End Function
'这是自己写的sin函数 和系统的函数比较部分应该不用我说了吧
  • 3楼网友:煞尾
  • 2021-01-31 14:17
Function MySin(x!) As Double
Dim i%, m%, t!
m = 1
Do
MySin = MySin + t * (-1) ^ (m + 1)
t = 1
For i = 1 To 2 * m - 1
t = t * x / i
Next i
m = m + 1
Loop Until t < 10 ^ (-5)
End Function
最简单的写法。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯