VB教学课件第6章-数组(医药版).ppt

上传人(卖家):三亚风情 文档编号:2688601 上传时间:2022-05-18 格式:PPT 页数:61 大小:1.18MB
下载 相关 举报
VB教学课件第6章-数组(医药版).ppt_第1页
第1页 / 共61页
VB教学课件第6章-数组(医药版).ppt_第2页
第2页 / 共61页
VB教学课件第6章-数组(医药版).ppt_第3页
第3页 / 共61页
VB教学课件第6章-数组(医药版).ppt_第4页
第4页 / 共61页
VB教学课件第6章-数组(医药版).ppt_第5页
第5页 / 共61页
点击查看更多>>
资源描述

1、高等医药院校药学类第三轮规划教材大学计算机基础沈沈阳阳药药科科大大学学计计算算中中心心沈沈阳阳药药科科大大学学计计算算中中心心大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第一一节节 数组的概念数组的概念 第一节第一节 数组的概念数组的概念 大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第一一节节 数组的概念数组的概念为什么要使用数组?为什么要使用数组?引例:编写一个程序,读入引例:编写一个程序,读入3030名学生的考试成绩,名学生的考试成绩,然后打印出比平均分高的学生的考试

2、成绩。然后打印出比平均分高的学生的考试成绩。方法一:方法一:简单变量和循环结构相结合简单变量和循环结构相结合。虽然处理变得简单,虽然处理变得简单, 但无法输出比平均值高的成绩。但无法输出比平均值高的成绩。方法二:方法二:使用多个变量。使用多个变量。虽然可以输出比平均值高的成绩,虽然可以输出比平均值高的成绩, 但程序的编写很麻烦,处理很复杂。但程序的编写很麻烦,处理很复杂。(1)定义一次即可定义很多变量)定义一次即可定义很多变量(2)通过循环来处理这些变量)通过循环来处理这些变量 数组数组因此处理因此处理大批量的类型相同的数据大批量的类型相同的数据我们通常使用数组这样一我们通常使用数组这样一种数

3、据结构种数据结构. .大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第一一节节 数组的概念数组的概念6.16.1数组的概念数组的概念说明:说明:(1 1)这些变量使用一片)这些变量使用一片连续连续的存储单元。的存储单元。(2 2)使用数组就是用一个相同的名字引用这一组变量中的)使用数组就是用一个相同的名字引用这一组变量中的 数据,这个名字称为数据,这个名字称为数组名数组名。(3 3)数据类型)数据类型 VS VS 数组:数组:数据类型指的是数据的取值范数据类型指的是数据的取值范 围,而数组通常是表示相同数据类型的数据的集合围,而数组通

4、常是表示相同数据类型的数据的集合。 利用数组,可以方便灵活地处理批量的数据。利用数组,可以方便灵活地处理批量的数据。 在在Visual BasicVisual Basic中,把一组具有同一名字、中,把一组具有同一名字、相同相同类型的变量类型的变量组成的组成的集合集合称为数组。称为数组。例如:例如:dim mark(1 to 100) as singledim mark(1 to 100) as singlemarkmark称为数组名,称为数组名,1 1跟跟100100都是下标,这个数组具有都是下标,这个数组具有100100个元素。个元素。通过下标指出某个具体的数组元素,即指出它在数组中的位置。

5、通过下标指出某个具体的数组元素,即指出它在数组中的位置。例如,例如,mark(6)mark(6)代表代表markmark数组中的第数组中的第6 6个元素。个元素。大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第一一节节 数组的概念数组的概念6.1.16.1.1数组命名与数组元素数组命名与数组元素例如:例如:dim mark(1 to 100) as singledim mark(1 to 100) as single数组名:数组名:命名规则与简单变量一样。数组名不是代表一个命名规则与简单变量一样。数组名不是代表一个变量,而是代表有内在

6、联系的一组变量。变量,而是代表有内在联系的一组变量。 数组数组元素:元素:数组内的每一个成员称为数组元素数组内的每一个成员称为数组元素 。数组元素。数组元素的类型也就是数组的类型。的类型也就是数组的类型。数组元素的一般形式如下数组元素的一般形式如下数组名数组名( (下标下标11,下标,下标2 2,) ) 例如:例如:markmark(2020) 下标:下标:每个数组元素都有各自的编号即下标,下标确定了每个数组元素都有各自的编号即下标,下标确定了数组元素在数组中的位置。数组元素在数组中的位置。 维数:维数:下标数就是数组的维数。下标数就是数组的维数。 一个下标表示一维数组,一个下标表示一维数组,

