第06章数组学习资料

上传人:yuzo****123 文档编号:137404184 上传时间:2020-07-08 格式:PPT 页数:86 大小:478KB
返回 下载 相关 举报
第06章数组学习资料_第1页
第1页 / 共86页
第06章数组学习资料_第2页
第2页 / 共86页
第06章数组学习资料_第3页
第3页 / 共86页
第06章数组学习资料_第4页
第4页 / 共86页
第06章数组学习资料_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《第06章数组学习资料》由会员分享,可在线阅读,更多相关《第06章数组学习资料(86页珍藏版)》请在金锄头文库上搜索。

1、Visual Basic,第六章 数组,数组的概念,数组是变量的集合。 该集合中的所有变量名称相同、类型相同,下标不同。 例如:w ( 2 )x(100, 20),数组名,下标,行标,列标,两种数组,静态数组: 在运行时总是保持固定的大小。 动态数组: 在运行时数组的大小可以改变。,数组的维数,一维数组 数组元素具有一个下标。 二维数组 数组元素具有两个下标。 n 维数组 数组元素具有 n 个下标。 例如:a (3)一维数组 b (12, 5)二维数组 c (2, 4, 8)三维数组 m (2, 3, 6) n 维数组,声明数组的四个属性,名称 维数 大小 类型,数组的声明,数组声明时的语法:

2、 Dim 数组名(下标,下标) As 类型 说明:1、“下标”的一般形式为: 下界 To 上界 如果不显式指定下标的“下界”,则缺省的下标下界为 0。 2、数组声明后,数值数组中的全部元素都初始化为 0,字符串数组中的全部元素都初始化为空字符串。,例如: Dim x As Single, a(4) As Single, b(4, 1) As Single,数组的声明,注意: 使用 Option Base 语句指定数组的下标下界从 1 开始。 Option Base 1 Dim a(4) As Single, b(-2 To 2, 2) As Single,数组的声明,数组每一维的大小为: 上界

3、下界 + 1 。 整个数组的大小为: 各维大小的乘积。,数组的大小,数组元素的引用,引用一维数组元素的形式为: 数组名(下标表达式) 注意:数组的下标必须为整数,下标表达式应为数值型表达式,若下标表达式的值不为整数,则 VB 会自动取整。 例如: Dim x(10) As Integer 声明 x 数组有11个元素 x(10) = 100 对 x(10) 这个数组元素赋值,逆序打印 n 个整数,Dim n As Integer, a(100) As Integer, i As Integer n = InputBox(vbCrLf + vbCrLf + n=) Print: Print 正序打

4、印 For i = 1 To n a(i) = i Print a(i), Next i Print: Print: Print 逆序打印 For i = n To 1 Step -1 Print a(i), Next i,逆序打印 n 个整数,一维数组,习题课,题型:求和,例题:从键盘上输入 n 个同学的考试成绩,输出高于平均成绩的分数。( n 100 ) 该问题可分三个步骤处理: 一、输入 n 个人的成绩; 二、求平均分数; 三、把这 n 个分数逐一和平均成绩进行比较, 若高于平均成绩,则打印输出。,题型:求和,Dim score(100) As Single, aver As Singl

5、e Dim n As Integer, i As Integer n = InputBox(vbCrLf + vbCrLf + 请输入学生人数) aver = 0 For i = 1 To n score(i) = InputBox(请输入成绩) Print score(i); aver = aver + score(i) Next i : Print,aver = Round(aver / n , 1) Print “平均成绩 = ”; aver Print “以下为高于平均成绩的成绩” For i = 1 To n If score(i) aver Then Print score(i);

6、 Next i,题型:求和,题型:搜索,例题:将 n 个(n 100)两位随机整数存入数组 a ,在数组中搜索是否存在数 x 。,Dim n As Integer, a(100) As Integer Dim x As Integer, i As Integer, t As Boolean n = InputBox(N=) For i = 1 To n a(i) = Int(90 * Rnd + 10) If i Mod 5 = 0 Then Print a(i) Else Print a(i), End If Next i : Print,题型:搜索,题型:搜索,x = InputBox(“

7、X=”) : t = False For i = 1 To n If a(i) = x Then t = True : Exit For End If Next i If t Then Print X=; x; 找到 Else Print X=; x; 未找到 End If,例题:随机产生 n 个两位整数,找出其中的最大值和最小值。 Dim min%, max%, n%, i%, a(100) As Integer n = InputBox(vbCrLf + vbCrLf + n=) Print 产生的随机数为 Randomize For i = 1 To n a(i) = Int(Rnd *

8、 90)+ 10 Print a(i); Next i : Print,题型:最大值和最小值,min = a(1) :max = a(1) For i = 2 To n If a(i) max Then max = a(i) If a(i) min Then min = a(i) Next i Print “最大值为 ”; max Print “最小值为 ”; min,题型:最大值和最小值,增删数组元素的值,删除数组元素的值 插入数组元素的值 附加数组元素的值,题型:删除数组中的数据,例题:将 n 个(n 100)两位随机整数存入数组 a ,在数组中搜索是否存在数 x 。如果存在,则将其删除。

