Private Sub Command1_Click(index As Integer)
Dim a() As Integer, b() As Integer, i As Integer, j As Integer, s() As String, ss() As String
Select Case index
Case 0
ReDim a(4, 7) As Integer
For i = 1 To 4
For j = 1 To 7
a(i, j) = Val(InputBox("请输入a(" & i & "," & j & "):"))
Next j
Next i
Text1.Text = ""
For i = 1 To 4
For j = 1 To 7
Text1 = Text1 & a(i, j)
Next j
Text1 = Text1 & vbCrLf
Next i
Case 1
s = Split(Text1.Text, Chr(13) & Chr(10))
For i = 1 To 4
ss = Split(s(i))
For j = 1 To 7
a(i, j) = Val(ss(j))
Next j
Next i
Call jzqn(a(), b())
For i = 1 To 4
For j = 1 To 7
Text2 = Text2 & b(i, j)
Next j
Text2 = Text2 & vbCrLf
Next i
End Select
End Sub
Public Sub jzqn(qa(), na())
Dim a() As Integer
ReDim na(n, n) As Integer
ReDim a(n, 2 * n) As Integer
For i = 1 To n
For j = 1 To n
a(i, j) = qa(i, j)
Next j
Next i
For i = 1 To n
For j = n + 1 To 2 * n
If j - i = n Then
a(i, j) = 1
Else
a(i, j) = 0
End If
Next j
Next i
For i = 1 To n
If a(i, i) = 0 Then
For q = i To n
If a(q, i) <> 0 Then
For w = i To 2 * n
zj = a(i, w)
a(i, w) = a(q, w)
a(q, w) = zj
Next w
Exit For
End If
Next q
If q > n Then MsgBox "此矩阵不可逆": Exit Sub
End If
For k = 2 * n To i Step -1
a(i, k) = a(i, k) / a(i, i)
Next k
For j = i + 1 To n
If a(j, i) <> 0 Then
For k = 2 * n To i Step -1
a(j, k) = a(j, k) / a(j, i) - a(i, k)
Next k
End If
Next j
Next i
For i = n To 1 Step -1
If a(i, i) = 0 Then
For q = i - 1 To 1 Step -1
If a(q, i) <> 0 Then
For w = i To 2 * n
zj = a(i, w)
a(i, w) = a(q, w)
a(q, w) = zj
Next w
Exit For
End If
Next q
End If
For k = 2 * n To i Step -1
a(i, k) = a(i, k) / a(i, i)
Next k
For j = i - 1 To 1 Step -1
If a(j, i) <> 0 Then
xxx = a(j, i)
For k = 2 * n To 1 Step -1
a(j, k) = a(j, k) / xxx - a(i, k)
Next k
End If
Next j
Next i
For i = 1 To n
For j = 1 To n
na(i, j) = a(i, j + n)
Next j
Next i
End Sub
那里有错?本人新手。求大神指点。。。
vb矩阵求逆提示类型不匹配:缺少数组和用户定义类型
答案:2 悬赏:10 手机版
解决时间 2021-03-12 22:09
- 提问者网友:無理詩人
- 2021-03-12 03:35
最佳答案
- 五星知识达人网友:深街酒徒
- 2021-03-12 05:13
用Split函数分割而成的数组,其下标是固定从0起算的,所以ss = Split(s(i))要改为ss = Split(s(i-1)),同样a(i, j) = Val(ss(j))要改为a(i, j) = Val(ss(j-1))
其次,Text1 = Text1 & a(i, j)这里数字之间要加个空格,否则无法用Split分割,即改为Text1 = Text1 & a(i, j) & " "
其他问题还有没有就不知道了,代码太长,无法测试。
其次,Text1 = Text1 & a(i, j)这里数字之间要加个空格,否则无法用Split分割,即改为Text1 = Text1 & a(i, j) & " "
其他问题还有没有就不知道了,代码太长,无法测试。
全部回答
- 1楼网友:青尢
- 2021-03-12 05:32
Public Sub jzqn(qa() As Integer, na() As Integer)
再看看别人怎么说的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