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

📄 查找.frm

📁 Visual Basic课程举例1 有很好的例题
💻 FRM
字号:
VERSION 5.00
Begin VB.Form 查找算法 
   AutoRedraw      =   -1  'True
   Caption         =   "查找算法"
   ClientHeight    =   4845
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   9900
   BeginProperty Font 
      Name            =   "Arial Black"
      Size            =   21.75
      Charset         =   0
      Weight          =   400
      Underline       =   0   'False
      Italic          =   0   'False
      Strikethrough   =   0   'False
   EndProperty
   LinkTopic       =   "Form1"
   ScaleHeight     =   4845
   ScaleWidth      =   9900
   StartUpPosition =   3  '窗口缺省
   Begin VB.CommandButton cmdZB 
      Caption         =   "折半查找"
      Height          =   795
      Left            =   7560
      TabIndex        =   6
      Top             =   3840
      Width           =   2175
   End
   Begin VB.CommandButton cmdSX2 
      Caption         =   "顺序查找FOR"
      Height          =   795
      Left            =   3720
      TabIndex        =   5
      Top             =   3840
      Width           =   3435
   End
   Begin VB.CommandButton cmdSX1 
      Caption         =   "顺序查找DO"
      Height          =   795
      Left            =   120
      TabIndex        =   2
      Top             =   3840
      Width           =   3135
   End
   Begin VB.Label lblSorted 
      BackColor       =   &H8000000E&
      Height          =   855
      Left            =   60
      TabIndex        =   4
      Top             =   2640
      Width           =   9735
   End
   Begin VB.Label lblOrgNum 
      BackColor       =   &H8000000E&
      Height          =   795
      Left            =   120
      TabIndex        =   3
      Top             =   960
      Width           =   9675
   End
   Begin VB.Label Label2 
      Caption         =   "有序数列S(): "
      Height          =   675
      Left            =   120
      TabIndex        =   1
      Top             =   1860
      Width           =   3315
   End
   Begin VB.Label Label1 
      Caption         =   "无序数列A(): "
      Height          =   675
      Left            =   120
      TabIndex        =   0
      Top             =   180
      Width           =   3435
   End
End
Attribute VB_Name = "查找算法"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
' 查找算法演示程序,编制:曹新国, 2004-3-14
' 最后修改于2006-4-5
Const N  As Integer = 10

Dim A(1 To N) As Integer
Dim S(1 To N) As Integer

Dim St$

'用DO WHILE循环来进行查找
Private Sub cmdSX1_Click()
    Dim P%, X%

    X = Val(InputBox("输入要查找的数X:", "要查找的数输入框"))
    
    P = 1
    Do While X <> A(P) And P < N
        P = P + 1
    Loop
    
    If X = A(P) Then
        MsgBox "你要查找的数" & X & "在第" & P & "个位置"
    Else
        MsgBox "没找到你要查的数" & X
    End If

End Sub
'用FOR循环来进行查找
Private Sub cmdSX2_Click()
    Dim P%, X%

    X = Val(InputBox("输入要查找的数X:", "要查找的数输入框"))
    
    For P = 1 To N
        If A(P) = X Then Exit For
    Next
    
    If P < N Then
        MsgBox "你要查找的数" & X & "在第" & P & "个位置"
    Else
        MsgBox "没找到你要查的数" & X
    End If

End Sub

Private Sub cmdZB_Click()
    Dim P1 As Integer, P2 As Integer, P3 As Integer
    Dim result As Boolean
    
    X = InputBox("输入要查找的数X:", "输入框")
    result = False       '初始化逻辑变量
    P1 = 1
    P3 = N
    P2 = (P1 + P3) / 2    '初始化指针
    Do While (result = False And P2 <> P3) '构造循环
        P2 = (P3 + P1) / 2                                '初始化指针
        If X = S(P2) Then           '判断
            result = True               '找到
        Else
            If X > S(P2) Then       '根据大小
                P1 = P2 + 1        '确定下一步比较范围
            Else
                P3 = P2 - 1
            End If
        End If
    Loop    '下一步通过分析result的真值来区分是否找到
    
    If result Then
        MsgBox "你要查找的数" & X & "在第" & P2 & "个位置"
    Else
        MsgBox "没找到你要查的数" & X
    End If


End Sub

Private Sub Form_Load()
    '产生N个随机数,分别放入A(I)及S(I)
    Randomize
    For I = 1 To N
        S(I) = Int(Rnd() * 100)
        A(I) = S(I)
    Next I
    
    '输出这N个随机数
    St = ""
    For I = 1 To N - 1
        St = St + Str(S(I)) + ","
    Next I
    St = St & S(N)
    lblOrgNum = St
    
    '对原始数据进行排序(从小到大,冒泡法)
    For I = 1 To N - 1
        For J = 1 To N - I
            If S(J) > S(J + 1) Then
                t = S(J)
                S(J) = S(J + 1)
                S(J + 1) = t
            End If
        Next J
    Next I

    '输出这N个排序后的数
    St = ""
    For I = 1 To N - 1
        St = St + Str(S(I)) + ","
    Next I
    St = St & S(N)
    lblSorted = St
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -