转换的算法如下:
1)改变列的位置:原矩阵第3列变为新矩阵的第1列,原矩阵第1列变为新矩阵第2列,原矩阵第4列变为新矩阵第3列,原矩阵第2列变为新矩阵第4列。
2)改变行的位置:经过(1)处理后的矩阵的第1行和第4行交换,第2行和第3行交换。实现上面的功能,程序运行界面如图所示。
Dim sc(1 To 16) As Integer
Dim zh(1 To 16) As Integer
Private Sub Command1_ Click( )
'在列表框list1中生成4*4矩阵sc,代码略
End Sub
Private Sub Command2_Click( )
Dim pb As Integer, tmp As Integer, i As Integer, line As String
For i=1 To 16 '变化列
If i Mod 4=1 Then
ElseIf i Mod 4=3 Then
pb=i-2
Else
pb=pb+2
End If
zh(pb)= sc(i)
Next i
For i=1 To 8 '交换行
If Then
tmp=zh(i) : zh(i)=zh(i+12) : zh(i +12)= tmp
Else
tmp=zh(i) : zh(i)=zh(i+4) : zh(i+4)= tmp
End If
Next i
line= ""
List2. Clear
For i=1 To 16
If i Mod 4=1 Then
List2. AddItem line
line= adj(Str(zh(i)), 3)
Else
End If
Next i
List2. AddItem line
End Sub
Function adj(a As String,n As Integer) As String
'adj 函数的功能:在字符串a前加入适当的空格,使得a的程度为n位,代码略。
End Function