V B语言程序设计 数组

上传人:zw****58 文档编号:51721018 上传时间:2018-08-16 格式:PPT 页数:71 大小:1.17MB
返回 下载 相关 举报
V B语言程序设计 数组_第1页
第1页 / 共71页
V B语言程序设计 数组_第2页
第2页 / 共71页
V B语言程序设计 数组_第3页
第3页 / 共71页
V B语言程序设计 数组_第4页
第4页 / 共71页
V B语言程序设计 数组_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《V B语言程序设计 数组》由会员分享,可在线阅读,更多相关《V B语言程序设计 数组(71页珍藏版)》请在金锄头文库上搜索。

1、数组第第6 6章章 本章内容6.1 数组的概念 6.2 数组的声明和应用 6.3 动态数组 6.4 For EachNext 循环 语句 6.5 控件数组 6.6 程序举例数组的概念(引例一)求5个学生的某一门课的平均成绩。例例Private Sub Command1_Click()Dim sum! , ave! , x! , i%For i = 1 To 5x = InputBox(“输入学生成绩“)sum = sum + xNext iave = sum / 5Print ave End Sub 求5个学生的一门课的平均成绩,并统计高于平均分的 人数。例例Private Sub Comma

2、nd1_Click()Dim sum!, ave!, i%, n%Dim x1!, x2!, x3!, x4!, x5!x1 = InputBox(“输入学生成绩“)x2 = InputBox(“输入学生成绩“)x3 = InputBox(“输入学生成绩“)x4 = InputBox(“输入学生成绩“)x5 = InputBox(“输入学生成绩“)sum = x1 + x2 + x3 + x4 + x5ave = sum / 5If x1 ave Then n = n + 1If x2 ave Then n = n + 1If x3 ave Then n = n + 1If x4 ave Th

3、en n = n + 1If x5 ave Then n = n + 1Print ave Print n End Sub 求5个学生的一门课的平均成绩,并统计高于平均分 的人数。例例33Private Sub Command1_Click()Dim sum!, ave!, i%, n%Dim x(1 To 5) As SingleFor i = 1 To 5x i = InputBox(“输入学生成绩“)sum = sum + x iNext iave = sum / 5For i = 1 To 5If x i ave Then n = n + 1Next iPrint ave :Print

4、 n End Sub( )( )( )33数组的概念数组是一组具有相同数据类型的变量的集 合。由一个名称来表示,那用什么来区分不同 变量?用下标,例如:x(1)、x(2) x(5),也 称为数组元素。即用下标的方式引用数组元素 。 5个元素相当于5个变量,分别存放5个数据如下 :x(1) x(2) x(3) x(4) x(5)9080708575数组的概念(引例二)求3个学生的三门课的平均成绩。三门课的成 绩分别为:语语文数学英语语第一个学生的成绩绩:908885第二个学生的成绩绩:778087第三个学生的成绩绩:687076例例ss(1,1) ss(1,2) ss(1,3)ss(2,1) s

5、s(2,2) ss(2,3)ss(3,1) ss(3,2) ss(3,3)二维数组的元素有两个下标,第一个下标代 表行,第二个下标代表列。sum(1) sum(2) sum(3)sum(1) sum(2) sum(3)例:代码For i = 1 To 3For i = 1 To 3For j = 1 To 3 3For j = 1 To 3 3个学生个学生sum(isum(i) = ) = sum(isum(i) + ) + ss(jss(j , i) , i)Next j Next jave(iave(i) = ) = sum(isum(i) / 3) / 3 Next iNext i数组的

6、声明定义数组的一般格式为:Dim 数组名(第一维说明 ,第二维说明) As 数据类型如:Dim s (1 to 3) As SingleDim aa(-1 to 1 , -2 to 1)aa(-1,-2)aa(-1,-1)aa(-1,0)aa(-1,1)aa(0,-2)aa(0,-1)aa(0,0)aa(0,1)aa(1,-2)aa(1,-1)aa(1,0)aa(1,1)数组的声明 说明:(1) 数组须先声明后使用,未声明不能使用。(2) 格式中的部分为可选部分。(3) As 数据类型为数组指定数据类型,此时 数组所有元素具有相同的数据类型。省略 As 数据类型时,默认为变体类型的 数组,其各

7、个元素可以保存不同类型的数据。(4) 维说明的形式为:下标下界 to 下标上界其中当下标的下界为默认值0时,可以省略不 写。 如:Dim s (3) As Single每个元素的名字分别为:s(0)、s(1)、s(2)、 s(3) (5) 也可以下面方式定义下标下界的默认值: Option Base n其中n为0或1。Option Base 1Dim s (3) As Single每个元素的名字分别为:s(1)、s(2)、s(3)(6) 用Dim语句定义数组时,该语句把数组元素初 始化为0或空字符串。 (7) 在同一过程中,数组名不能与其他数组名或 变量名相同。数组元素的引用引用数组元素的格式

