【正文】
im i %, s% s=0 s=0 : i = 1 For i = 1 To 100 step 2 re: If i = 100 Then s = s + i s = s + i Next i i = i +2 GoTo re End If 0 初值 終值 =1 時(shí) ,可省略 0 初值 終值 =0 死循環(huán) 循環(huán)次數(shù) )1( ?? ?步長(zhǎng) 初值終值I n t要注意: ? 出了循環(huán),循環(huán)控制變量值的問題。 j。 2. Do…Loop 循環(huán)語(yǔ)句 (用于控制循環(huán)次數(shù)未知 ) 形式 1: Do { While|Until }條件 語(yǔ)句塊 [Exit Do 語(yǔ)句塊 ] Loop 形式 2: Do 語(yǔ)句塊 [Exit Do 語(yǔ)句塊 ] Loop { While|Until} 條件 表達(dá)式列表 1 F T F T E xi t D o 語(yǔ)句塊 語(yǔ)句塊 E xi t D o 語(yǔ)句塊 語(yǔ)句塊 表達(dá)式列表 1 圖 1 3 16 D o ? L o o p W hi l e 圖 1 3 15 D o W hi l e ? L o o p 例 我國(guó)有 13億人口,按人口年增長(zhǎng) %計(jì)算,多少年后我國(guó)人口超過 26億。 amp。 se。 3. End語(yǔ)句 多種形式: End、 End If、 End Select、 End With、 End Type、 End Sub、 End Function、 作用: End結(jié)束一個(gè)程序的運(yùn)行;其余表示某個(gè)結(jié)構(gòu)的結(jié)束,與對(duì)應(yīng)的結(jié)構(gòu)語(yǔ)句配對(duì)出現(xiàn)。 ( 2)累加: e=e+t 循環(huán)體外對(duì)累加和的變量清零 e=0 連乘: n=n*i 循環(huán)體外對(duì)連乘積變量置 1 n=1 Private Sub Form_Click() Dim i%,namp。 e End Sub ??????????????? m1i0i i!11i!1 ... !1...3!1!211!11ei2. 求素?cái)?shù) 素?cái)?shù)是一個(gè)大于 2,且 不能被 1和本身以外的整數(shù)整除的整數(shù)。 假定小雞每只 5角 , 公雞每只 2元 , 母雞每只 3元 。 方法一:最簡(jiǎn)單三個(gè)未知數(shù)利用三重循環(huán)來(lái)實(shí)現(xiàn)。 例 猴子吃桃子 。 Private Sub Command1_Click() Max = 100 For i = 1 To 10 x = Int(Rnd * 101 + 100) Print x。 程序如下: Private Sub Command1_Click() Dim a%, b%, r!, ia%, ib% r = 321 ? 最小值初值取鋼材料的長(zhǎng)度 For b = 1 To 321 \ 27 ? b最多的段數(shù) For a = 1 To 321 \ 17 b ? a最多的段數(shù) t = 321 b * 27 a * 17 ? 當(dāng)前的殘料 If t 0 And t r Then r = t ? 求最短的殘料 ia = a ? 最短殘料時(shí) a的段數(shù) ib = b ? 最短殘料時(shí) b的段數(shù) End If Next a Next b Print ia, ib, r End Sub 常 見 錯(cuò) 誤 1. 不循環(huán)或死循。 Max End Sub 例 實(shí)際應(yīng)用 , 求最短殘料 。 設(shè)第 n天的桃子為 xn, 那么它是前一天的桃子數(shù) 的 xn1 的一半減 1, 即 xn =( xn1 +1) 2 、最大值 在若干個(gè)數(shù)中求最大值 , 一般先假設(shè)一個(gè)較小的數(shù)為最大值的初值 ,若無(wú)法估計(jì)較小的值 , 則取第一個(gè)數(shù)為最大值的初值;然后將每一個(gè)數(shù)與最大值比較 , 若該數(shù)大于最大值 , 將該數(shù)替換為最大值;依次逐一比較 。 “遞推法”又稱為“迭代法”,其基本思想是把一個(gè)復(fù)雜的計(jì)算過程轉(zhuǎn)化為簡(jiǎn)單過程的多次重復(fù)。 設(shè)母雞 、 公雞 、 小雞各為 x、 y、 z只 , 根據(jù)題目要求 , 列出方程為: x+y+y=100 3x+2y+=100 三個(gè)未知數(shù),兩個(gè)方程,此題有若干個(gè)解。 例 求 100以內(nèi)素?cái)?shù)的代碼: For m = 2 To 100 For i = 2 To m 1 If (m Mod i) = 0 Then GoTo NotNextM Next i Print m NotNextM: Next m m是否為素?cái)?shù) 求 100以內(nèi)的素?cái)?shù) 思考: 此例用 Go To語(yǔ)句對(duì)非素?cái)?shù)不作判斷,若不用 GoTo語(yǔ)句,如何修改程序? “窮舉法”也稱為“枚舉法”或“試湊法”,即將可能出現(xiàn)的各種情況一一測(cè)試,判斷是否滿足條件,一般采用循環(huán)來(lái)實(shí)現(xiàn)。 i。 With Label1 .Height = 2022 .Width = 2022 .FontSize=22 .Caption = MyLabel End With = 2022 = 2022 =22 = MyLabel 等價(jià) 常用算法(一) 算法是對(duì)某個(gè)問題求解過程的描述 1. 累加、連乘 1~ 100的 5或 7的倍數(shù)的和 Sum = 0 For i = 1 To 100 If i Mod 5 = 0 Or i Mod 7 = 0 Then Sum = Sum + i End If Next i Print Sum 3~ 10的乘積 t = 1 For i =3 To 10 t = t * i Next i Print t 思考: 若把循環(huán)體前面置各變量初值的語(yǔ)句放在循環(huán)體內(nèi),程序運(yùn)行時(shí)會(huì)產(chǎn)生什么情況? 例 求自然對(duì)數(shù) e的近似值 ,要求其誤差小于 ,近似公式為: 該例題涉及兩個(gè)問題: ( 1)用循環(huán)結(jié)構(gòu)求級(jí)數(shù)和的問題。 正確 錯(cuò)誤 其他輔助控制語(yǔ)句 1. Go To 語(yǔ)句 形式 : Go To {標(biāo)號(hào) |行號(hào) } 作用:無(wú)條件地轉(zhuǎn)移到標(biāo)號(hào)或行號(hào)指定的那行語(yǔ)句 . 標(biāo)號(hào)是一個(gè)字符序列 ,行號(hào)是一個(gè)數(shù)字序列 . 多種形式: Exit For、 Exit Do、 Exit Sub、 Exit Function等 。 = amp。 分析:求最大公約數(shù)的算法思想: (1)對(duì)于已知兩數(shù) m, n, 使得 mn; (2) m除以 n得余數(shù) r; (3)若 r=0,則 n為最大公約數(shù)結(jié)束;否則執(zhí)行 (4); (4)m?n, n?r,再重復(fù)執(zhí)行 (2)。 i Next i Print 退出循環(huán)后 i=。 4)1( 3 213 ??? ?I n t步長(zhǎng) 例 改變 循環(huán)控制變量對(duì)循環(huán)的影響。 2. 多邊選擇 ElseIf關(guān)鍵字的書寫和條件表達(dá)式的表示 ElseIf 不要寫成 Else If; 多個(gè)條件表達(dá)式次序問題 ,見例 。 分析 :產(chǎn)生 1~ 10操作數(shù),可通過 Int(10 * Rnd + 1) 實(shí)現(xiàn) 設(shè)置的控件名 Label1 Text1 Picture1 Command1 ( 1) IIf函數(shù)形式是: IIf(表達(dá)式,當(dāng)表達(dá)式為 True時(shí)的值,當(dāng)表達(dá)式為 False時(shí)的值) 例如,求 x,y中大的數(shù),放入 Tmax變量中,語(yǔ)句如下: Tmax=IIf( x y, x, y) ( 2) Choose函數(shù)形式是: Choose(數(shù)字類型變量,值為 1的返回值,值為 2的返回值 …… ) 例如, Nop是 14的值,轉(zhuǎn)換成 + 、 、 、 247。 表達(dá)式列表 :與 變量或表達(dá)式 同類型的下面四種形式之一: 表達(dá)式 例 : A 一組枚舉表達(dá)式 (用逗號(hào)分隔 ) 2,4,6,8 表達(dá)式 1 To 表達(dá)式 2 60 To 100 Is 關(guān)系運(yùn)算符表達(dá)式 Is 60 5. Select Case語(yǔ)句 (情況語(yǔ)句 ) 形式: Select Case 變量或表達(dá)式 Case 表達(dá)式列表 1 語(yǔ)句塊 1 Case 表達(dá)式列表 2 語(yǔ)句塊 2 … [Case Else 語(yǔ)句塊 n+1] End Select 數(shù)值型或字符串表達(dá)式 例 變量 strC中存放了一個(gè)字符,判斷該字符類型。 用多分支結(jié)構(gòu)實(shí)現(xiàn) : If Ucase(strC) =A And Ucase (strC) =Z Then Print strC + 是字母字符 ElseIf strC =0 And strC =9 Then Print strC + 是數(shù)字字符 Else Print strC + 其他字符 End If 不管有幾個(gè)分支,依次判斷,當(dāng)某條件滿足,執(zhí)行相應(yīng)的語(yǔ)句,其余分支不再執(zhí)行;若條件都不滿足,且有 Else子句,則執(zhí)行該語(yǔ)句塊,否則什么也不執(zhí)行。 要求: 帳號(hào)不超過 6位數(shù)字,有錯(cuò),清除原內(nèi)容再輸入。 例: sRate!= = 歡迎使用 Visual Basic 當(dāng)表達(dá)式的類型與變量的類型不一致時(shí),強(qiáng)制轉(zhuǎn)換成左邊的精度,如 iA% = 10 / 3 iA中的結(jié)果為 3 注意: 雖然賦值號(hào)與關(guān)系運(yùn)算符等于號(hào)都用“ =”表示, VB系統(tǒng)會(huì)根據(jù)所處的位置自動(dòng)判斷是何種意義的符號(hào)。 ) 常 見 錯(cuò) 誤 1. 邏輯表達(dá)式書寫錯(cuò),在 VB沒有造成語(yǔ)法錯(cuò)而形成邏輯錯(cuò) 例如,數(shù)學(xué)表達(dá)式 3≤x< 10 VB表達(dá)式寫為 3=x10。 End Sub 6. Shell函數(shù) Shell函數(shù)負(fù)責(zé)執(zhí)行一個(gè)可執(zhí)行文件 , 返回一個(gè) Variant, 如果成功 , 代表這個(gè)程序的進(jìn)程 ID, 若不成功 , 則會(huì)返回 0。 Format(MyTime, hms AM/PM) Print Tab(2)。 (2)字符串函數(shù) Mid$(ABCDEFG,2,3) BCD InS