7、两个下标表示二维数组,两个下标表示二维数组,二维以上的数组称为多维数组。二维以上的数组称为多维数组。数组的维数不得超过数组的维数不得超过6060。上界和下界:上界和下界:数组中第一个元素的下标称为下界,最后一数组中第一个元素的下标称为下界,最后一个元素的下标成为上界。缺省时下界为个元素的下标成为上界。缺省时下界为0 0,若下标的取值超,若下标的取值超出上界或下界,将出现出上界或下界,将出现“下标越界下标越界”的出错信息。的出错信息。大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第一一节节 数组的概念数组的概念6.1.26.1.2数组定

8、义数组定义注意:注意:数组与简单变量不同,数组与简单变量不同,必须先定义(声明),后使用必须先定义(声明),后使用。(目的是告知计算机它将占用多少内存单元。)(目的是告知计算机它将占用多少内存单元。)使用数组分两个阶段:使用数组分两个阶段:声明(定义)数组和使用数组元素声明(定义)数组和使用数组元素。提供了数组的四个信息提供了数组的四个信息名字、名字、类型、类型、维数维数(由下标的个数确定,(由下标的个数确定,下标由下标由“逗号逗号”分隔)、分隔)、大小大小(各维大小的乘积)(各维大小的乘积)此时才真正此时才真正把数组当成是许多把数组当成是许多的变量(数组元素)的集合来的变量(数组元素)的集合

9、来使用使用,使用这些变量(数组元,使用这些变量(数组元素)解决相关问题。素)解决相关问题。数组的声明数组的声明数组元素的使用数组元素的使用大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学(1)静态数组的声明与使用)静态数组的声明与使用形式形式1: Dim 数组名数组名(下标下标1,下标下标2) As 类型类型 下标下标: 下界下界 To 上界上界 省略下界为省略下界为0 , 上下界必须为常数或常量,上下界必须为常数或常量,绝对不允许绝对不允许出现变量。出现变量。 维数:几个下标为几维数组,最多维数:几个下标为几维数组,最多60维。维。 每

10、一维大小每一维大小: 上界下界上界下界+1 数组大小数组大小: 每一维大小的乘积每一维大小的乘积声明了数组的名、维数、大小、类型声明了数组的名、维数、大小、类型 ,同时还将,同时还将数组初始化数组初始化。静态数组:声明的时候即确定数组中元素的个数(数组中元素的个数静态数组:声明的时候即确定数组中元素的个数(数组中元素的个数是固定不变的)。是固定不变的)。另外一种声明形式另外一种声明形式: Dim 数组名数组名类型符号类型符号(下标下标1,下标下标2)例:例: Dim mark!(1 to 100) 例:例:Dim mark(1 to 100) As single例子第第一一节节 数组的概念数组

11、的概念大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第一一节节 数组的概念数组的概念例: Dim A(6) As Integer Private Name(1999 To 2002) As String *8 Dim B(2,1 to 2) As Integer Dim M As IntegerConst N=5 As Integer Dim A(N) As Integer Dim B(1To 6.6) As Integer Dim C(1 To 2 * 3) As IntegerM=5 Dim D(0 To M) As Intege

12、r Dim Score(4),B(3,3) As IntegerDim A(6) As IntegerDim B(3,-1 To 4) As Single返回大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学(1)静态数组的声明与使用)静态数组的声明与使用数组元素的使用:数组元素的使用:例如:例如:Dim mark(1 to 10) As Integer mark(2) =100注意:下标只能在下界与上界之间注意:下标只能在下界与上界之间如:如:mark(11) 会出现下标越界的错误会出现下标越界的错误例如:定义单精度类型、例如:定义单精度

13、类型、5个元素的数组个元素的数组Dim m(1 to 5) as single 或者或者 Dim m! (1 to 5)第第一一节节 数组的概念数组的概念大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学例:例:Dim seat( 1 To 3, 1 To 4) As .。(声明数组时一个下标的为一维数组,两个下标的为二维数组)(声明数组时一个下标的为一维数组,两个下标的为二维数组)二维、三维数组二维、三维数组seat(1,1)seat(1,2)seat(1,3)seat(1,4)seat(2,1)seat(2,2)seat(2,3)sea

