【实例4.19】 九九乘法表。
设计程序,运行结果如图4-27所示。九九表是一个9行9列的二维表,行和列都要变化,而且相互约束,属于一个二重循环问题。

图4-27 程序运行结果
打开代码编辑窗口,在其中输入如下代码:
Private Sub Form_Activate()
Dim a, b As Integer
FontSize = 14
Print Tab(30); "九九乘法表": Print
FontSize = 10
For a = 1 To 9
For b = 1 To 9
Print Tab(b * 12 - 12); Str$(a) + "×" + Str$(b) + "=" + Str$(a * b);
Next b
Next a
End Sub
【实例4.20】 利用循环实现数字金字塔输出,如图4-28所示。

图4-28 程序运行结果
一共要输出指定塔高n行信息。每行信息都是有规律的:先重复输出若干个空格,然后重复输出若干个对应行号的数字字符,其中输出空格的数量和数字字符的数量都是有规律的:第1行,1个数字【1】,n-1个空格;第2行,3个数字【2】,n-2个空格;依次类推,可以找到规律:第i行,先输出n-i个空格,然后输出2i-1个数字字符【i】。
打开代码编辑窗口,在其中输入如下代码:
Private Sub Form_Click()
Dim n As Integer, i As Integer, j As Integer
n = Val(InputBox("请输入数字金字塔的塔高n(1-9):"))
If n >= 1 And n <= 9 Then
For i = 1 To n
For j = 1 To n - i
Print " "; '输出空格
Next j
For j = 1 To 2 * i - 1
Print CStr(i); '输出数字字符
Next j
Print '换行
Next i
Else
MsgBox "塔高输入错误!必须是在1~9之间整数"
End If
End Sub
在程序设计中,利用简单变量可以解决不少问题。但是仅使用简单变量,必然受到简单变量单独性和无序性的限制,难于解决那些不仅与取值有关,而且与其所在位置有关的复杂问题。因此,需要引入更强的数据结构——数组。
数组是指使用同一个名字来组织一组相同类型的变量,数组中的变量称为数组元素,数组中的每个元素都有一个唯一的下标(索引)来标识自己,使用数组可以缩短和简化程序。数组元素的个数称为数组的长度(大小)。
如:要记录500个学生的成绩,如果用普通变量存放的话,需要500个变量,Score1、Score2、Score3……Score500,各个变量相互独立;若使用数组存放,用Score(1 to 500)表示数组Score中有500个元素,分别用Score(1)……Score(500)表示,则可以用循环做批量处理。
数组的各个元素在内存中是连续存放的,如图4-29所示,数组名表示这个连续数据区域的名称,下标表示该元素在内存中的位置。

图4-29 数组在内存中的表示
根据数组在内存中分配空间在程序执行过程中是否可变,将VB中的数组分为静态数组和动态数组。静态数组不允许用户在定义后再在程序中修改数组的长度和维数,而动态数组允许用户在定义后多次在程序中修改数组的长度或维数。
1.数组的定义
数组的命名规则与简单变量的命名规则一样,由1~40个字符组成,组成的字符可以是字母、数字和小数点,并且必须以字母开头。
数组中下标的个数称为数组的维数。如果数组中的所有元素,能按行或列顺序排成一行,即用一个下标就可以确定它们各自所处的位置,这样的数组称为一维数组;如果数组中的所有元素,能按行、列顺序排成一个矩阵,即必须用两个下标才能确定它们各自所处的位置,这样的数组称为二维数组。
依次类推,三个小标的数组,构成三位数组。有多少个下标的数组就构成多少维的数组,如四维数组、五维数组或更多维数组等。通常把超过二维的数组称为多维数组。
2.数组的引用
在VB中,引用数组中的某一个元素,要指出其数组名和用括号括起来的数组元素在数组中的位置的下标,即小标变量的标识为:
数组名 下标表
其中,下标表是指一个或者几个下标(一维或多维),各下标之间应该用逗号分隔,例如:x(4),n(3,7),b(1,2,3)等。
在下标的使用中,应注意以下几个问题:
(1)下标放在数组名后的括号内。
(2)下标可以是常量、变量或表达式。
(3)下标反映的是在数组中的位置。下标值若为非整数,系统将按四舍五入自动取整,其值范围与整型数(Integer)范围一致。
(4)下标变量与简单变量一样,可以被赋值和引用。引用数组元素时的下标值应该在下限与上限之间,否则系统将显示【Subscript out range】出错信息。
静态数组是在声明时就已经确定了数组元素个数的数组。
1.一维数组