VB程序学习代码记录20160717

这篇博客记录了VB程序中关于数组的操作,包括元素的插入和删除,以及几种排序算法的实现,如选择排序、冒泡排序和二分法排序。此外,还详细探讨了如何在数组中查找特定值‘奥运’的索引位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组元素插入

Dim a() As Long

Private Sub Form_Load()
    ReDim Preserve a(1 To 4)
    a(1) = 1: a(2) = 2: a(3) = 3: a(4) = 4
    Dim i As Long, m As Long
    Debug.Print vbNewLine & "原数组元素:"
    For i = 1 To 4
        Debug.Print "a(" & CStr(i) & ")=" & CStr(a(i)),
    Next i
    Debug.Print vbNewLine & "插入后数组元素:"
    Dim n As Long: n = 5
    ReDim Preserve a(1 To 5)
    For i = 2 To 5
        m = a(i)
        a(i) = n
        n = m
    Next i
    For i = 1 To 5
        Debug.Print "a(" & CStr(i) & ")=" & CStr(a(i)),
    Next i
End Sub

数组元素删除

Dim a() As Long
Private Sub Form_Load()
    ReDim a(1 To 4) As Long
    Dim i As Long
    a(1) = 1: a(2) = 2: a(3) = 3: a(4) = 4:
    Debug.Print vbNewLine & "删除元素前"
    For i = 1 To 4
        Debug.Print "a(" & CStr(i) & ")=" & CStr(a(i)),
    Next i
    a(3) = a(4)
    ReDim Preserve a(1 To 3)
    Debug.Print vbNewLine & "删除元素后"
    For i = 1 To 3
        Debug.Print "a(" & CStr(i) & ")=" & CStr(a(i)),
    Next i
End Sub

找到需要找到的数值

Private Sub Form_Click()
    Dim a(1 To 10) As Long
    Dim i As Integer
    For i = 1 To 10
        a(i) = i
    Next i
    a(8) = 19
    For i = 1 To 10
        Print "a(" & CStr(i) & ")=" & a(i)
    Next i
    For i = 1 To 10
        If a(i) = 19 Then
            MsgBox "查找的数值保存在数组元素a(" & CStr(i) & ")中。", vbOKOnly, "提示"
            Exit For
        End If
    Next i
End Sub

选择排序法

Dim a(1 To 5) As Long
Private Sub Command1_Click()
    a(1) = 3: a(2) = 2: a(3) = 7: a(4) = 9: a(5) = 5
    Dim i As Long, l As Long, n As Long
    For i = 1 To 4
        For l = i To 5
            If a(i) < a(l) Then
                n = a(i)
                a(i) = a(l)
                a(l) = n
            End If
        Next l
    Next i
    For i = 1 To 5
        Print "a(" & CStr(i) & ")=" & CStr(a(i)),
    Next i
End Sub

冒泡排序法

Dim a(1 To 5) As Long

Private Sub Command1_Click()
    a(1) = 3: a(2) = 2: a(3) = 7: a(4) = 9: a(5) = 5
    Dim i As Long, l As Long, n As Long
    For i = 1 To 4
        For l = 1 To 4
            If a(l) < a(l + 1) Then
                n = a(l)
                a(l) = a(l + 1)
                a(l + 1) = n
            End If
        Next l
    Next i
    For i = 1 To 5
        Print "a(" & CStr(i) & ")=" & CStr(a(i)),
    Next i
End Sub

二分法排序

Dim myarray(100) As Integer

Private Sub Command1_Click()
    Dim low, high, mid As Integer
    Dim found As Boolean
    low = 0
    high = UBound(myarray)
    found = False
    mid = (high + low) / 2
    Do While Not found And (high >= low)
        If CInt(Text1.Text) = myarray(mid) Then
            found = True
            MsgBox (mid)
            MsgBox (myarray(mid))
            Exit Do
        ElseIf CInt(Text1.Text) < myarray(mid) Then
            high = mid - 1
        Else
            low = mid + 1
        End If
        mid = (high + low) / 2
    Loop
End Sub

Private Sub Form_Load()
    Dim i As Integer
    For i = 0 To UBound(myarray)
        myarray(i) = i + 5
        Print myarray(i)
    Next i
End Sub

记录数组

Private Type peo
    nam As String
    age As Integer
End Type

Private Sub Command1_Click()
    Dim a(1 To 2) As peo
    a(1).age = 20
    a(1).nam = "五一"
    a(2).age = 23
    a(2).nam = "万多"
    For i = 1 To 2
        Print a(i).nam; a(i).age & "岁"
    Next i
End Sub

查找下标为0、上标为99的数组中值为“奥运”的元素索引值。

Dim a(0 To 99) As String

Private Sub Form_Load()
    Dim i As Integer
    For i = 0 To 99
        a(i) = "abcd"
    Next i
    a(88) = "奥运"
    find
End Sub

Private Sub find()
    Dim i As Integer
    For i = 0 To 99
        If a(i) = "奥运" Then
            MsgBox "索引值为:" & i
            Exit Sub
        End If
    Next i
End Sub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值