14、t(2,4)seat(3,1)seat(3,2)seat(3,3)seat(3,4)例:例:Dim seat( 1 To 2,1 to 3, 1 To 4) As .。该三维数组共有该三维数组共有 234个元素个元素该二维数组共有该二维数组共有 34个元素个元素6.1.36.1.3数组的结构数组的结构一维数组的结构一维数组的结构 一维数组可以理解为线性存储数据,一维数组可以理解为线性存储数据,开辟连续的存储单开辟连续的存储单元来依次存放数组的各个元素。元来依次存放数组的各个元素。第第一一节节 数组的概念数组的概念大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈

15、阳药科大学沈阳药科大学总结:总结:看一个数组中有多少个元素,要注意看一个数组中有多少个元素,要注意 首先看一下程序的开头是否有首先看一下程序的开头是否有Option base 语句语句 (1)无或者)无或者Option base 0 下标从下标从0开始开始 (2)Option base 1 下标从下标从1开始开始Option base 语句的使用语句的使用书写简便而又不浪费内存空书写简便而又不浪费内存空间间 Dim seat( 1 To 3, 1 To 4) As 。Dim seat(3, 4) As 。练习练习Option base 1Private Sub Command1_Click()

16、Dim seat(3, 4) as 。Dim mark(10) as singleEnd Sub第第一一节节 数组的概念数组的概念大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学静态数组的声明与使用静态数组的声明与使用注意:注意:(1)下界缺省为下界缺省为0,也可重新定义默认的数组的下界。,也可重新定义默认的数组的下界。例如:例如: Option Base 1 (2)错误的声明,下标是变量错误的声明,下标是变量 。如:如: n =Inputbox(“输入输入n”):):Dim x(n) As Single(3)在数组声明中的下标说明了数组

17、的整体,即每维的大小;在数组声明中的下标说明了数组的整体,即每维的大小; 而在程序其他地方出现的下标表示数组中的一个元素。而在程序其他地方出现的下标表示数组中的一个元素。例如:例如: Option Base 1 Dim seat(2,3) As Integer 声明了声明了seat为二维数组,第一维的为二维数组,第一维的 大小为大小为2,第二维的大小为,第二维的大小为3 seat(1,2)=100 对对seat (1,2)这个数组元素赋值这个数组元素赋值(4)在使用数组元素的时候,下标只能在下界与上界之间。在使用数组元素的时候,下标只能在下界与上界之间。大学计算机基础大学计算机基础沈阳药科大学

18、沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学 建立一个数组之后,可以对数组或数组元建立一个数组之后,可以对数组或数组元素进行操作。数组的基本操作包括输入、计算素进行操作。数组的基本操作包括输入、计算出来及输出,出来及输出,这些操作都是对数组元素进行的。这些操作都是对数组元素进行的。此外,此外,Visual BasicVisual Basic中中数组经常与数组经常与For For Next Next结合使用结合使用。数组元素赋值数组元素赋值数组元素操作数组元素操作数组元素输出数组元素输出第二节第二节 数组的基本操作数组的基本操作 第第二二节节 数组的基本操作数组的基本操作输入

19、数据输入数据计算处理计算处理数据输出数据输出计算处理计算处理数据输出数据输出计算处理计算处理数据输出数据输出输入数据输入数据计算处理计算处理数据输出数据输出输入数据输入数据计算处理计算处理大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第二二节节 数组的基本操作数组的基本操作6.2.16.2.1数组元素的赋值数组元素的赋值1.1.用赋值语句给数组元素赋值。用赋值语句给数组元素赋值。 (直接赋一个数据或者文本框中的内容)(直接赋一个数据或者文本框中的内容) 这种方法适合于数据量小的情况下使用。这种方法适合于数据量小的情况下使用。 例:例:

20、 Dim Score(3) As Integer Dim Score(3) As Integer Dim Two(1, 1 to 2) As Integer Dim Two(1, 1 to 2) As Integer Score(0)=80 Score(0)=80 Score(1)=75 Score(1)=75 Score(2)=91 Score(2)=91 Score(3)=68 Score(3)=68 Two (0 Two (0,1)= Score(0)1)= Score(0)大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第二二节

