33.(一)順序查找數據:我們假定被查找的數據存儲在有n個元素的數組變量d中,要尋找的一個特定的數據(這個數據稱為查找鍵)已經存儲在變量key中. 下面是順序查找算法的輸入輸出說明. 輸入:查找鍵(設在變量key中). 被查找的數據(設在數組變量d中). 輸出:若找到,輸出值為key的數據所在的數組元素的下標,記為i; 若未找到,輸出結果為提示字符串:“找不到“. 當在n=8個元素的數組里順序查找數據的示意圖如下: 總結順序查找數據結果判斷條件: (1)當找到時,肯定i<=8,n個數據時,肯定i<=n,i即為找到的數組元素下標,d(i)=key; (2)當“找不到“時,i=9>8了;n個數據時,當i=n+1時,表示“找不到“. 順序查找的主程序段如下: Private Sub 順序查找_Click( ) n個數據放入d(1)到d(n)中 Key=Val(Text1.Text):i=1‘變量Key從文本框Text1取的數要查找的數; Do While ① i=i+1 Loop If i<=n Then Text2.Text=“在d(“+Str(i)+“)中“‘例如在文本框Text2顯示:“在d(6)中” Else Text2.Text=“找不到“ End If End Sub 以上程序Do While的條件 ①是
(A)Key<>d(i) (B)i<=n (C))Key<>d(i) And i<=n (D)Key<>d(i) or i<=n.
(順序查找/對分查找)。 Dim a(1to 500)as string‘用于存放參加考試學生的身份證號碼 Dim s(1to 500)as single‘用于存入參加考試學生的總分成績 ‘form_load 過程用于進行一些初如化準備工作 Private Sub form_load ( ) ‘將參加此次考試學生的身份證號碼存放在數組a中 ‘將參加此次考試學生的總分成績存放在數組s中 For i=1to 499‘利用排序法將學生成績進行降序排序 For j=500to i+1step-1 If ① then t=s(j):s(j)=s(j-1):s(j-1)=t t=a(j):a(j)=a(j-1):a(j-1)=t End If Next j ② End sub ‘command1_click過程用于查詢學生的總分成績及排名 Private sub command_click ( ) Dim,bank as integer‘bank為排名 Dim index as Boolean‘index為查詢憑證 Dim hm as string’hm為身份證號碼 hm=text1.text index=false For i=1to 500 If hm=a(i) then index=true:bank=i:exit for‘代碼exit for的作用為退出for循環 Next i If index=true then Text2.text=str(s(bank)) Text3.text=str(bank) Else Msgbox (“無此身份號碼”) End if。