【正文】
找到,使“添加”按鈕不可用 Else = True End If End Sub 其中常量 vbKeyDelete表示 Delete鍵對應(yīng) KeyCode碼。輸入文字時項目是否存在,按鈕是否可用 Dim S As String, Low As Integer, High As Integer, Mid As Integer, i As Integer For i = 0 To 1 (i) = False Next i S = Low = 0: High = 1 39。代碼類同于 List1_KeyDown 39。雙擊左列表框 ,直接將項目放入右列表框 End Sub Private Sub List1_KeyDown(KeyCode As Integer, Shift As Integer) Dim i As Integer If KeyCode = vbKeyDelete Then 39。選中一個 = True: = False Case Is 1 39。當(dāng)列表框單擊時,決定復(fù)制按鈕是否可用 Select Case Case 0 39。將文本框中的姓名添加到左列表框中 If Then = End Sub Private Sub Form_Load() 39。復(fù)制一個項目 ,使原項目不處于選中狀態(tài) () = False End Sub Private Sub Command2_Click() 39。 Visual Basic程序設(shè)計教程 94 事件: 文本框的 Change: 檢測輸入的字符串是否已在左列表框中 List1( 左 ) 的 Click:檢測 左列表框中是否有項目被選中 , 以決定復(fù)制按鈕是否可用 兩個列表框的 KeyDown或 KeyUp: 按 Delete鍵能刪除選中的項目 3個命令按鈕的 Click事件 。兩個列表框中都可用 Delete鍵刪除選中的項目 。 個數(shù)據(jù) 39。 Key Else Print 已找到,是第 。后半部分為新范圍 Low = Mid + 1 Else 39。確定中間元素 If Key = A(Mid) Then Exit Do 39。若沒有,則顯示: 找不到 。key33, 3 3 3 3 low=5+1=6 5 5 5 5 出現(xiàn)lowhigh 9 9 9 9 20 20 20 20 33 33 33 33 44 44 44 44 56 56 56 56 90 90 90 90 h l h l 【 例 713】 從鍵盤輸入一個整數(shù),判斷該數(shù)是否在已排序的 20個數(shù)的數(shù)組之內(nèi)。 Visual Basic程序設(shè)計教程 90 例如:在以下數(shù)據(jù)中找 40。若存在,則顯示數(shù)據(jù)下標(biāo)。 共比較 3 3 3 3次。 Visual Basic程序設(shè)計教程 89 例如:在以下數(shù)據(jù)中找 33。即: 隨著 High的不斷減少, Low的不斷增大,若不 存在 Key時,最終將導(dǎo)致 LowHigh。 5.若: Key 中間元素,可更改上界為 High=Mid 1。 1.把待查數(shù)據(jù)范圍分成二半,取出作為分界線的中間元素,其下標(biāo)為 Mid=(Low+High)\2 ; 2.將中間元素 A(Mid)與 Key比較; 3.若: Key = 中間元素 A(Mid), 找到 。 這仍是檢索問題,當(dāng)然可用順序查找法。若是,則輸出這個數(shù)的下標(biāo)。 個數(shù) , , 提示 End If Else 39。 是第 amp。順序查找開始 For i = 1 To 30 If A(i) = X Then Exit For Next i If i 30 Then MsgBox 找不到 amp。產(chǎn)生數(shù)據(jù)并輸出 A(i) = Int(Rnd * 90 + 10) : Print A(i)。 簡單的方法是采用順序檢索(線性查找法),即: 將鍵盤輸入的數(shù)據(jù) X與 a(1)~ a(N)逐一比較 若與某個 a(i)相符,則找到,否則找不到。 這是一個檢索(查找)問題。若無,顯示“找不到”。 Next i Print End Sub Visual Basic程序設(shè)計教程 83 檢索問題 【 例 712】 用隨機(jī)函數(shù)產(chǎn)生 30個兩位整數(shù)。 Next i Print Visual Basic程序設(shè)計教程 82 For i = 1 To N \ 2 T = A(i): A(i) = A(N i + 1): A(N i + 1) = T 39。 i amp。 Visual Basic程序設(shè)計教程 81 【 例 711】 編程:數(shù)組元素反過來存放。 另外一個問題是如何進(jìn)行數(shù)據(jù)對換,對換幾次? 對換只要進(jìn)行 Int(n/2)次就可以了。 如:輸入 8和 1 1 1 1 1 1 1 18,輸出為: 11 12 13 14 15 16 17 18和 18 17 16 15 14 13 12 11。 即第 1個元素與第 n個元素互換,第 2個元素與第 n1個元素互換, … 。 Dim ID() As Integer, Name1() As String, i As Integer ReDim ID(5), Name1(5) For i = 1 To 5 ID(i) = i: Name1(i) = A amp。 在 ReDim中使用 Preserve關(guān)鍵字可保留原數(shù)據(jù)。 聲明并使用動態(tài)數(shù)組需要兩個步驟: 1.聲明動態(tài)數(shù)組 格式: Dim 數(shù)組名 ( ) [As 類型名 ] 它聲明了一個空維數(shù)組,表明該數(shù)組是動態(tài)數(shù)組 例如 Dim a() As Integer Visual Basic程序設(shè)計教程 76 2.用 Redim語句分配數(shù)組的實際元素個數(shù) ReDim語句是一個可執(zhí)行語句 作用是為數(shù)組分配實際空間。 Round(Average / Count, 2) End Sub Visual Basic程序設(shè)計教程 75 如何聲明動態(tài)數(shù)組 如果在運(yùn)行時才能確定數(shù)組大小,可用動態(tài)數(shù)組。 If Age(i, j) Max Then Max = Age(i, j) If Age(i, j) 0 Then Count = Count + 1: Average = Average + Age(i, j) Next j Print Next I Print 最大年齡為 :。在二重循環(huán)中實現(xiàn)矩陣輸出、求最大值、求和、統(tǒng)計個數(shù) For j = 1 To N Print Tab((j 1) * 5 + 1)。 j amp。 i amp。 Visual Basic程序設(shè)計教程 73 使用二維數(shù)組 【 例 710】 矩陣操作 Const N = 10 Private Sub Command1_Click() Dim i As Integer, j As Integer ,Count As Integer Dim Age(N, N) As Integer, Max As Integer, Average As Integer For i = 1 To N 39。并要求: ( 1)輸出該矩陣; ( 2)輸出矩陣最大元素值(最大年齡); ( 3)輸出平均值(平均年齡)。換行 Next I 5.訪問數(shù)組 每個元素都可以象簡單變量一樣使用 成批操作時,可以通過循環(huán)來進(jìn)行。每行顯示 4個,共 3行。 For j = 1 To 4 a(i, j) = N N = N + 1 Next j Next I Visual Basic程序設(shè)計教程 69 3.運(yùn)行時通過輸入賦值,如: For i = 3 To 5 39。 計算機(jī)學(xué)院 N = 1 For i = 1 To 3 39。 Visual Basic程序設(shè)計教程 67 使用二維數(shù)組 1.引用數(shù)組元素 格式:數(shù)組名 (下標(biāo) ,下標(biāo) ) 如 Dim A( 9 , 9 ) As String, B(3 To 5 , 20) As Integer 可用 A(2,2)、 A(i,i)、 A(k*2,5)、 B(4,6)訪問元素 0≤i ≤9; 0≤ k*2 ≤9 但 A(7)、 B(1,3)都是錯誤 ??????????121110987654321Visual Basic程序設(shè)計教程 68 2.給數(shù)組元素賦值 ——同普通變量一樣賦值。―退出”按鈕 End End Sub Visual Basic程序設(shè)計教程 65 二維數(shù)組有兩個下標(biāo) 二維數(shù)組可表示一個矩陣 可以把第一個下標(biāo)看作行,第二個下標(biāo)看作列。乘法 Visual Basic程序設(shè)計教程 64 Case 3 39。加法 Case 1 : = Val() Val() 39。 Visual Basic程序設(shè)計教程 63 Private Sub Command1_Click(Index As Integer) = Comman