实验十 一维数组程序设计
11
实验十一 二维数组程序设计
【实验目的】
(1)掌握动态数组的定义和使用方法
(2)掌握二维数组的定义、赋值和输入输出方法 (3)掌握有关二维数组的一些常用算法 (4)掌握控件数组建立的方法及应用
【实验内容】 1、尝试编写下列程序
【11-1】找出m×n矩阵中最大的那个元素所在的行和列,输出其值及行号和列号。程序运行结果界面如图11-1所示:
11-1 运行结果界面
源代码:
Private Sub Form_Click() Dim a() As Integer
Dim m, n, col, max, row As Integer Dim i, j As Integer m = Val(InputBox(\请输入矩阵的行数\n = Val(InputBox(\请输入矩阵的列数\ReDim a(m, n) For i = 1 To m
For j = 1 To n a(i, j) = Val(InputBox(\请输入数组第\行第\列元素值\ Next j
Next i
Print \所建立的矩阵为:\For i = 1 To m For j = 1 To n Print a(i, j); Next j Print Next i
max = a(1, 1) col=1 row=1
实验十 一维数组程序设计
For i = 1 To m
For j = 1 To n
If a(i, j) > max Then max = a(i, j) col = j row = i End If Next j Next i
Print \矩阵最大的元素的值为:\Print \他所在的行号为:\列号为:\End Sub
12
?举一反三
【11-1】随机生成一个3×4矩阵,元素值为[80,100]之间的数,求所有元素的平均值并输出。 【11-2】随机生成一个5行4列的矩阵,元素值为[1,10]之间的数,求每一行的和值并输出。运行结果如图11-2所示。
11-2运行结果界面
源代码:
Private Sub Command1_Click()
Dim a(1 To 5, 1 To 4) As Integer, i As Integer, j As Integer Dim sum As Integer For i = 1 To 5 For j = 1 To 4
a(i, j) = Int(Rnd * 10 + 1) Print a(i, j); Next j Print Next i Print For i = 1 To 5
实验十 一维数组程序设计
sum = 0
For j = 1 To 4
sum = sum + a(i, j) Next j
Print \第\行的和值是:\Next i End Sub
13
?举一反三
【11-2】随机生成一个5行4列的矩阵,元素值为[1,10]之间的数,输出每一列的和值。 【11-3】随机生成一个4行5列的矩阵,元素值为[10,99]之间的数,交换矩阵第1列和第5列的数据后,输出该矩阵。
11-3 运行结果界面
源代码:
Private Sub Command1_Click()
Dim a(1 To 4, 1 To 5) As Integer, i As Integer, j As Integer Dim t As Integer
Print \输出初始数组:\ For i = 1 To 4 For j = 1 To 5
a(i, j) = Int(Rnd * 90 + 10) Print a(i, j); Next j Print Next i
For i = 1 To 4 t = a(i, 1) a(i, 1) = a(i, 5) a(i, 5) = t
Next i
Print \输出交换后的数组:\ For i = 1 To 4
实验十 一维数组程序设计
For j = 1 To 5 Print a(i, j); Next j Print Next i End Sub
14
?举一反三
【11-3】随机生成两个4行5列的矩阵,元素值为[10,99]之间的数,交换矩阵第1行和第4行的数据。
【11-4】求3×3矩阵中主对角线元素之和。元素值为行、列下标之和,行、列下标都从1开始。程序运行结果界面如图11-4所示:
11-4 运行结果界面
源代码:
Private Sub Command1_Click() Dim a(1 to 3, 1 to 3) As Integer s = 0
For i = 1 To 3 For j = 1 To 3 a(i, j) = i + j Next j Next i
For i = 1 To 3 For j = 1 To 3 Print a(i, j); Print Space(5); Next j Print Next i
For i = 1 To 3
s = s + a(i, i) Next i
Print \矩阵主对角线元素之和=\End Sub
?举一反三
【11-4】求3×3矩阵中辅对角线元素之和。元素值为行、列下标之和,行、列下标都从1
实验十 一维数组程序设计
开始。。
15
【11-5】生成一个随机的5×5矩阵,元素值为[0,10)之间的数,将该矩阵位于主对角线下方的所有元素都赋值为1。程序运行结果界面如图11-5所示:
11-5 运行结果界面
源代码:
Private Sub form_Click() Dim a(1 To 5, 1 To 5) As Integer Print \输出初始数组:\ For i = 1 To 5 For j = 1 To 5
a(i, j) = Int(Rnd() * 10) Print a(i, j); Next j Print Next i For i = 1 To 5 For j = 1 To i
a(i, j) = 1 Next j Next i
Print \输出变化后的数组:\ For i = 1 To 5 For j = 1 To 5 Print a(i, j); Next j Print Next i End Sub
?举一反三
【11-5】生成一个随机的5×5矩阵,元素值为[0,10)之间的数,将该矩阵的位于辅对角线上方的所有元素赋值为0。
【11-6】利用文本框控件数组生成如图所示图形。程序运行结果界面如图11-6所示: