【文章內(nèi)容簡(jiǎn)介】
循環(huán)體內(nèi)都必須有修改循環(huán)條件的語(yǔ)句 ? 在 do、 while循環(huán)語(yǔ)句前應(yīng)對(duì)變量賦初值 一般情況,累加器賦 0值,累乘器賦 1值 “條件”可以是關(guān)系表達(dá)式、邏輯表達(dá)式或常數(shù) 例: s=0(s=1) k=0 while k=5 s=s+k(s=s*k) k=k+1 wend ?與以下語(yǔ)句功能相同的語(yǔ)句是 _________。 ? Do While a = True ? … ? Loop ? A. Do … Loop While a = True ? B. Do … Loop While a = False ? C. Do Until a = True … Loop ? D. Do Until a = False … Loop 三、 For…Next 語(yǔ)句 ? For counter = start To end [Step step] [statements] [Exit For] [statements] ? Next [counter] 步長(zhǎng) ?step≥0時(shí),作 遞增 循環(huán) ,即應(yīng)有end≥start; ? step< 0時(shí),作 遞減 循環(huán) ,應(yīng)有end≤start; ? step= 1時(shí),可省略 Step子句。 for循環(huán)結(jié)構(gòu)注意問題 ? For 循環(huán)結(jié)束后,其循環(huán)控制變量的值一定超過終值。 例: For i=1 to 5 print ―*‖; Next i Print i (i=6) ? x=4 ? for i=1 to 10 step 3 ? x=x+i ? next i ? ? x ? a) 27 b) 26 c) 57 d) 38 ?答案 b 有程序段 (int((endstart)/step+1) ? Dim I As Integer ? FOR I=7 TO 90 STEP 5 ? PRINT I。 ? NEXT I ?上述程序共執(zhí)行( )次循環(huán)。 ? A、 17 B、 16 C、 15 D、 14 ?答案 a 四、嵌套循環(huán) ?外層循環(huán)與內(nèi)層循環(huán)必須層層相套,循環(huán)體之間不能交叉 For j = k1 To k2 Do While b …… Loop Next j( 正確 ) Do While b1 For j = k1 To k2 …… Loop Next j ( 錯(cuò)誤 ) 在窗體上輸出以下形式的星星陣列 * *** ***** ******* …… ? Private Sub Command1_Click() ? Dim line%, i%, j% ? line = Val(InputBox(請(qǐng)輸入行數(shù): )) ? For i = 1 To line 39。外循環(huán)控制輸出行數(shù) ? Print Space(20 i)。 39。每行前面的空格數(shù) ? For j = 1 To i * 2 1 ?內(nèi)循環(huán)控制輸出個(gè)數(shù) ? Print *。 ? Next j ? Print 39。換行 ? Next i ? End Sub (1) Exit Do語(yǔ)句 (2) Exit For語(yǔ)句 功能: 強(qiáng)制退出循環(huán) , 并轉(zhuǎn)到 Do ┅ Loop語(yǔ)句或 next的下一個(gè)語(yǔ)句去執(zhí)行 。 第 5章 數(shù)組與記錄 主要內(nèi)容 ?數(shù)組 是由固定數(shù)目的同類元素按一定順序排列而成; ?記錄 則由數(shù)目固定不同類型元素組成。 數(shù)組 一維數(shù)組 二維數(shù)組 一 維 數(shù) 組 ?數(shù)組說明格式為: Dim varname ( subscripts ) [ As type ] ? subscripts 語(yǔ)法: [lower To] upper lower和 upper為長(zhǎng)整型( Long) 常量 ,lower的缺省值為 0。 例 .在程序中 ,能否出現(xiàn)語(yǔ)句 :Dim A(1 to N)? ? A)不可以 ? B)若在這個(gè)語(yǔ)句前面已經(jīng)把 N設(shè)置為正整 數(shù)的符號(hào)常量 ,就可以出現(xiàn)這個(gè)語(yǔ)句 . ? C)若在這個(gè)語(yǔ)句前面已經(jīng)對(duì) N賦了為正整 數(shù)值 ,就可以出現(xiàn)這個(gè)語(yǔ)句 . ? D) B)和 C)都對(duì) ?答案: B 一維數(shù)組主要內(nèi)容 ?數(shù)組元素的輸入、輸出 ?數(shù)組元素的平均值、最大、最小值 ?數(shù)組元素的排序 ?兩數(shù)組合并 數(shù)組元素的輸入 ? 方法一:( inputbox函數(shù)) ? For i = 1 To 20 ? a(i) = InputBox(請(qǐng)輸入第 amp。 Str(i) amp。 個(gè)元素 ) ? Next ? 方法二 :(隨機(jī)函數(shù)) ? Randomize ? For i = 1 To 20 ? A(i) = Int(900 * Rnd) + 100 ? Next i ? 數(shù)組元素的輸出 ? For i = 1 To 20 ? Print a(。 i。 ) = 。 a(i)。 ? If i Mod 5 = 0 Then Print ? Next 某班有 10個(gè)學(xué)生參加計(jì)算機(jī)等級(jí)考試,求這些學(xué)生的 平均成績(jī) 。 ? Private Sub mand1_click() ? Dim S(1 To 10) As Single, Sum As Single, i As Integer ? For i = 1 To 10 ? S(i) = InputBox(s( amp。 Str(i) amp。 )=) ? Next i ? Sum = 0 ? For i = 1 To 10 ? Sum = Sum + S(i) ? Next i ? Print Average=。 Sum / 10 ? End Sub 求 10個(gè)數(shù)中的 最小值 ? Private Sub mand1_click() ? Dim a(1 To 10) As Single,min As Single,i As Integer ? For i = 1 To 10 ? a(i) = InputBox(a( amp。 Str(i) amp。 )=) ? Next i ? min = a(1) ? For i = 2 To 10 ? If a(i) min Then min = a(i) ? Next i ? Print min=。 min ? End Sub 二 維 數(shù) 組 ?數(shù)組說明格式為: Dim varname ( subscripts ) [ As type ] ? subscripts的語(yǔ)法形式: [lower To] upper, [lower To] upper ?例 若有數(shù)組說明語(yǔ)句 Dim b(3,1 To 2, 2 To 2),則數(shù)組 b中元素的個(gè)數(shù)是( )。 ?答案: 80 ?例 設(shè)有數(shù)組說明語(yǔ)句 :Dim C(1 To 1,1 To 5), 則下列表示數(shù)組 C的元素選項(xiàng)中()是正確. ? A) c(i+j) B) c(i)(j) ? C) c(i+1,j1) D) c(1,0) ?答案: C 二維數(shù)組元素的輸入 ?使用 InputBox函數(shù)為 : ? For i=1 To 30 ? For j=1 To 3 ? s(i,j)=InputBox(“s(“amp。Str(i)amp。”,”amp。str(j)amp?!?=”) ? Next j ? Next i 二維數(shù)組元素的輸出 ? For i=1 To 30 ? For j=1 To 3 ? Print s(i,j), ? Next j ? print ? Next i 已知某個(gè)班 20個(gè)學(xué)生進(jìn)行三門課考試,要求出每個(gè)學(xué)生三門課的平均成績(jī) ? Private Sub Form_Click() ? Dim s!(1 To 20, 1 To 3), i!, j!, sum!, ave! ? For i = 1 To 20 ? For j = 1 To 3 ? s(i, j) = InputBox(s( amp。 Str(i) amp。 , amp。 Str(j) amp。 )=) ? Next j ? Next i ? For i = 1 To 20 ? sum = 0 ? For j = 1 To 3 ? sum = sum + s(i, j) ? Next j ? ave = sum / 3 ? Print i, ave ? Next i ? End sub 求數(shù)組下標(biāo)下界和上界函數(shù) ? Lbound( arrayname[ ,dimension]) ? Ubound(arrayname[ ,dimension]) ? Dim A(1 To 100, 0 To 3, 3 To 4) LBound(A, 1)的值為 1 ULBound(A, 1)的值為 100 LBound(A, 2)的值為 0 ULBound(A, 3)的值為 4 可調(diào)數(shù)組 ? ReDim語(yǔ)句的一般形式: ? ReDim 數(shù)組名 (下標(biāo) 1[,下標(biāo) 2]┅ ) [As 類型 ] ? Dim a() ? ……….. ? N=5 ? Redim a(n) 記 錄 類 型 ?記錄類型定義的一般形式如下: ? Type typename ? elementname [([subscripts])] As type ? [elementname [([subscripts])] As type] ? …… ? End Type ?記錄類型可以在標(biāo)準(zhǔn)模塊或窗體模塊中定義,但不能在事件過程中定義。 ? 日期數(shù)據(jù)類型 dat,可以用如下定義: ? Type dat ? year As integer ? month As string*3 ? day As integer ? End Type ? 學(xué)生記錄可以說明為: ? Type stu ? no As Integer ? name As String*8 ? sex As String*2 ? birthday As dat ? score As Single ? End Type ? Dim s1 as stu 記錄變量的訪問 ?一般形式為: ? varname . elementname ?對(duì)嵌套記錄變量 s1的元素 birthday的賦值: ? =15 ?=“張勇” ? =1980 編寫一個(gè)過程,輸入和顯示一個(gè)學(xué)生的學(xué)習(xí)情況。 ? Private Type rec ? no As Integer ? name As String * 8 ? maths As Integer ? physics As Integer ? programming As Integer ? total As Integer ? End Type ? Private Sub Command1_Click() ? D