vb的两个问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 11:00:27
(1)编一子过程ProcMin(a(),mina),求一维数组a中的最小值mina.
主程序随机产生10个-300到-400之间的数,显示产生的数组中各元素;调用子函数,显示数组中的最小值。

(2)编写一个函数Mysin(x),求Mysin(x)=x/1-x^3/(3!)+x^5/(5!)- x^7/(7!)+...+(-1)^n-1*(x^2n-1)/(2n-1)!
当第n项的值小于10^-5时结束,x为弧度。
主调程序同时调用Mysin和标准函数sin,进行验证。

(1):
Private Sub Command1_Click()
Cls
Dim num(9)
Randomize
For i = 0 To 9
num(i) = Rnd * 300 + 100
Print (num(i))
Print
Next
Dim min
ProcMin num(), min
Print ("最小值是:" & min)
End Sub

Private Sub ProcMin(a(), ByRef mina)
mina = a(LBound(a))
For i = LBound(a) To UBound(a)
If mina > a(i) Then mina = a(i)
Next
End Sub
(2):
Private Function Mysin(x) '计算第n项的值
n = 1
Do While ((x ^ (2 * n - 1)) / (y(2 * n - 1)) >= (10 ^ (-5)))

Sum = Sum + (-1) ^ (n - 1) * (x ^ (2 * n - 1)) / (y(2 * n - 1))

n = n + 1
Loop
Mysin = Sum

End Function

Private Function y(n As Integer) '计算n的阶乘
y = 1
For i = 1 To n
y = y * i
Next
End Function

Private Sub Command2_Click()
n = InputBox("请输入一个数:")
Print Mysin(n)