📄 d8r5.frm
字号:
VERSION 5.00
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 4545
ClientLeft = 60
ClientTop = 345
ClientWidth = 6210
LinkTopic = "Form1"
ScaleHeight = 4545
ScaleWidth = 6210
StartUpPosition = 3 'Windows Default
Begin VB.CommandButton Command1
Caption = "Command1"
Height = 375
Left = 4440
TabIndex = 0
Top = 3840
Width = 1215
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
'PROGRAM D8R5
'Driver for routine BALANC
NP = 5
Dim A(5, 5), R(5), C(5)
A(1, 1) = 1#: A(1, 2) = 100#: A(1, 3) = 1#: A(1, 4) = 100#: A(1, 5) = 1#
A(2, 1) = 1#: A(2, 2) = 1#: A(2, 3) = 1#: A(2, 4) = 1#: A(2, 5) = 1#
A(3, 1) = 1#: A(3, 2) = 100#: A(3, 3) = 1#: A(3, 4) = 100#: A(3, 5) = 1#
A(4, 1) = 1#: A(4, 2) = 1#: A(4, 3) = 1#: A(4, 4) = 1#: A(4, 5) = 1#
A(5, 1) = 1#: A(5, 2) = 100#: A(5, 3) = 1#: A(5, 4) = 100#: A(5, 5) = 1#
'Print norms
For I = 1 To NP
R(I) = 0#
C(I) = 0#
For J = 1 To NP
R(I) = R(I) + Abs(A(I, J))
C(I) = C(I) + Abs(A(J, I))
Next J
Next I
Print
Print Tab(5); "Rows:"
Print
For I = 1 To NP
Print Format$(R(I), "####.00000"),
Next I
Print Tab(5)
Print Tab(5); " Columns:"
Print
For I = 1 To NP
Print Format$(C(I), "####.00000"),
Next I
Print Tab(5)
Print Tab(5); " ********** Balancing Matrix **********"
Call BALANC(A(), NP)
'Print norms
For I = 1 To NP
R(I) = 0#
C(I) = 0#
For J = 1 To NP
R(I) = R(I) + Abs(A(I, J))
C(I) = C(I) + Abs(A(J, I))
Next J
Next I
Print Tab(5)
Print Tab(5); "Rows:"
Print
For I = 1 To NP
Print Format$(R(I), "####.00000"),
Next I
Print Tab(5)
Print Tab(5); " Columns:"
Print
For I = 1 To NP
Print Format$(C(I), "####.00000"),
Next I
End Sub
Sub BALANC(A(), N)
RADIX = 2#
SQRDX = RADIX ^ 2
1 Last = 1
For I = 1 To N
C = 0#
R = 0#
For J = 1 To N
If J <> I Then
C = C + Abs(A(J, I))
R = R + Abs(A(I, J))
End If
Next J
If C <> 0# And R <> 0# Then
G = R / RADIX
F = 1#
S = C + R
2 If C < G Then
F = F * RADIX
C = C * SQRDX
GoTo 2
End If
G = R * RADIX
3 If C > G Then
F = F / RADIX
C = C / SQRDX
GoTo 3
End If
If (C + R) / F < 0.95 * S Then
Last = 0
G = 1# / F
For J = 1 To N
A(I, J) = A(I, J) * G
Next J
For J = 1 To N
A(J, I) = A(J, I) * F
Next J
End If
End If
Next I
If Last = 0 Then GoTo 1
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -