【正文】
否則根據(jù)數(shù)組元素的有序性,就可以確定查找關(guān)鍵字處于數(shù)組的前半部分還是后半部分;在新確定的查找范圍內(nèi),再按上面的辦法進(jìn)行查找,直到找到結(jié)果為止。 ④選擇排序的實(shí)現(xiàn) 核心代碼: For i= 1 to n1 ‘要做 n- 1 次選擇過(guò)程 k=i ‘ k 是當(dāng)前掃描到的最小的數(shù),第 i 次選擇開始時(shí),都默認(rèn)為 d(i) 最小 for j=i+1 to n if d(j)d(k) then k=j ‘若當(dāng)前掃描到的數(shù) d(j)比 d(k)小,則讓 k=j next j ‘當(dāng)前這一次循環(huán)完成后, d(k)肯定是這一次選擇的最小數(shù) if i k then ‘ 一次選擇完成后,觀察 k 還是不是最開始設(shè)定的 i c=d(k) d(k)=d(i) d(i)=c ‘ 若 k 不等于 i,則讓第 i 個(gè)數(shù)等于這一次掃描到的最小數(shù) Next I 例題:有如下 Visual Basic 程序: Dim a(1 To 6) As Integer Dim n, i, j, k As Integer Private Sub Command1_Click() For I = 1 To n 1 For j = I + 1 To n If a(I) a(j) Then k = a(I): a(I) = a(j): a(j) = k End If Next j Next I For I = 1 To n Str(a(I)) Next I End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then n = n + 1 a(n) = Val() Str(a(n)) = : End If End Sub 在列表框 list1 中,依次輸入數(shù)據(jù): 2 7 9 8 3 12 該程序運(yùn)行后,在列表框 list2 中顯示 ( A) 2 7 9 8 3 12 ( B) 12 9 8 2 3 7 ( C) 7 3 2 8 9 12 ( D) 7 3 12 9 8 2 答案: (B) 4.查找算法及程序?qū)崿F(xiàn) 《算法與程序設(shè)計(jì)》復(fù)習(xí)提綱 22 ①順序查找 思想方法:從第一個(gè)數(shù)據(jù)開始,按數(shù)據(jù)的順序 逐個(gè)將數(shù)據(jù)與給定的值進(jìn)行比較,若某個(gè)數(shù)據(jù)和給定值相等,則查找成功,找到所查數(shù)據(jù)的位置 。 具體實(shí)例 :水仙花數(shù):如果一個(gè)三位數(shù)等于它的每個(gè)數(shù)字的立方和,則此數(shù)稱為“水仙花”數(shù),如:153=13+53+33 程序段如下: For i = 100 To 999 a = i \ 100 b = i \ 10 Mod 10 c = i Mod 10 If a ^ 3 + b ^ 3 + c ^ 3 = i Then (Str(i)) sum = sum + 1 《算法與程序設(shè)計(jì)》復(fù)習(xí)提綱 20 End If Next i 2.解析算法及程序?qū)崿F(xiàn) ①什么是 解析算法 用常用的數(shù)學(xué)公式來(lái)解決某些問(wèn)題,這種叫解析算法 ② 解析算法的典型實(shí)例:如儲(chǔ)蓄問(wèn)題;已知速度和時(shí)間求路程問(wèn)題等 ③ 解析 算法的實(shí)現(xiàn): 先找出解決問(wèn)題的數(shù)學(xué)公式,然后轉(zhuǎn)化為 VB 的計(jì) 算過(guò)程 具體實(shí)例:儲(chǔ)蓄顧問(wèn) M 元錢需要多少年,才能得到至少 K 元利息? Private Sub Command1_Click() Dim x As Double m = Val() k = Val() x = (k m) / ( * m) y = Fix(x) If y x Then y = y + 1 = 存款應(yīng)為 + Str(y) + 年 End Sub 例題 2:火車托運(yùn)行李,要根據(jù)行李的重量按下列標(biāo)準(zhǔn)收費(fèi): 若不超過(guò) 50 千克,按每千克 元收費(fèi),若超過(guò) 50 千克,超過(guò)部分則按每千克 元收費(fèi)。 過(guò)程: 主要指 對(duì)象的事件處理過(guò)程,如在按鈕對(duì)象 mad1 上發(fā)生“鼠標(biāo)單擊”事件時(shí),會(huì)執(zhí)行一段程序來(lái)響應(yīng)這個(gè)事件,這一段程序就是一個(gè)事件處理過(guò)程 過(guò)程的結(jié)構(gòu): sub 事件處理過(guò)程名(參數(shù)表) ‘有些過(guò)程沒(méi)有參數(shù)表 語(yǔ)句塊 End sub 函數(shù): 能實(shí)現(xiàn)某個(gè)特定功能的一個(gè)程序模塊,包括 VB 中的標(biāo)準(zhǔn)函數(shù),如絕對(duì)值函數(shù) abs(x),取整函數(shù)int(x)等;還有一種就是用戶自定義的函數(shù),比如在程序中,經(jīng)常會(huì)用到 1+ 2+ 3+。 Private Sub Command1_Click() For I=1 to 20 X=Int( *101+200) If =0 then Print x S=S+ End if Next I Print “ sub=” 。 Private Sub Form1_Click() Dim x as single,amax as single,amin as single X=inputbox(“ Enter a score” ) amax=x amin=x Do While If xamax then amax=x End if If then amin=x End if X=inputbox(“ Enter a score” ) Loop Print “ max=” 。下列語(yǔ)句行錯(cuò)誤的是( ) A. if x=y then z=x:z=y B. if x=y then z=x else z=y C. z=y:if x=y then z=x D. if x=y then z=y else z=x 30.執(zhí)行下列程序,單擊命令按鈕后,從鍵盤分別輸入 4 和 5,則輸出是( ) Private Sub Command1_Click() X=inputBox(“請(qǐng)輸入 x 的值” ) y=inputBox(“請(qǐng)輸入 y 的值” ) s=x if xy then s=y s=s*s print s End Sub A. 4 B. 16 C. 20 D. 25 31.在窗體上畫一個(gè)命令按鈕,名稱為 Command1,然后編寫如下程序: Private Sub Command1_Click() For I=1 to 4 For J=0 to I Print Chr(65+I)。 2基本語(yǔ)句 賦值語(yǔ)句、選擇語(yǔ)句、循環(huán)語(yǔ)句、注釋語(yǔ)句 ① 賦值語(yǔ)句: 變量名=表達(dá)式 先計(jì)算右邊表達(dá)式的值,并將最終結(jié)果送給左邊的變量 ②選擇語(yǔ)句: If 條件表達(dá)式 Then 語(yǔ)句 1 If 條件表達(dá)式 Then 語(yǔ)句 1 Else 語(yǔ)句 2 ② 循環(huán)語(yǔ)句: For 循環(huán)變量=初值 To 終值 Step 步長(zhǎng) 語(yǔ)句塊 Next 循環(huán)變量 說(shuō)明:步長(zhǎng)為 1 時(shí), Step 語(yǔ)句可以省略 當(dāng)初值大于終值時(shí),步長(zhǎng)肯定為負(fù)數(shù) 循環(huán)次數(shù)的計(jì)算公式: in t( ) 1終 值 - 初 值 +步 長(zhǎng) Do While 條件表達(dá)式 語(yǔ)句塊 Loop ④其他語(yǔ)句形式:注意 VB 里的幾種特殊符號(hào)用法 冒號(hào)(:):在一行里同時(shí)寫幾個(gè)語(yǔ)句,那么相臨的語(yǔ)句間用冒號(hào)隔開 單引號(hào)( ’ ) :單引號(hào)開始的文字,在 VB 中僅起注釋的作用,不被執(zhí)行 例題: 25.在窗體上畫一個(gè)命令按鈕,然后編寫如下事件事程: Private Sub Command1_Click() A=inputBox(Enter the First integer) B=InputBox(Enter the Second integer) Print A+B End Sub 說(shuō)明: inputbox()為 VB 的輸入語(yǔ)句,即彈出一個(gè)對(duì)話框,提示用戶輸入數(shù)據(jù) 說(shuō)明:這里的 Elseif 語(yǔ)句可以沒(méi)有, Else 語(yǔ)句也可以沒(méi)有,一旦 if 語(yǔ)句不能在一行內(nèi)結(jié)束,那么一定要 Endif If 條件表達(dá)式 1 Then 語(yǔ)句塊 1 Elseif 條件表達(dá)式 2 Then 語(yǔ)句塊 2 Elseif 條件表達(dá)式 3 Then 語(yǔ)句塊 3 …… . Else 語(yǔ)句塊 n Endif 《算法與程序設(shè)計(jì)》復(fù)習(xí)提綱 16 程序運(yùn)行后,單擊命令按鈕,先后在兩個(gè)輸入對(duì)話框中分別輸入 456 和 123,則輸出結(jié)果是( ) A. 579 B. 123 C. 456123 (更正 ) D 123456 26. 下列 Visual Basic 程序段運(yùn)行后,變量 Value 的值為( )。但考試時(shí)常出現(xiàn)已做 (1)(2),要求完善 (3)的情況;或者要求做 (1)(2),但不要求做 (3)的情況,當(dāng)然也可能要求完整的做 (1)(2)(3)(4),一定要 注意審題 。 15.下面( )不是字符串常量 A. ” 你好 ” B. ” ” C. ” True” D. False 16.表達(dá)式 Abs(5)+len(“ ABCDE” )的值是( ) A. 5ABCDE B. 5ABCDE C. 10 D. 0 17.表達(dá)式 Str(len(“ 123” ))+str()的值是( ) A. B. 3 C. D. 格式一: If 條件 Then 語(yǔ)句組 1 Else 語(yǔ)句組 2 格式二: If 條件 Then 語(yǔ)句組 1 Else 語(yǔ)句組 2 End If 《算法與程序設(shè)計(jì)》復(fù)習(xí)提綱 13 學(xué)習(xí)提示:利 用“立即窗口”進(jìn)行調(diào)試,使用“?”或者“ print”命令。 not (22)值為 true 日期型比較:日期型比較時(shí)“今天比昨天大”的規(guī)則。 【 注意 】 在英文半角狀態(tài)下的雙引號(hào)中所