全国计算机考试第5章 数组

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数组的大小即数组所包含的数组元素的个数, 也称为数组的长度。 数组的大小=第一维大小×第二维大小×… ×第N 维大小 维的大小= 维上界 – 维下界 + 1 dim A(6) as integer dim B(3,-1 to 4) as single
2.数组元素的引用
引用形式:数组名(下标表达式) Dim score(3) as integer Dim two(1,1 to 2) as integer score(0)=80 :score(1)=score(0)+23 score(2)=87 :score(3)=9 two(0,1)=score(0)
B(2,2)

二维数组: 其元素构成一个二维表格或矩阵.数组元素的第 一个下标值表示该元素在表格中的行号,第二个下标 值表示列号.
二维数组的元素表示

二维数组
表示
矩阵
B(0,2)
B(1,2) B(2,2)
B(0,1)
B(2,1 to 2)= B(1,1) B(2,1)
第1行 第2行 第3行
第1列
第2列
控件共享事件代码,那么如何识 别哪个控件执行事件代码呢?
在某个控件识别了一个事件时,VB将调用公 共事件过程,并把该控件的Index属性值传递 给过程,由它指明是哪个控件识别了控件。 例:Private Sub Command1_click(Index As Integer) …

End Sub
A(I)=inputbox(“给数组元素赋值”,”数组A赋 值”) PRINT A(I); NEXT I

例1:输入50个数,按逆序输出


输入使用随机函数,每得到一个数将之赋 给数组元素. 边输入边输出每个元素值(正序) 如何实现逆序输出?
例2 随机产生100个0到9之间的整数, 统计并输出每个数出现的次数。


数组元素名的一般形式: 数组名(下标) 例如:单个下标的数组A有4个元素,则它的元素 可表示为:A(0)、A(1)、A(2)、A(3)
数组元素与维数(续)

如果需要两个下标才能确定一个数组元素在数组 中的位置,则该数组称为二维数组。

二维数组元素名的一般形式:
数组名(下标1 ,下标2) 通常把二维以上的数组称为多维数组。 如: B(2,3)
数组的输出(元素值的显示)

循环控制(下标变量print a(i)) For Each …Next结构

不需要提供初值与终值 根据数组元素的个数确定循环执行的次数
For Each v In 数组 ‘v是变体变量 … Exit for … Next [成员] v必须定义为variant类型
二维数组的定义及赋初值
5.3 动态数组



动态数组:应用中数组的大小不确定. 首先定义不指明大小的数组: Public|Private|Dim| 数组名() As 数据类型 其次,使用ReDim语句动态定义数组的大小。
ReDim [Preserve]数组名(下标1[,下标2]) [As <数据类型>]
注意:用Redim语句定义数组时若指定数据类型, 应与上面的Dim 数组名() As 数据类型中的数 据类型一致,即不允许更换类型.
第5章 数组
5.1 5.2 5.3 5.4 数组的概念 静态数组 动态数组 控件数组
为什么要使用数组?


变量代表在程序执行过程中其值可以改 变的存储单元. 问题:输入50个数,放在内存存储单元中? 若需要对相同类型的一批数据进行处 理,则需要在计算机内存中开辟一块连续 的区域对之进行存储.
1.数组的概念
A(1) 、 A(2) 、 A(3) 、 A(4) 、 A(5)
A
A(0) A(1) A(2) A(3) A(4) A(5)
数组定义(续)
② Dim B(2, 1 To 2) As Single ②等价于 Dim B(0 To 2, 1 To 2) As Single

解析:定义了一个名为B的二维数组,其中有6个数组 元素,分别为:B(0,1)、 B(0,2) 、 b(1,1) 、 B(1,2) 、 B(2,1) 、

数组:具有相同类型变量的有序集合。这些 变量按照一定的规则排列,使用一片连续的 存储单元,数据名就是这块存储区域的名称。 注:数组名不是代表一个变量,而是有内在 联系的一组变量。

2. 数组元素与维数
数组元素:数组内的任一成员。

下标:确定数组元素在数组中的位置。 如果只需一个下标就可以确定一个数组 元素在数组中的位置,则该数组称为一维数 组。


所产生的整数在0-9之中 需要10个计数器(计数变量)来存放10个 数各自出现的次数(数组元素) a(0)---0 a(1)----1
例3 最值问题(重点算法)


编写一个程序,随机产生10个两位正整 数, 并从中找出一个最大数和一个最小数。 打擂台思想
5.4 控件数组
1. 基本概念

控件数组由一组相同类型的控件组成, 例如一组命令按钮或一组文本框。它们 共用一个控件名,具有相同的属性,建 立时系统给每个元素赋一个唯一的索引 号(Index)。

【例1】随机生成包含8个元素(全为一位
正整数)的数组,要求交换对称位置的元素, 并输出交换前后的各元素值。
数 组 第 二 次 课 生 科 院
交换: a(0)------a(7) a(1)------a(6) a(2)------a(5) . .
一行输出,请使用数组完成,即 数组各元素取得各项值,以4个一行的形式输 出数组中各元素值。

例: Option Base 1
Private Sub Command1_Click() Dim a() as integer redim a(9) Print a(8) Redim a(2,3) Print a(1,1) End Sub 思考:将蓝色语句改为redim a(9) as long是否会出错?
3.数组的输入/输出操作
(1)一维数组元素的初始化(输入) 初始化是给数组成员赋初值。 通过循环逐一给数组元素赋值 *使用Inputbox接收若干数值 *随机产生数值 (2)一维数组元素值的显示(输出) *边输入(获得每一元素值后)边输出 *获得全部元素值后再输出 窗体/图片框/文本框/Msgbox
实例