21、节 数组的基本操作数组的基本操作6.2.16.2.1数组元素的赋值数组元素的赋值2.2.通过循环逐一给数组元素赋值通过循环逐一给数组元素赋值(在循环当中直接将计算的(在循环当中直接将计算的数据或者产生的随机数赋值)数据或者产生的随机数赋值)这种方法适合于数据量大的情况下使用。这种方法适合于数据量大的情况下使用。Dim A(6) As IntegerDim A(6) As Integer,i As Integeri As IntegerDim B(1 to 2Dim B(1 to 2,1 to 2) As Integer1 to 2) As Integer,j As Integer j As I

22、nteger For i=0 To 6 For i=0 To 6 使用循环给一维数组赋值并输出使用循环给一维数组赋值并输出 A(iA(i)=Int(99)=Int(99* *Rnd)+1Rnd)+1 Print Print A(iA(i) );Next INext IFor i=1 To 2 For i=1 To 2 ,利用二重循环给二维数组赋值并输出,利用二重循环给二维数组赋值并输出 For j=1 To 2 For j=1 To 2 B(iB(i,j)=ij)=i* *10+j10+j Print Print B(iB(i ,j)j); Next jNext j Print PrintNe

23、xt iNext i大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第二二节节 数组的基本操作数组的基本操作例:例:Private Sub Form_Click()Dim A(6) As Integer,i As IntegerFor i=0 To 6 A(i)=InputBox(“给数组元素赋值给数组元素赋值”,“数组数组A赋值赋值”) Print A(i);Next IEnd Sub6.2.16.2.1数组元素的赋值数组元素的赋值3.通过循环逐一给数组元素赋值通过循环逐一给数组元素赋值(在循环当中(在循环当中lnputBox函数函数

24、由键盘输入给数组元素赋值)由键盘输入给数组元素赋值)这种方法数据量大的情况这种方法数据量大的情况下不适用。下不适用。大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第二二节节 数组的基本操作数组的基本操作6.2.16.2.1数组元素的赋值数组元素的赋值4.4.用用ArrayArray函数给数组赋值函数给数组赋值利用利用ArrayArray函数可以把一个数据集赋值给一个函数可以把一个数据集赋值给一个VariantVariant变量,变量,再将该再将该VariantVariant变量创建成变量创建成个一维数组。个一维数组。使用形式:使用形式

