编写VB程序,模拟考场安排,将编号从1开始的n(n为平方数)个学生按m×m方阵以S型进行排列。程序功能如下:在文本框Text1中输入考场人数,点击“排列”按钮Command1,在列表框Listl中输出排列结果。以4×4方阵为例,考生编号为1~16,排列规则如图a所示,运行界面如图b所示。
图a
图b
实现上述功能的VB程序如下,但加框处代码有错,请改正。
Private Sub Command1_Click()
Dim a(1 To 100) As Integer '用来存储重新排列后的编号
Dim n As Integer,i As Integer,j As Integer,k As Integer,pa
As Integer
Dim s As String
n=Val(Text1.Text)
i=1
‘⑴
For k=1 To m
If k Mod 2=1 Then
pa=k
For j=1 To m
a(pa)=i
pa=pa+m
i=i+1
Next j
Else
pa=(m-1)*m+k
For j=1 To m
a(pa)=i
‘⑵
i=i+1
Next j
End If
Next k
i=1
For k=1 To m ‘按行对考生编号进行输出
s=""
For j=1 To m
s=s+Str(a(i))
i=i+1
Next j
List1.AddItem s
Next k
End Sub
⑴ ⑵
答案:【1】m=Sqr(n)【2】pa=pa-m