【正文】
oop循環(huán) ?Exit For:跳出 For… Next循環(huán) [例 ] 判斷一個正整數(shù)是否為素數(shù) (質(zhì)數(shù) ) N = InputBox(請輸入一個正整數(shù) , 驗證素數(shù) ) For I = 2 To N 1 If N Mod I = 0 Then Exit For End If Next I If I = N Then MsgBox N amp。 是素數(shù) , , 驗證素數(shù) Else MsgBox N amp。 不是素數(shù) , , 驗證素數(shù) End If 返回目錄 素數(shù) :一個正整數(shù) N除了能被 1和自身所整除外,不能被其它任何數(shù)所整除 。 其他語句 - Exit與 End 2. End語句 ? End:終止程序的運行 ? End Sub:終止一個過程; ? End Function:終止函數(shù)過程 ? End If:終止條件語句 ? End Type:終止類型聲明 ? End Select:終止情況語句 ? End Property:終止屬性過程 ? End With:終止 With語句 返回目錄 例如: Private Sub Command1_Click() End End Sub 其他語句 - Goto ? 功能:無條件轉(zhuǎn)向 ? 格式: Goto label label稱為語句標(biāo)號 (數(shù)字或標(biāo)識符 ) [例 ] 求若干個同學(xué)的成績總分 Private Sub Form_Click() Dim Data, Sum As Integer Sum = 0 loop1: Data = InputBox(輸入成績 ) If Data = 1 Then GoTo loop2 Else Sum = Sum + Data GoTo loop1 End If loop2: Print 總分 =。 Sum End Sub 返回目錄 Goto語句不符合結(jié)構(gòu)化程序設(shè)計的要求,所以不提倡使用。 程序調(diào)試 - 程序的錯誤類型 語法錯誤 運行錯誤 返回目錄 中文逗號 n未賦過值 邏輯錯誤:算法不正確。 顯然系統(tǒng)不會報告這類出錯信息 。 程序調(diào)試 - 簡單調(diào)試 方法:在程序中適當(dāng)插入 Print語句跟蹤變量值的變化 返回目錄 應(yīng)該是 6與 24 程序調(diào)試 - 使用調(diào)試工具 1. 斷點調(diào)試 斷點 :程序執(zhí)行到該此自動暫停 單擊“繼續(xù)”按鈕 , 程序可繼續(xù)執(zhí)行。 返回目錄 設(shè)置斷點:在代碼窗口中單擊該語句左側(cè)的陰影邊框。 暫停時,將鼠標(biāo)指針移動到程序中的各個變量上略作停留,系統(tǒng)將以浮動標(biāo)簽的方式顯示該變量的值。 程序調(diào)試 - 使用調(diào)試工具 2. 逐語句執(zhí)行 啟動逐語句執(zhí)行: “ 調(diào)試 → 逐語句 ” 或 按 F8 終止 逐語句執(zhí)行 : “ 調(diào)試 → 跳出 ” 3. 使用立即窗口 程序運行處于暫停狀態(tài)時, 在立即窗口中輸入: Print 變量名 或 ? 變量名 4. 逐過程 啟動逐過程執(zhí)行: “ 調(diào)試 → 逐過程 ” 或 按 Shift+F8 終止 逐過程執(zhí)行 : “ 調(diào)試 → 跳出 ” 返回目錄 第 4章 數(shù)組與過程 學(xué)習(xí)目標(biāo): ? 掌握數(shù)組和過程的概念 ? 掌握數(shù)組的定義和應(yīng)用 ? 掌握 Sub過程和 Function過程的應(yīng)用 ? 掌握過程的參數(shù)傳遞與過程的作用域 ? 了解 Shell函數(shù) 第 4章 數(shù)組與過程 教學(xué)內(nèi)容: 數(shù)組 過程 Shell函數(shù) 數(shù)組 - 數(shù)組的概念 ? 數(shù)組用于保存大量的 、 邏輯上有聯(lián)系的數(shù)據(jù) ? 數(shù)組的特點: ? 數(shù)據(jù)中的元素在類型上是一致的 ? 數(shù)組元素在內(nèi)存空間上是連續(xù)存放的 ? 數(shù)組元素的引用可通過下標(biāo)進行 ? 數(shù)組在使用前必須要定義 (聲明 ) 返回目錄 數(shù)組 - 一維數(shù)組的定義和使用 1. 數(shù)組的定義 (聲明 ) Dim 數(shù)組名 ([下界 To ]上界 ) As 數(shù)據(jù)類型 例如 : Dim Data(1 To 40) As Integer ? 定義數(shù)組可以使用類型符 例 , Dim Data%(1 To 40) ? 下界的默認(rèn)值為 0 例 , Dim Salary(1000) As Currency ? 通過數(shù)組名和下標(biāo)可引用數(shù)組中的元素 例 , Data(25)=95 Data(25) 返回目錄 數(shù)組 - 一維數(shù)組的定義和使用 說明 1: ? 數(shù)組定義后的初值:數(shù)值型數(shù)組各元素為 0, 邏輯型數(shù)組各元素為 False, 字符串?dāng)?shù)組各元素為空串 ()。 ? 可同時聲明幾個數(shù)組 , 用逗號分隔 , 例如 Dim A%(10 To 100), B(800) As Long ? 定義數(shù)組時 , 下標(biāo)的下界和上界值只能是常數(shù)或常數(shù)表達式 。 下例的定義是錯誤的 N=100 : Dim Data(N) As Integer ? 定義時 , 數(shù)組的上界值不得超出長整型范圍 , 且數(shù)組的上界值不得小于下界值 。 返回目錄 數(shù)組 - 一維數(shù)組的定義和使用 說明 2: ? 數(shù)組的元素個數(shù)稱為數(shù)組長度 。 ? Lbound()、 Ubound()函數(shù)可測定數(shù)組的下界與上界值 例如: Private Sub Form_Click() Dim A%(12 To 24) Print LBound(A), UBound(A) End Sub ? 用 Option Base n可設(shè)定數(shù)組的默認(rèn)下界 ? n的取值只能是 0或 1 ? 設(shè)定方法:在代碼窗口的通用聲明段中輸入 Option Base 0 或 Option Base 1 返回目錄 數(shù)組 - 一維數(shù)組的定義和使用 2. 數(shù)組元素的使用 通過數(shù)組名和下標(biāo) [例 ] Private Sub Command1_Click() Dim Data(5) As Integer Dim Sum, I As Integer For I = 1 To 5 39。輸入 5個數(shù)據(jù)到數(shù)組中 Data(I) = InputBox(輸入第 amp。 I amp。 個數(shù)據(jù) ) Next I For I = 1 To 5 39。完成 5個數(shù)組元素的相加 Sum = Sum + Data(I) Next I Print Sum End Sub 返回目錄 For I = 1 To 5 Data(I) = InputBox(輸入第 amp。 I amp。 個數(shù)據(jù) ) Sum = Sum + Data(I) Next I 數(shù)組 - 一維數(shù)組的定義和使用 說明 : ? 數(shù)組實際上是用一個變量名字代表一組數(shù) , 這組數(shù)是連續(xù)排列的 , 用順序號作為下標(biāo)區(qū)分各個數(shù) 。 ? 數(shù)組下標(biāo)是一個整型量 , 如果有小數(shù)則自動按四舍五入取整 。 例如 , Data()=3, 而 Data()=2。 ? 數(shù)組常見的錯誤: 下標(biāo)出界 返回目錄 Test(1)=4 Test(2)=3 Test(3)=2 Test(4)超出定義 數(shù)組 - 一維數(shù)組應(yīng)用例題 [例 ] 輸出斐波那契級數(shù)的前 20項 Private Sub Form_Click() Dim F(20) As Integer, I As Integer F(1) = 1 : F(2) = 1 39。第一 、 第二項為 1 For I = 3 To 20 39。第三項起每項為前二項之和 F(I) = F(I 2) + F(I 1) Next I For I = 1 To 20 39。在窗體上輸出 Print F(I)。 If I Mod 5 = 0 Then Print Next I End Sub 返回目錄 數(shù)組 - 一維數(shù)組應(yīng)用例題 [例 ] 輸入一組不重復(fù)的數(shù)據(jù) , 找出最大值及其位置 Private Sub Form_Click() Const Length = 5 39。定義常量 Length作為數(shù)組最大下標(biāo) Dim Test%(Length), I%, Max%, L% For I = 1 To Length 39。通過鍵盤輸入給數(shù)組賦值 Test(I) = InputBox(輸入第 amp。 I amp。 個數(shù)據(jù) ) Next I Max = Test(1) : L = 1 39。設(shè)數(shù)組第一個元素為最大值 For I = 2 To Length If Max Test(I) Then 39。找到新的最大值 , 記錄其值和位置 Max = Test(I) L = I End If Next I MsgBox 最大值 x= amp。 Max amp。 , 位置是 amp。 L End Sub 返回目錄 數(shù)組 - 一維數(shù)組應(yīng)用例題 [例 ] 產(chǎn)生 10個整數(shù)到數(shù)組中 , 將其順序顛倒后輸出 Private Sub Form_Click() Const Length = 10 : Dim D(Length) As Integer, I%, Temp% For I = 1 To Length 39。給數(shù)組賦值并輸出 D(I) = 14 + I : Print D(I)。 Next I Print: Print 39。換行 For I = 1 To Length / 2 39。交換 Temp = D(I) D(I) = D(Length I + 1) D(Length I + 1) = Temp Next I For I = 1 To Length 39。交換后輸出 Print D(I)。 Next I End Sub 返回目錄 D(1)與 D(10)交換 D(2)與 D(9)交換 … … D(I)與 D(10I+1) 數(shù)組 - 一維數(shù)組應(yīng)用例題 [例 ] 產(chǎn)生 100個不重復(fù)的 3位隨機整數(shù) , 并按每行 7列的格式輸出 Private Sub Form_Click() Dim Data(100) As Integer, I%, J% Randomize Timer 39。設(shè)置隨機化種子 , 保證每組數(shù)據(jù)不重復(fù) For I = 1 To 100 39。循環(huán)產(chǎn)生 100個數(shù)據(jù) Data(I) = Int(Rnd() * 900) + 100 For J = 1 To I – 1 39。與已經(jīng)產(chǎn)生的數(shù)據(jù)比較 If Data(I) = Data(J) Then 39。數(shù)據(jù)已存在則舍棄 , 重新產(chǎn)生 I = I 1 Exit For 39。提前退出數(shù)據(jù)比較的循環(huán) End If Next J Next I 返回目錄 數(shù)組 - 一維數(shù)組應(yīng)用例題 I = 1 : J = 1 Do While I = 100 For J = 1 To 7 39。每行打印 7列 If I 100 T