ydren 2013-11-14 07:35
浏览 1511

vb里面子过程参数为数组时,调用子过程出现数组未定义错误

大家好,我有段用松弛迭代法解线性方程组的程序,程序包括一个子过程ssor。
该子过程含有数组参数,在调用子过程时,提示数组参数未定义的错误。
下面是该程序,请热心人帮忙检查检查,谢谢大家!

Sub ssor(a() As Single, n As Integer, b() As Single, x() As Single, eps As Single, om As Single, count As Integer)
' 松弛迭代法解线性方程组子过程,参数说明:
'a()系数矩阵;n方程组维数;b()方程组右端项;x()方程组的解;eps是解的精度;om松弛因子;count迭代次数
Dim i, j As Integer
Dim r As Single
imax = 200
For i = 1 To n
r = 1 / a(i, i)
b(i) = b(i) * r
For j = 1 To n
a(i, j) = a(i, j) * r
Next j
Next i
For count = 1 To imax
rx = 0
For i = 1 To n
r = b(i)
For j = 1 To n
r = r - a(i, j) * x(j)
Next j
If Abs(r) > rx Then rx = Abs(r)
x(i) = x(i) + om * r
Next i
If om * rx <= eps Then Exit Sub
Next count
End Sub
Private Sub Command1_Click()
Dim a(2, 2), b(2), x(2) As Single
Dim i, j As Integer
Dim temp As Single
For i = 0 To 8
For j = 0 To 2
If i <= 2 Then
a(0, j) = Val(Text1(j).Text)
Print a(0, j)
ElseIf i <= 5 And i >= 3 Then
a(1, j - 3) = Val(Text1(j).Text)
Print a(1, j - 3)
ElseIf i >= 6 Then
a(2, j - 6) = Val(Text1(j).Text)
Print a(2, j - 6)
End If
Next j
Next i
For i = 0 To 2
x(i) = Val(Text3(i).Text)
b(i) = Val(Text2(i).Text)
Next i
Call ssor(a(), 2, b(), x(), 0.0001, 1, t)
Print "迭代次数"; t
Print "方程组的根"; x(0); x(1); x(2)
End Sub

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥30 这是哪个作者做的宝宝起名网站
    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!