Imports System
Module Program
Sub PrintMatrix(matrix As Integer(,))
Dim rows As Integer = matrix.GetLength(0) ' number of rows
Dim cols As Integer = matrix.GetLength(1) ' number of columns
For i As Integer = 0 To rows - 1
Dim row As String = ""
For j As Integer = 0 To cols - 1
' Pad each number to width 4
row &= matrix(i, j).ToString().PadLeft(4)
Next
Console.WriteLine(row)
Next
End Sub
Sub InverseMatrix(matrix As Integer(,))
Dim rows As Integer = matrix.GetLength(0)
Dim cols As Integer = matrix.GetLength(1)
Dim counter As Integer = 0
Dim r As Integer = rows - 1
For i As Integer = 0 To rows - 1
Dim c As Integer = cols - 1
For j As Integer = 0 To cols - 1
' swap values
Dim temp As Integer = matrix(i, j)
matrix(i, j) = matrix(r, c)
matrix(r, c) = temp
counter += 1
If counter > (rows * cols) \ 2 - 1 Then
Return
End If
c -= 1
Next
r -= 1
Next
End Sub
Sub Main()
Dim matrix As Integer(,) = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
}
Console.WriteLine("matrix:")
PrintMatrix(matrix)
InverseMatrix(matrix)
Console.WriteLine(Environment.NewLine & "inverse matrix:")
PrintMatrix(matrix)
End Sub
End Module
' run:
'
' matrix:
' 1 2 3 4
' 5 6 7 8
' 9 10 11 12
'
' inverse matrix:
' 12 11 10 9
' 8 7 6 5
' 4 3 2 1
'