60 Const NUM 60 Dim scoreNUM As Integer

  • Slides: 50
Download presentation

2. 数组元素求和、求平均值 例: 输入 60个学生的成绩, 求平均成绩, 并输出不及格的成绩 Const NUM = 60 Dim score(NUM) As

2. 数组元素求和、求平均值 例: 输入 60个学生的成绩, 求平均成绩, 并输出不及格的成绩 Const NUM = 60 Dim score(NUM) As Integer, i As Integer Dim sum As Single , aver As Single sum = 0 For i = 1 To NUM score(i)=Val(Input. Box(“请输入第” & i & “个同学的成绩”)) sum = sum + score(i) Next i aver = sum / NUM Print "平均成绩为" & Format(aver , " 0000. 00") Print "不及格同学的成绩" For i = 1 To NUM If score(i) < 60 Then Print score(i) Next i

4. 一维数组的倒置 例将一维数组score(5)倒置 Const NUM = 5 Dim score%(NUM) , i %, temp% For

4. 一维数组的倒置 例将一维数组score(5)倒置 Const NUM = 5 Dim score%(NUM) , i %, temp% For i = 1 To NUM score(i) = Val(Input. Box(“输入成绩”)) Next I For i = 1 To NUM 2 ‘数组倒置 <数组倒置 > temp = score(i) = score(NUM - i + 1) Print “倒置之后: ” score(NUM - i + 1) = temp For i = 1 To NUM Next i print score(i) Next i

5.数组的复制/合并 例1. Const NUM=7 For i = 1 To NUM b(i) = a(i) Next

5.数组的复制/合并 例1. Const NUM=7 For i = 1 To NUM b(i) = a(i) Next i 例2. Const NUM=7 For i = 1 To NUM step 2 b( (i+1)/2) = a(i) Next i 将一个数组的部分或全部元素 存放到另一个数组中 a 1 2 3 4 5 6 7 b a b

Option Base 1 '在通用段设置数组起始下标 Private Sub Command 1_Click( ) Dim nums(100) As Integer '定义数组

Option Base 1 '在通用段设置数组起始下标 Private Sub Command 1_Click( ) Dim nums(100) As Integer '定义数组 Dim i As Integer, s As Integer Dim k As Variant For i = 1 To 100 nums(i) = Int(Rnd( ) * 100 + 1) '产生随机数 Next i s=0 For Each k In nums If k Mod 2 = 0 Then '处理偶数 s = s + 1:Print k; If s Mod 10 = 0 Then Print End If Next k Print:Print "偶数的数量为: "; s End Sub

例 输入 6个数, 用选择法对它们按升序排序。 Const N= 6 : Dim a%(N), i, j, p For

例 输入 6个数, 用选择法对它们按升序排序。 Const N= 6 : Dim a%(N), i, j, p For i = 1 To N a(i) = Val(Input. Box(“请输入第” & i & “个数”)) print a(i) Next i For i=1 To N-l p=i For j=i+1 to N If a(p)>a(j) then p=j Next j if p<>i then Temp =a(i): a(i)=a(p): a(p)=temp End if Next i Print “排序之后: ” For i = 1 To N : print a(i) : Next i

查找程序: flag = 0: top = 1: bott = NUM While (flag = 0

查找程序: flag = 0: top = 1: bott = NUM While (flag = 0 And top <= Bott) mid = (bott +top) 2 If Key = a(mid) Then flag = 1 :location =mid Else. If Key < a(mid) Then bott= mid - 1 Else topt = mid + 1 End If Wend

例输入一组数据, 然后输入一个数, 用折半查找法来查找该数。 Private Sub Command 1_Click() Const NUM = 6 Dim a%(NUM), i%,

例输入一组数据, 然后输入一个数, 用折半查找法来查找该数。 Private Sub Command 1_Click() Const NUM = 6 Dim a%(NUM), i%, key%, f%, bott%, top%, mid%, k% For i = 1 To NUM a(i) = Val(Input. Box(“请输入第” & i & “个数”)) : Print a(i) f = 0: top = 1: bott = NUM Next i While (f = 0 And top <= bott) key = Val(Input. Box("请输入要查找的数: ")) mid = (bott + top) 2 <查找> If key = a(mid) Then If f = 1 Then f = 1: k = mid Print "找到,其位置是:" & k Else. If key < a(mid) Then Else:Print "没找到" bott = mid - 1 End If Else : top = mid + 1 End Sub End If Wend

三、二维数组的基本操作 1. 给二维数组a输入数据 Const M=3, N=4 Dim a(1 to M, 1 to N) As

三、二维数组的基本操作 1. 给二维数组a输入数据 Const M=3, N=4 Dim a(1 to M, 1 to N) As Integer For i=1 to M For j=1 to N a(i, j)=Input. Box("输入元素a("&i&", " &j&")=") Next j Next i

2. 求最大元素及其所在的行和列 Const M=3, N=4 Dim a(1 to M, 1 to N) As Integer

2. 求最大元素及其所在的行和列 Const M=3, N=4 Dim a(1 to M, 1 to N) As Integer …… max=a(1, 1): row=1: column=1 For i=1 to M For j=1 to N If a(i, j)>a(row, column) Then max=a(i, j) row=i column=j End if Next j Next I Print "最大的元素为a("&row&", "&Column&")"& Max

3. 矩阵的转置(行与列互换) Const M=2, N=3 Dim a(M, N) As Integer, b(N, M) As Integer

3. 矩阵的转置(行与列互换) Const M=2, N=3 Dim a(M, N) As Integer, b(N, M) As Integer …… For i=0 to N For j=0 to M b(i, j)=a(j, i) Next j Next i

4. 矩阵的加(减)法 参加加减运算的矩阵必须有相同的行和列, 结果矩阵 也是相同的行和列. Const M=3, N=4 Dim a(M, N) As Integer, b(M,

4. 矩阵的加(减)法 参加加减运算的矩阵必须有相同的行和列, 结果矩阵 也是相同的行和列. Const M=3, N=4 Dim a(M, N) As Integer, b(M, N) As Integer Dim C(M, N) As Intrger For i=0 to M For j=0 to N c(i, j)= a(i, j) + b(i, j) Next j Next i

(i=1, 2, …, M; j=1, 2, …, N) Const M=3, L=2, N=4 Dim a(M,

(i=1, 2, …, M; j=1, 2, …, N) Const M=3, L=2, N=4 Dim a(M, L) As Integer, b(L, N) As Integer Dim C(M, N) As Intrger …… For i=1 to M For j=1 to N c(i, j)=0 for k=1 to L c(i, j)= c(i, j)+ a(i, k)*b(k, j) next k Next j Next i