vb
个人日记
第6部分 数组(先定义后使用)
第6部分 数组(先定义后使用)
一、一维数组
1、定义格式:
Dim 数组名([下标的下界 to] 下标的上界) [as 数据类型]
例子:dim a%(1 to 10) ------声明数组a,包含10个数组元素,第一个数组元素是a(1)
dim b%(7) ------声明数组b,包含8个数组元素,第一个数组元素是a(0)
dim c%(-1 to 3) -----包含5个数组元素
说明:1)下标:数组下标是连续的;数组声明时,前小后大;省略下标下界默认从0开始
2)option base 0/1:指定省略的数组下标下界
3)数组元素个数=上界-下界+1
例子:
Option base 1
Dim s%(-2 to 3) ------包含6个数组元素
Dim t%(4) ------包含4个数组元素
Dim m%(-2) ------- Dim m%(1 to -2) 错误的声明
请问:ai和a(i)一样吗?不一样!!
2、数组使用:
数组名(下标) -----在使用中下标可以是常量或者变量
3、数组的赋值:
例子:dim a%(1 to 4)
a(1)=100 -------直接赋值
for i=1 to 4 --------和for循环相结合(建立循环变量和数组下标对应关系)
a(i) =int(rnd*90+10)
next
4、数组的输出:
Print a(2) ------直接输出
For i=1 to 4 -----和for相结合
Print a(i)
Next
5、例题:(定义数组----->完成数组赋值和输出----->根据要求完成操作)
1)找出20个数中的最大值。
Option Base 1
Private Sub Command1_Click()
Dim a%(20)
For i = 1 To 20 '完成数组赋值和原始数据输出
a(i) = Int(Rnd * 90 + 10)
Print a(i)
Next
'根据题完成操作
t = a(1)
For i = 2 To 20
If a(i) > t Then t = a(i)
Next
Print "最大值是:"; t
End Sub
2)找出10个数中的奇数
Option Base 1
Private Sub Command1_Click()
Dim a%(10)
For i = 1 To 10
a(i) = Int(Rnd * 90 + 10)
Print a(i)
Next
For i = 1 To 10
If a(i) Mod 2 <> 0 Then Print a(i)
Next
End Sub
3)将10个数组元素逆序存放(算法10:数组逆序存放)
Private Sub Command1_Click()
Dim a%(1 To 10)
For i = 1 To 10
a(i) = Int(Rnd * 90 + 10)
Print a(i);
Next
'实现交换
For i = 1 To 5
t = a(i)
a(i) = a(11 - i)
a(11 - i) = t
Next
'输出交换之后的数据
For i = 1 To 10
Print a(i);
Next
End Sub
4)求fibonacci的前20项(算法11:fibonacci) 1,1,2,3,5,8,13,21,34,55,……
Private Sub Command1_Click()
Dim t%(1 To 20)
t(1) = 1
t(2) = 1
For i = 3 To 20
t(i) = t(i - 1) + t(i - 2)
Next
For i = 1 To 20
Print t(i)
Next
End Sub
二、二维数组
1、定义格式:
Dim 数组名([下界 to] 上界,[下界 to] 上界) [as 数据类型]
Dim 数组名(行,列) [as 数据类型]
例子:dim a%(3,3) ----- dim a%(0 to 3,0 to 3)声明了一个4行4列的数组,包含16个数组元素
dim b%(1 to 2,1 to 3) ------b(1,1) b(1,2) b(1,3) b(2,1) b(2,2) b(2,3)
说明:二维数组元素的个数=行数*列数
2、数组使用:
数组名(行号,列号) --------行号和列号可以是常量也可以是变量
3、数组赋值
直接赋值:a(1,1)=2000
双for结合:
Option base 1
Dim a%(3,3)
For i=1 to 3
For j=1 to 3
a(i,j) = int(rnd*90+10)
next
next
25 | 39 | 89 |
70 | 45 | 56 |
37 | 82 | 54 |
4、数组输出
直接输出:print a(1,1)
双for结合:
For i=1 to 3
For j=1 to 3
Print a(i,j) ;
Next
next
5、例题
1)求4×4矩阵主对角线、副对角线、周边元素和(算法12:矩阵)
Option Base 1
Private Sub Command1_Click()
Dim a%(4, 4)
For i = 1 To 4
For j = 1 To 4
a(i, j) = Int(Rnd * 9 + 1)
Print a(i, j);
Next
Next
'主对角线元素和
s = 0
For i = 1 To 4
s = s + a(i, i)
Next
Print s
'副对角线元素和
t = 0
For i = 1 To 4
t = t + a(i, 5 - i)
Next
Print t
'周边元素和
s = 0
For i = 1 To 4
For j = 1 To 4
If i = 1 Or i = 4 Or j = 1 Or j = 4 Then s = s + a(i, j)
Next
Next
Print s
End Sub
2)杨辉三角(算法13:杨辉三角)
Option Base 1
Private Sub Command1_Click()
Dim a%(5, 5)
For i = 1 To 5
For j = 1 To i
If i = j Or j = 1 Then
a(i, j) = 1
Else
a(i, j) = a(i - 1, j) + a(i - 1, j - 1)
End If
Print a(i, j);
Next
Next
End Sub
文章评论