25、: =Array(=Array(数据列表数据列表)注意注意:ArrayArray函数的括号内值与值之间用函数的括号内值与值之间用逗号分隔逗号分隔;接收完值后的变体型变量可以像数组一样,利用下标来接收完值后的变体型变量可以像数组一样,利用下标来引用每一个值;引用每一个值;ArrayArray函数产生给变量型变量的数组下界由函数产生给变量型变量的数组下界由Option Base Option Base n n决定,默认是决定,默认是0 0;ArrayArray函数将产生一个数组函数将产生一个数组;不可以用不可以用ArrayArray函数给非函数给非VariantVariant类型的变量赋值。类型的

26、变量赋值。大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第二二节节 数组的基本操作数组的基本操作6.2.16.2.1数组元素的赋值数组元素的赋值4.4.用用ArrayArray函数给数组赋值函数给数组赋值例:例:Option Base 1Private Sub Form_Click() Dim A As Variant Dim B(4) As Variant A=Array(5,4,3,2,1) Print A(1);A(2);A(3);A(4);A(5) A=Array(1.51,2.31,3.61,4.11) Print A(1)

27、;A(2);A(3);A(4) A=”NO Array” Print A B=Array(1,2,3,4,5,6) 该语句是一条错误语句该语句是一条错误语句End Sub大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第二二节节 数组的基本操作数组的基本操作6.2.16.2.1数组元素的赋值数组元素的赋值5.5.读取顺序文件中的数据给数组赋值读取顺序文件中的数据给数组赋值例:例:Private Sub Form_Click() Dim i as integer Dim a(1 to 30) as integer Open app.pat

28、h & “” & “in.dat” for input as #1 Do while not eof(1) i=i+1 Input #1,a(i) Loop Close #1End Sub大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学Dim b As Variant 变体类型的变量或字符型动态数组变体类型的变量或字符型动态数组 b = Split(“20, 5, 68”, “,”) 分隔后每个元素都是字符若要变成数字可用分隔后每个元素都是字符若要变成数字可用val函数函数 For i = 0 To 2 Print b(i) Next i

29、无论有没有无论有没有Option Base 1 语句,下界都从语句,下界都从0开始开始 join函数 Dim b As Variant 变体类型的变量或字符型数组变体类型的变量或字符型数组 b = Split(20, 5, 68, ,) c=join(b, :) Print c 将数组将数组b的各个元素用指定字符连接为一个字符串的各个元素用指定字符连接为一个字符串6.2.16.2.1数组元素的赋值数组元素的赋值6. Split6. Split函数给数组赋值函数给数组赋值大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第二二节节 数组的基

30、本操作数组的基本操作6.2.26.2.2数组元素的引用数组元素的引用数组元素数组元素的使用的使用和普通变量一样和普通变量一样,但是最应该注意的是下,但是最应该注意的是下标是否合法,即不要发生下标越界的错误。标是否合法,即不要发生下标越界的错误。例例6-16-1:产生:产生1010个(个(1 1,5050)之间的随机整数,并将其中的最)之间的随机整数,并将其中的最大数和最小数打印出来,同时将其存放在顺序文件大数和最小数打印出来,同时将其存放在顺序文件”out.datout.dat”中。中。运行结果:运行结果:大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科

31、大学沈阳药科大学第第二二节节 数组的基本操作数组的基本操作例例6-26-2:生成一个如下形式的矩阵(见图),并按矩阵元素的排列次生成一个如下形式的矩阵(见图),并按矩阵元素的排列次序将矩阵输出到图片框或文本框(同时输出也可)。序将矩阵输出到图片框或文本框(同时输出也可)。 运行运行结果:结果:大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第二二节节 数组的基本操作数组的基本操作6.2.36.2.3数组函数及数组语句数组函数及数组语句1LBound函数函数功能:返回数组某维的维下界的值。功能:返回数组某维的维下界的值。调用形式:调用形式

32、:LBoundLBound( (数组名数组名 ,d)d) 参数参数d d为维数,若缺省则函数返回数组第为维数,若缺省则函数返回数组第一维的维下界的值或一维数组的下界。一维的维下界的值或一维数组的下界。例:例:Private Sub Form_Click()Dim A(4) As Integer,B(3 to 6,10 to 20)Print LBound(A),LBound(B,1),LBound(B,2)End Sub程序执行结果是:程序执行结果是:0 3 10大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第二二节节 数组的基本操作

33、数组的基本操作2 2UBoundUBound函数函数功能:返回数组某维的维上界的值功能:返回数组某维的维上界的值调用形式:调用形式:UBoundUBound( (数组名数组名 ,d)d)例:例:Private Sub Form_Click()Dim A(4) As Integer,B(3 to 6,10 to 20)Print UBound(A),UBound(B,1),UBound(B,2)End Sub程序执行结果是:程序执行结果是:4 6 20大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第二二节节 数组的基本操作数组的基本操作

34、3 3For Each-NextFor Each-Next结构语句结构语句功能:用来依次访问数组中的每一个元素。功能:用来依次访问数组中的每一个元素。调用形式:调用形式: For Each Element In For Each Element In 语句集语句集 Next ElementNext Element说明:说明:l Element Element 是在是在For Each-NextFor Each-Next结构内重复使用的结构内重复使用的 Variant Variant变量,实际上代表数组中每一个元素。变量,实际上代表数组中每一个元素。l 是要处理的数组名。是要处理的数组名。l 循

35、环次数则由数组中的元素的个数确定。循环次数则由数组中的元素的个数确定。l 循环体内可以包含循环体内可以包含Exit ForExit For语句,用以退出循环。语句,用以退出循环。大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第二二节节 数组的基本操作数组的基本操作例例6-3 6-3 找出找出1010个能被个能被9 9整除的两位数,分两行输出整除的两位数,分两行输出, ,使使用用For Each-NextFor Each-Next结构。结构。 运行结果:运行结果:例例6-4 6-4 把下面的二维数组,用把下面的二维数组,用For Eac

36、h-NextFor Each-Next结结构输出。观察输出结果。运行结果:构输出。观察输出结果。运行结果:程序验证:二维数组在内存中存储时,按列优先存储程序验证:二维数组在内存中存储时,按列优先存储大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第二二节节 数组的基本操作数组的基本操作提示:文本框中的内容可以在设提示:文本框中的内容可以在设计状态时,在文本框的计状态时,在文本框的TextText属性属性中输入,可以避免程序调试时重中输入,可以避免程序调试时重复的文字输入。复的文字输入。6.2.46.2.4数组应用数组应用例例6-56-5

37、 统计字母统计字母( (不分大小写不分大小写) )在文本中出现的次数。在文本中出现的次数。运行结果:运行结果:大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第二二节节 数组的基本操作数组的基本操作例例6-66-6 20 20个小朋友按照编号顺序围成一圈,个小朋友按照编号顺序围成一圈,1 13 3循环报数,凡报到循环报数,凡报到3 3者出圈,直到全部出圈为止。者出圈,直到全部出圈为止。编写程序记录出圈小朋友的出圈顺序。编写程序记录出圈小朋友的出圈顺序。运行结果:运行结果:经典:猴子选大王经典:猴子选大王 一共有一共有n n只猴子围只猴子

38、围成一圈,开始数数,数成一圈,开始数数,数到到m m时退出圈,剩下的时退出圈,剩下的重新开始数,直到最后重新开始数,直到最后一只猴子为大王。一只猴子为大王。 大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第三三节节 动态数组动态数组 第三节第三节 动态数组动态数组 大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学例:例:求一个班级中学生数学成绩的平均值并输出大于平均分的成绩求一个班级中学生数学成绩的平均值并输出大于平均分的成绩.Dim mark(1 to 32) as singl

39、eOpen app.path & “” & “math.dat” for input as #1Do while not eof(1) i=i+1 Input #1,a(i) LoopClose #1sum=0For i=1 to 32 sum=sum+mark(i)Next Iavg = sum/32 For i=1 to 32 if mark(i)avg then print mark(i)Next i赋值赋值求平均值求平均值输出大于平均输出大于平均分的成绩分的成绩Dim mark!(1 to 32)静态数组的缺陷静态数组的缺陷当实际元素个数少,浪费空间当实际元素个数少,浪费空间当实际元素

40、个数多,不够用,当实际元素个数多,不够用,程序出错程序出错元素个数可动态变元素个数可动态变化的数组化的数组动态数组动态数组大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学 在声明数组时未给出数组的大小在声明数组时未给出数组的大小(省略括号中的下标省略括号中的下标),当要使用它时,随时,当要使用它时,随时用用ReDim语句重新指出数组的维数以及大小语句重新指出数组的维数以及大小(以方便为数组元素分配存储空间以方便为数组元素分配存储空间)。形式如下:形式如下:ReDim 数组名数组名(下标下标,下标,下标2) As 类型类型动态数组:声明的时

41、候没有指出数组中元素的个数(数组中元素的个动态数组:声明的时候没有指出数组中元素的个数(数组中元素的个数是动态变化的)。数是动态变化的)。例例 :Sub Form_Load( ) Dim x( ) As Single例例 求若干个学生的平均分。求若干个学生的平均分。 n =Inputbox(“输入输入n”) ReDim x(n) End Sub练习练习6.3动态数组动态数组大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第三三节节 动态数组动态数组说明:说明:(1)静态数组(元素个数固定)在程序编译(声明)时分配存储单元,)静态数组(元

42、素个数固定)在程序编译(声明)时分配存储单元,动态数组(元素个数不固定)只有在运行(动态数组(元素个数不固定)只有在运行(Redim语句)时分配存储单语句)时分配存储单元。元。 (2) 2) 当数组中元素个数可以确定的时候,则使用当数组中元素个数可以确定的时候,则使用ReDimReDim语句来重新定义语句来重新定义这个数组;这个数组;在过程中可在过程中可多次使用多次使用ReDim来改变数组的大小和维数来改变数组的大小和维数,但一但一般不改变动态数组的数据类型。般不改变动态数组的数据类型。 ReDim 中的下标可以是常量,也可以是中的下标可以是常量,也可以是有了确定值的变量。有了确定值的变量。(

43、3)(3)每次每次ReDimReDim将会使原动态数组中的内容清零或清空将会使原动态数组中的内容清零或清空。可以可以在在ReDim语语句后加句后加Preserve参数来保留数组中的数据参数来保留数组中的数据。使用使用Preserve只能改变最后只能改变最后一维的大小,前面几维大小和维数不能改变一维的大小,前面几维大小和维数不能改变,不用,不用 Preserve 时前面几维时前面几维大小和维数可以改变。大小和维数可以改变。(4)Dim、Private、Public变量声明语句是说明性语句,可出现在过程变量声明语句是说明性语句,可出现在过程内或通用声明段;内或通用声明段;ReDim语句是执行语句,

