⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d8r5.frm

📁 常用的数值算法的VB程序
💻 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 + -