9、 1 2 3 k n,题型:删除数组中的数据,Dim n As Integer, a(100) As Integer Dim x As Integer, i As Integer Dim k As Integer, flag As Boolean n = InputBox(“N=”) Print For i = 1 To n a(i) = Int(90 * Rnd + 10) Print a(i); Next i: Print,题型:删除数组中的数据,x = InputBox(X=) Print: Print X=; x: Print flag = False For i = 1 To n I

10、f a(i) = x Then flag = True k = i Exit For End If Next i,题型:删除数组中的数据,If Not flag Then Print “无可删除的数据 Else For i = k To n - 1 a(i) = a(i + 1) Next I : n = n - 1 For i = 1 To n Print a(i); Next i End If,题型:统计,例题:统计用户从键盘上输入的1、2 和 3 的个数,当输入的数值不在此范围内时结束输入,输出统计结果。 Option Base 1 Private Sub Command开始_Click

11、() Dim a(3) As Integer, x As Integer, i As Integer For i = 1 To 3 a(i) = 0 Next i,x = InputBox(vbCrLf + 请输入一个数) Do While x = 1 And x = 3 a(x) = a(x) + 1 x = InputBox(vbCrLf + 请输入一个数) Loop Print “1 的数目:”; a(1) Print “2 的数目:”; a(2) Print “3 的数目:”; a(3) End Sub,题型:统计,按分数段统计学生成绩,例题:统计各分数段(059、6069、7079、

12、8089、90100)的学生人数。学生成绩从键盘输入,以 1 为终止标志。 Private Sub Command开始_Click() Dim a(10) As Integer, x As Integer, i As Integer For i = 0 To 10 a(i) = 0 Next i x = InputBox(vbCrLf + “请输入学生成绩),Do While x -1 a(Int( x/10) = a( Int(x/10) ) + 1 x = InputBox(vbCrLf + “请输入学生成绩) Loop Print “0 59 =”; a(0)+a(1)+a(2)+a(3

13、)+a(4)+a(5) Print “60 69 =”; a(6) Print “70 79 =”; a(7) Print “80 89 =”; a(8) Print “90 100 =”; a(9) + a(10) End Sub,按分数段统计学生成绩,例题:用筛选法求1000以内的所有素数。 算法:1)将数21000放入“筛”中; 2)找出其中最小的数(素数),然后筛去其所有倍数。3)重复第二步,直至“筛”中为空。 Private Sub Command开始_Click() Dim a(2 To 1000) As Integer, i As Integer, j As Integer Fo

14、r i = 2 To 1000 a(i) = i Next i,用筛选法求素数,For i = 2 To 1000 If a(i) 0 Then Print a(i); For j = a(i) To 1000 Step a(i) a(j) = 0 Next j End If Next i : Print End Sub,用筛选法求素数,题型:排序,选择法排序 冒泡法排序,选择法排序,例题:利用随机函数产生 20 个 2 位的随机整数,按从大到小的顺序进行排序。 Private Sub Command开始_Click() Dim a(20) As Integer, i As Integer D

15、im j As Integer, k As Integer Randomize For i = 1 To 20 a(i) = 10 + Int(90 * Rnd) Print a(i); Next i: Print: Print,For i = 1 To 19 For j = i + 1 To 20 If a(i) a(j) Then k = a(i): a(i) = a(j): a(j) = k End If Next j Print a(i); Next i: Print a(20) End Sub,选择法排序,冒泡法排序,例题:利用随机函数产生 20 个 2 位的随机整数,按从大到小的顺

16、序进行排序。 Private Sub Command开始_Click() Dim a(20) As Integer, i As Integer Dim j As Integer, k As Integer Randomize For i = 1 To 20 a(i) = 10 + Int(90 * Rnd) Print a(i); Next i: Print: Print,For i = 20 To 2 Step -1 For j = 1 To i - 1 If a(j) a(j + 1) Then k = a(j): a(j) = a(j + 1): a(j + 1) = k End If

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

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