44、只能出现在过程内。语句是执行语句,只能出现在过程内。大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第三三节节 动态数组动态数组例:求一个班级中学生数学成绩的平均值并输出大于平均例:求一个班级中学生数学成绩的平均值并输出大于平均分的成绩分的成绩. 改进使程序对于任意一个班级都适用。改进使程序对于任意一个班级都适用。例例6-7 6-7 对数组重新定义时保留动态数组的内容。运行结果:对数组重新定义时保留动态数组的内容。运行结果:大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第三三节

45、节 动态数组动态数组6.3.2Erase语句语句功能:对于静态数组使用功能:对于静态数组使用EraseErase语句将重新初始化语句将重新初始化数组元素,对于动态数组使用数组元素,对于动态数组使用EraseErase语句将释放动语句将释放动态数组的存储空间。态数组的存储空间。调用形式:调用形式:Erase a1,a2, 语句中的语句中的a1、a2为需要重新初始化的数组名为需要重新初始化的数组名例子例子注意:下标越界是初学者使用数组时经常遇到的错误。要仔细检注意:下标越界是初学者使用数组时经常遇到的错误。要仔细检查数组的说明语句和对数组元素进行赋值操作语句中的下标值,查数组的说明语句和对数组元素

46、进行赋值操作语句中的下标值,若下标值超过了数组说明语句中的上、下界就会产生下标越界错若下标值超过了数组说明语句中的上、下界就会产生下标越界错误。误。大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第三三节节 动态数组动态数组运行结果运行结果:提示:提示:凡是只能被凡是只能被1 1和本身整除的数称和本身整除的数称为素数。除为素数。除2 2以外的素数都是奇数,以外的素数都是奇数,所以只需对所以只需对100100以内的每一个奇数以内的每一个奇数进行判断即可。进行判断即可。 由于编写程序时不能确定由于编写程序时不能确定100100以以内有多少个

