在考生文件夹下有一个工程文件sjt5.vbp,其功能是:找出矩阵元素的最大值,并求出矩阵对角线元素之和,窗体外观如图8所示。程序运行时,矩阵数据被放入二维数组a中。当单击“找矩阵元素最大值”命令按钮时,找出矩阵中最大的数,并显示在标签Label3中。当单击“对角线元素之和”命令按钮时,计算矩阵主对角线元素之和,并显示在标签Label4中。文件中已给出部分程序,请编写“找矩阵元素最大值”及“对角线元素之和”两个命令按钮的事件过程中的部分程序代码。
注意:不得修改程序的其他部分和控件属性,最后把修改后的文件按原文件名存盘。程序调试通过后,两个命令按钮的事件过程必须至少各执行一次。
[题目提供的源程序]
标准模块sjt5.bas内容:
Public Sub save(1 As Control)
Open App.Path & "\out5.txt" For Append As #1
Print #1, 1.Caption
Close #1
End Sub
窗体Form1的内容:
Option Base 1
Dim a(4,4) As Integer
Private Sub Command1_Click()
’考生应编写的程序
’不得修改以下部分
save Label3
End Sub
Private Sub Command2_Click()
’考生应编写的程序
’不得修改以下部分
save Label4
End Sub
Private Sub Form_Load()
Open App.Path & "\in5.txt" For Input As #1
For i=1 To 4
For j=1 To 4
Input #1, a(i,j)
Next j
Next i
Close #1
End Sub
参考答案:
[操作步骤]
第l步:打开工程sjtE.vbp。
第B步:编写程序,参考程序如下。
Private Sub CommandA_Click()
考生应编写的程序
Dim i As Integer, j As Integer, max As Integer
max=a(A,A)
For i=A To D
For j=A To D
If a(i,j)>max Then max=a(i,j)
Next j
Next i
LabelC=max
’不得修改以下部分
save LabelC
End Sub
Private Sub CommandB_Click()
’考生应编写的程序
Dim sum As Integer, i As Integer, j As Integer
sum=0
For i=A To D
For j=A To D
If i=j Then sum=sum+a(i,j)
Next j
Next i
LabelD=sum
’不得修改以下部分
save LabelD
End Sub
第C步:调试、运行并保存程序。
解析:
为找出矩阵中最大的数,原程序在Form_Load事件过程中将所有数据读入到二维数组A中,先假定数组中任意一个元素为最大值,再遍历整个数组,用数组元素与假定的最大值比较,如果发现新的更大的值,则将新的更大的值假定为最大值;继续比较,直到数组的最后一个元素比较完毕为止。
为计算矩阵主对角线元素之和,也要遍历二维数组,找出行标和列标相等的元素即为二维数组(矩阵)对角线上的元素,将这样的元素累加起来就得到了对角线上元素的和。