VBA-Матрица,диагональ(главная,побочная)
Формулировка задачи:
Дана квадратная матрица порядка N. Вывести столбец матрицы, в котором элемент, стоящий на главной (побочной) диагонали, минимален, среди элементов главной диагонали.
Решение задачи: «VBA-Матрица,диагональ(главная,побочная)»
textual
Листинг программы
Sub test()
Dim matrix() As Integer
Dim n As Variant
Dim mColumn As Variant
Dim minValue As Integer
Dim maxValue As Integer
Dim minElement As Integer
Dim nr As Integer
minValue = 0
maxValue = 20
Cells.Clear
n = InputBox("n = ")
ReDim matrix(1 To n, 1 To n)
For i = 1 To n
For j = 1 To n
matrix(i, j) = Int((maxValue - minValue + 1) * Rnd + minValue)
Next j
Next i
ReDim mColumn(1 To n)
minElement = matrix(1, 1)
For i = 1 To n
For j = 1 To n
If i = j Then
If minElement > matrix(i, j) Then
nr = j
minElement = matrix(i, j)
End If
End If
Next j
Next i
For i = 1 To n
mColumn(i) = matrix(i, nr)
Next i
Range(Range("A1"), Range("A1").Offset(n - 1, n - 1)) = matrix
Range(Range("A1").Offset(0, n + 3), Range("A1").Offset(0, n + 3).Offset(n - 1, 0)) = WorksheetFunction.Transpose(mColumn)
For i = 0 To n - 1
Range("A1").Offset(i, i).Interior.Color = 14408946
Next i
End Sub