问题 问答题

在考生文件夹下有一个工程文件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中,先假定数组中任意一个元素为最大值,再遍历整个数组,用数组元素与假定的最大值比较,如果发现新的更大的值,则将新的更大的值假定为最大值;继续比较,直到数组的最后一个元素比较完毕为止。

为计算矩阵主对角线元素之和,也要遍历二维数组,找出行标和列标相等的元素即为二维数组(矩阵)对角线上的元素,将这样的元素累加起来就得到了对角线上元素的和。

判断题
判断题