Vba matrix
Формулировка задачи:
Путем перестановки элементов квадратной вещественной матрицы добиться того, чтобы ее максимальный элемент находился в левом верхнем углу, следующий по величине — в позиции (2, 2), следующий по величине — в позиции (3, 3) и т. д., заполнив таким образом всю главную диагональ (оформить в виде процедуры).
Решение задачи: «Vba matrix»
textual
Листинг программы
Sub Diagonal_Maximumov()
Dim i%, j%, k%, A, T!, Max!, MaxRow%, MaxCol%
A = Range("A1:H8").Value
For k = 1 To UBound(A)
Max = -3.402823E+38
MaxRow = 0
For i = 1 To UBound(A)
For j = 1 To UBound(A)
If Max < A(i, j) And Not (i = j And i < k) Then
Max = A(i, j)
MaxRow = i
MaxCol = j
End If
Next j
Next i
If MaxRow > 0 Then
T = A(k, k)
A(k, k) = A(MaxRow, MaxCol)
A(MaxRow, MaxCol) = T
End If
Next k
Range("A1:G8").Value = A
End Sub