在FOR循环中用循环控制变量作为数组 元素的下标。 边输入边输出 FOR I=0 TO 5 A(I)=INT(99*RND)+1 PRINT A(I); NEXT I
用INPUT函数给数组元素赋值

DIM A(6) as integer, I as integer FOR I=0 to 6
Dim i%, j% Dim b(1 To 2, 1 To 3) As Integer For i = 1 To 2 For j = 1 To 3 b(i, j) = i * 10 + j Print b(i, j); Next j Print Next i *此方法按行列式的格式输出 For Each v In b Print v; Next '此结构按列输出二维数组中的各元素
2. 建立控件数组

方法一:创建同名控件 TEXT1 TEXT2命名(NAME属性)为TEXT1,创 建控件数组。INDEX值不同。
方法二:复制现存控件

3. 使用控件数组
例如: 为文本框控件数组的三个元素设置共同字体与大小
DIM I AS INTEGER FOR I=0 TO 2 TEXT1(I)=“隶书” TEXT1(I).FONT.SIZE=20 NEXT I …
5.2.2 静态数组的操作
1.数组的上下界 数组的上界和下界
下界:数组中表示某维最小的下标值; 上界:数组中表示某维最大的下标值;


注:定义静态数组时,维的上下界必须 是常数表达式,不可以是变量名。 且下界≤上界
静态数组的操作(续)

数组的上界和下界

Dim M As Integer Const N = 5 As Integer Dim A(N) As Integer Dim B(1 To 6.6) As Integer 四舍五入后维上界7 Dim C(1 To 2 * 3) As String Dim D(0 To M) As Single
数组第3次课运行时添加和删除控件
数组中的控件
Load 对象名(index) 向控件数组添加控件 对象名 指在数组中添加的控件名称,Index是控件 在数组中的索引值。加载新元素到控件数组时,要在 程序中将Visible属性设置为TRUE, 通过代码安排新 元素在窗体上的位置(通过top,left属性)。 Unload 对象名(index) 删除用Load产生的对象数组 元素。 例5.2 建立一个动态添加和删除控件数组元素的程序.
5.2 静态数组
VB中两种变量数组:静态数组和动态数组。 静态数组大小固定 动态大小不确定,使用前重新定义(定义2次) VB中的对象数组----控件数组

5.2.1 静态数组的定义
使用数组之前必须对其进行定义(先定义 后使用) 定义语句格式如下:

Dim|Static|Private|Public 数组名(下标1[,下标 2])[As <数据类型>] Dim 数组名(下标1)As <数据类型> „一维数组 Dim 数组名(下标1,下标2)As <数据类型> „二维数组
下标的格式如下:
[<下界1> To ] 上界1 [ [,<下界2> To] 上界2…] 其中,“下界”和关键字“To”可以省略,若程序中无 特别声明,表示下标的取值从0开始,等价于“0 To 上界”。
① Dim A(5) As Integer ①等价于 Dim A(0 To 5) As Integer A为数组名,该数组中有6个数组元素,分别为:A(0)、
【例3】生成若干个0-99之间的整数存于数组a,
删除指定位置的元素,并显示删除前、后结果。

利用循环生成数组各元素值。 指定要删除元素的位置 删除方法:用后继元素覆盖之 由于数组大小在删除元素后会发生变化,所 以应定义为动态数组。
【例4】将某范围内的素数存放到数组中.
从键盘输入一个正整数,找出该数 以内的所有素数存放在数组prime中 并将所有找到的素数按每行5个的 形式输出到文本框中。 输出到当前窗体中。
数组的维下界

定义数组时,若未指定某维的下界,则下界默认为0 设置缺省维下界的数组的维下界为1的方法: 在代码窗口通用声明部分写一语句option Base 1
再在cmd1_click()事件过程中进行定义: Dim S(4), B(3,3) as integer 变体型,整型数组
数组的大小
重新定义数组时可以保留原数组中的内容 在使用ReDim语句重新定义数组时,如果需 要保留动态数组的内容可采用如下方式:

Redim Preserve 数组名(维界定义)[As 数据类型] Example:动态数组单循环例子(读程序见下页)
单循环例子(读程序)
Option Base 1 Private Sub Form_Click() Dim a() As Integer Dim i As Integer, j As Integer For i = 1 To 3 ReDim a(i) 思考:redim preserve a(i) a(i) = i Next i Print a(1); a(2); a(3) End Sub
一维数组的输入:直接赋值,随机赋值,inputbox赋值
4.用ARRAY函数给一维数组赋值


数组的输入(赋值)与输出(显示) Array函数:给Variant类型的变量或Variant类型 的动态数组赋值 例:ARRAY赋值.vbp Option Base 1
Private Sub Form_Click() Dim A As Variant, I As Integer Dim B() As Variant FontSize = 30 A = Array(5, 4, 3, 2, 1) Print A(1); A(2); A(3); A(4); A(5) A = Array(1.5!, 2.3!, 3.6!, 4.1!) Print A(1); A(2); A(3); A(4); A = "NO ARRAY" Print A B = Array(1, 2, 3, 4, 5, 6) Print B(1) End Sub
相关文档
最新文档