数组a中存放了n * n个1000以内随机正整数按n行n列在列表框List1中显示(即第一行自左向右依次显示a(1)~a(n),第二行自左向右依次显示a(n+1)~a(2*n),)单击“水平翻转”按钮Command1,对矩形区域中的数据进行水平转,并将变换后的n * n个数据保存到数组b中,最后在列表框List2中显示(即第一行自左向右依次显示b(1)~b(n),第二行自左向右依次显示b(n+1)~b(2 * n),……)。程序运行界面如图所示。
小明依据上述描述设计了如下VB程序。请回答下列问题:
(1)
当n=8时,第3列的元素变成第列。
(2)
请在划线处填入合适的代码。
Const
n = 6
Dim
a(1 To n ^ 2) As Integer, b(1 To n ^ 2) As Integer
Private
Sub Form _ Load ( )
‘产生n * n个1000以内随机正整数,保存在数组a中
‘按格式整齐显示在List1中
‘代码略
End
sub
Private
Sub Command1_Click ( )
Dim i
As Integer, j As Integer
Dim s
As String, c As String
For i
= 1 To n
For j = 1 To n
①
Next
j
Next
i
List2.
Clear: c = “”
For i
= 1 To n * n
c = c+ Ads(b(i), 4) + “”
If ②
Then
List2. AddItem c
List2 AddItem “”
c
= “”
End If
Next
i
End
sub
Function
Ads ( ③ ) As String
Dim
sx As String, yx As Integer, i As Integer
sx = Str(x): yx = Len(sx)
For i
= 1 To y-yx
sx = “” + sx
Next
i
④
End
Function
① ② ③ ④
答案: 【1】6
【1】b((i-1)*n+j)=a(i-1)*n+n+1-j)【2】i Mod n=0【3】x As Integer, y As Integer【4】Ads=sx