题目来源:大工慕课 链接
原题:Visual Basic程序设计教程(第二版)龚沛曾主编,高等教育出版社 实验6-4
作者:Caleb Sung
题目要求
编一个函数过程Mysin(x)
,求
Mysin(x)=x1−x33!+x55!−x77!+⋯ M y sin ( x ) = x 1 − x 3 3 ! + x 5 5 ! − x 7 7 ! + ⋯
当第n项的精度小于10-5时结束,x为弧度;主调程序同时调用Mysin和内部函数sin,进行验证。
提示
关键是找部分级数和的通项,可如下表示:
(吐槽:LaTex打公式可谓相当蛋疼……)
ti+2=(−1)⋅ti⋅x⋅x(i+1)(i+2),i=1,3,5,7,⋯ t i + 2 = ( − 1 ) ⋅ t i ⋅ x ⋅ x ( i + 1 ) ( i + 2 ) , i = 1 , 3 , 5 , 7 , ⋯
参考代码
Dim x!
Function MySin(x!) As Double
Dim i%, t!, s!
t = x
s = t
i = 1
Do While Abs(t) > 0.00001
t = -1 * t * x * x / ((i + 1) * (i + 2))
s = s + t
i = i + 2
Loop
MySin = s
End Function
Private Sub Command1_Click()
x = Val(Text1.Text)
Label4.Caption = Format(Sin(x), "0.000000")
Label5.Caption = Format(MySin(x), "0.000000")
End Sub