47、素数,所以在定义数内有多少个素数,所以在定义数组时用动态数组,这样可以减少组时用动态数组,这样可以减少存储空间的浪费。存储空间的浪费。6.3.36.3.3动态数组应用动态数组应用 例例6-86-8:找出找出100100以内的所有素数,以内的所有素数,存放在数组存放在数组PrimePrime中,中,并将所找到的素数,按每行并将所找到的素数,按每行5 5个的形式显示在窗体上。个的形式显示在窗体上。大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学标志变量的使用在编程中经常用到,例如下面题目:标志变量的使用在编程中经常用到,例如下面题目:Opti

48、on Base 1Dim a%(30),Temp%,n%,i%,Flag As Boolean a(1) = Int(Rnd*90 + 10) 第一个是不可能重复的第一个是不可能重复的 n = 2 Do While n=30 Temp = Int(Rnd*90 + 10) Flag = False 假设没重复假设没重复 For i = 1 To n-1 If Temp = a(i) Then Flag = True : Exit For 退出内层循环,没必要退出内层循环,没必要 End If Next i If Not Flag Then a(n) = Temp:n = n+1 Loop 实验

49、实验6.6 P98大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学 (1) 插入插入 查找要插入的位置查找要插入的位置k(1=k=n-1)腾出位置,把最后一个元素开始到第腾出位置,把最后一个元素开始到第K个元素往后移动一个位置第个元素往后移动一个位置第k个个元素的位置腾出,就可将数据插入元素的位置腾出,就可将数据插入(2) 删除删除 要找到欲删除的元素的位置要找到欲删除的元素的位置k;然后从然后从k+1到到n个位置开始向前移动;个位置开始向前移动;最后将数组元素减最后将数组元素减1。 1 4 7 10 13 14 16 19 22 25

50、k 1 4 7 10 13 16 19 22 25 14 k 注意注意: :redim preserve的应用的应用数组元素的插入与删除数组元素的插入与删除大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学第第三三节节 动态数组动态数组对有序数列的插入、删除元素。对有序数列的插入、删除元素。思想:首先找到要插入(删除)的数据在数组当中的位置,然思想:首先找到要插入(删除)的数据在数组当中的位置,然 后做插入(删除)操作。后做插入(删除)操作。插入:插入:删除:删除:例子:例子:大学计算机基础大学计算机基础沈阳药科大学沈阳药科大学大学计算机基

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(VB教学课件第6章-数组(医药版).ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|