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开始

      2option 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)    错误的声明

请问:aia(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

Print

Print

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

Print

'实现交换

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项(算法11fibonacci   11235813213455……

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%33  ----- dim a%0 to 30 to 3)声明了一个44列的数组,包含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

Print

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

    Print

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

    Print

Next

End Sub

文章评论