题库 高中信息

题干

(加试题)由数组a生成数字方阵,并求方阵中对角线上数值的和:
1)   将数组a中的n个元素依次分割出若干个数据块,每个数据块有m×m个元素。
2)   对每个分割出的数据块,按照数字方阵方式显示。
3) 找出数字方阵中对角线上的数值,求出它们的和,若分割的数据块达不到m×m个元素,则忽略。
数字方阵过程如下:将数据块中m×m个元素按行序排列成一个数字方阵,以3×3数据块为例,排列过程如下图所示:

找出对角线上的数值分别是:12,19,83和34,19,54,它们的和分别是114,107
小明依据上述描述设计了如下VB程序。请回答下列问题:
(1)当n=30时,如下图所示,分割出每个数据块为2×2个元素,第二组数字方阵中的对角线和分别为_____________。
(2)请在划线处填入合适的代码。
Dim a(1 To 30) As Integer
Private Sub Form_Load()
'随机生成30个不重复的正整数到a()数组中。代码略
End Sub
Private Sub Command1_Click()
Dim t As Integer, i As Integer, m As Integer, j As Integer, x As Integer
Dim s As String, tt As String
Dim start As Integer   '当前数字方阵的第1个元素下标
m = Val(Text1.Text)
t = 30 \ m ^ 2
If t = 0 Then
MsgBox "重新输入"
Else
List1.Clear
For i = 1 To t
start =  
For j = 1 To m
For x = 1 To m
tt = tt +  
Next x
List1.AddItem tt
tt = ""
Next j
List1.AddItem ""
s = sum1(start, m)
List2.AddItem "第" + Str(i) + "组的对角线分别是:" + s
Next i
End If
End Sub
Function sum1(begin As Integer, m As Integer) As String
Dim s1 As Integer, s2 As Integer
s1 = a(begin)
For i = 1 To m - 1
s1 = s1 + a(begin + i * (m + 1))
Next i
s2 = 0
For i = 1 To m
s2 = s2 + a(begin + i * (m - 1))
Next i
sum1 =
End Function
划线处代码为:
①    ______________________________
②    ______________________________
③    ______________________________
上一题 下一题 0.99难度 填空题 更新时间:2019-05-08 07:39:11

答案(点此获取答案解析)