谁来帮俺看看这几段vb程序有什么错误啊 谢谢啊

来源:百度知道 编辑:UC知道 时间:2024/07/04 11:09:42
Function xiaoyu()
xiaoyu = True
Dim n As Integer
Dim fm As Integer
Dim sum As Integer
fm = 1
sum = 0
n = 1
Do While xiaoyu = True
fm = fm * 2 * n
sum = sum + 1 / fm
n = n + 1
If fm > 10000 Then
xiaoyu = False
End If
Loop

End Function

Private Sub Command1_Click()
MsgBox sum
End Sub

Function mz(old, i)
Dim two As String
Dim three As String
Dim four As String
two = Mid(old, i, 2)
three = Mid(old, i + 2, 3)
four = Mid(old, i + 5, 4)
If Val(two) * Val(three) = Val(four) Then
mz = i
Else
mz = mz(old, i + 1)
End If
End Function

Private Sub Command1_Click()
old = Str(Text1.Text)
MsgBox i
End Sub

Function mz(old)
ll = Len(old)
old = old + Left(old, 8)
For i = 1 To ll
two = Mid(old, i, 2)
three = Mid(old, i + 2, 3)
four = Mi

由于不明白你写这些代码要完成什么,算法这一块的错误不好指出,但代码问题有几点,先说第一个片段。
这里面的问题有以下几点:
1、按钮被按下要显示sum的结果,这样肯定是0,因为在command1_click()中,sum是个局部变量,没有赋值,故结果是0,所以应该将sum定义为全局变量,类型也应该是浮点形;
2、子过程没有被调用,即xiaoyu()没有被使用,所以应该在command1_click()中引用过程;
3、过程xiaoyu()中fm不应该定义为整形数,那样会溢出报错,应该定义为双精或单精浮点形;
改过后代码
Dim sum As Single

Function xiaoyu()
xiaoyu = True
Dim n As Integer
Dim fm As Single
fm = 1
sum = 0
n = 1
Do While xiaoyu = True
fm = fm * 2 * n
sum = sum + 1 / fm
n = n + 1
If fm > 10000 Then
xiaoyu = False
End If
Loop
End Function

Private Sub Command1_Click()
xiaoyu
MsgBox sum
End Sub
后面代码你自己分析一下,问题与上面差不多,也是过程没被调用。

请问具体是多少个代码片段啊?能用分割符号分一下哈?