8、为:数组名(下标)说明: Dim s(3) as integer s(0)、s(1)、s(2)、 s(3)在程序中,凡是能用变量的地方,都可用数组 元素来替换。(2) 引用数组元素时,要注意数组名、类型及维 数要与定义的一致。(3) 数组元素的下标要在定义的范围之内。如:Dim s(1 to 3) as integer s(1)、s(2) 、s(3)本例利用InputBox函数来输入成绩,输入完 毕后经过计算,再采用Print直接在窗体上输出结果例例6.16.1 输入某小组输入某小组5 5个同学的成绩,计算总分和平均分个同学的成绩,计算总分和平均分( ( 取小数点后一位取小数点后一位) )Pr

9、ivate Sub Form_Load()Dim d(1 to 5) As IntegerDim i As Integer, total As Single, average As SingleShowFor i = 1 To 5 输入成绩d(i) = Val(InputBox(“请输入第“ Next iPrintFor i = LBound(c) To UBound(c)Print c(i);Next i End SubLBound函数和UBound函数 格式:LBound(数组名,维) UBound(数组名,维) 说明:(1) 数组名是要测试的数组。(2) LBound函数返回数组的下标下

10、界值,UBound 函数返回数组的下标上界值。LBound函数和UBound函数(3) 一维数组可省略,维,二维数组必须指定。如: Dim aa(-1 to 1 , -2 to 1) LBound(aa,2)表示测试aa数组的第二维下界,其值为:-2。UBound(aa,1)表示测试aa数组的第一维上界,其值为:1。 数组元素的输出1用Print 方法将数组元素的值输出到窗体上 或图片框中。 如例题中的语句: For i = 0 To 5 Print c(i) Next iFor i = 0 To 5Picture1.Print c(i)Next i是利用循环并结合 Print语句将数组元素

11、的值依次输出在窗体 上。2用赋值语句将数组元素的值显示在标签框 、文本框中或其他控件上。例例6.26.2 使用使用ArrayArray函数给一维数组函数给一维数组a( )a( )输入数据,再用输入数据,再用 数组数组a( )a( )中的数据存入二维数组中的数据存入二维数组b(,)b(,)中,然后将二维数组中,然后将二维数组 b(,)b(,)以矩阵形式输出到窗体及多行文本框中。以矩阵形式输出到窗体及多行文本框中。 在窗体上建立一个多行文本框Text1(MultiLine属性 为True)。Option Base 1 Private Sub Form_Load()Dim a As Variant,

12、 b(3, 4) As IntegerDim i As Integer, j As Integera = Array(11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)For i = 1 To 3For j = 1 To 4b(i, j) = Next jNext iShowa(1) b(1,1) a(2) b(1,2) a(3) b(1,3) a(4) b(1,4) a(5) b(2,1) a(6) b(2,2) a(i-1)*4+j) b(i,j)a(ia(i - 1) * 4 + j) - 1) * 4 + j)For i = 1 To 3Fo

13、r j = 1 To 4Print b(i, j);Text1.Text = Text1.Text Next jPrintNext iFor j = 1 To 5s = 0For i = 1 To 4s = s + a(i, j)Next it(j) = sPrint “第“ sum End Sub例6.5 用For Each.Next循环语句,求1!+2!+10!的值For n = 1 To 10Print a(n); Next n For Each x In aPrint x; Next x例例6.36.3 生成生成2020个两位随机数作为原始数据,存放在个两位随机数作为原始数据,存放在4

14、 4行行 5 5列的二维数组列的二维数组a( , )a( , )中,然后求各列元素的和,把这些中,然后求各列元素的和,把这些 和数存放在一维数组和数存放在一维数组t( )t( )中。中。 Option Base 1 Private Sub Form_Load()Dim a(4, 5) As Variant, t(5) As IntegerDim i As Integer, j As Integer, s As IntegerRandomizeShowFor i = 1 To 4For j = 1 To 5a(i, j) = Int(90 * Rnd + 10)Print a(i, j);Nex

15、t jPrintNext iFor j = 1 To 5s = 0For i = 1 To 4s = s + a(i, j)Next it(j) = sPrint “第“ Next jPrint: PrintFor i = 1 To n-1For j = i + 1 To nIf a(i) a(j) Thent = a(i): a(i) = a(j): a(j) = t End IfNext jNext iPrint “排序结果:“For j = 1 To 10Print a(j);Next jEnd Sub改写中间程序段“For i=1 To n-1”“Next i”(共7个程序行)For i = 1 To n-1k = i k用来记录每趟比较的最小值的 下标For j = i + 1 To nIf a(k) a(j) Thenk = jEnd IfNext jt = a(k): a(k) = a(i): a(i) = t 交换位 置Next i变量k记录每一趟比较选出的最小值的下标, 在本趟比较结束后,使a(i)与a(k)一次换位即可某学习小组10名学生的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 教育学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号