Option Explicit
Const N As Long = 5
Private Sub Form_Load()
Dim a(0 To N - 1, 0 To N - 1) As Long
Fill a
PrintM a
Sort1 a
Sort2 a
PrintM a
End Sub
Private Sub Fill(a() As Long)
'заполнение матрицы
Dim i As Long, j As Long
For i = 0 To UBound(a, 1)
For j = 0 To UBound(a, 2)
a(i, j) = Int(Rnd * 10)
Next
Next
End Sub
Private Sub PrintM(a() As Long)
'печать матрицы
Dim i As Long, j As Long
For i = 0 To UBound(a, 1)
For j = 0 To UBound(a, 2)
Cells(i + 1, j + 1) = a(i, j)
Next
Next
End Sub
Private Sub Sort1(a() As Long)
Dim i As Long
Dim j As Long
Dim t As Long
'сортировка по основной диагонали
For i = 0 To N - 1
For j = i + 1 To N - 1
ClearInterior
Cells(j + 1, j + 1).Interior.Color = vbRed
Cells(i + 1, i + 1).Interior.Color = vbRed
Stop
If a(j, j) < a(i, i) Then
t = a(j, j)
a(j, j) = a(i, i)
a(i, i) = t
End If
Next
Next
ClearInterior
End Sub
Private Sub Sort2(a() As Long)
Dim i As Long
Dim j As Long
Dim t As Long
'сортировка по побочной диагонали
For i = 0 To N - 2
For j = i + 1 To N - 1
ClearInterior
Cells(j + 1, N - j).Interior.Color = vbRed
Cells(i + 1, N - i).Interior.Color = vbRed
Stop
If a(j, N - 1 - j) < a(i, N - 1 - i) Then
t = a(j, N - 1 - j)
a(j, N - 1 - j) = a(i, N - 1 - i)
a(i, N - 1 - i) = t
End If
Next
Next
ClearInterior
End Sub
Sub ClearInterior()
'очистка заливки поля
Dim i As Long, j As Long
For i = 1 To 5
For j = 1 To 5
Cells(i, j).Interior.Color = vbWhite
Next
Next
End Sub
Затык в том что я не программист, а училка сказала сделать, но я вообще не понял ничего, написано массив 5 на 5 с сортировкой по главной диагонали, а че это значит не знаю
Нубяра, на нашем форуме помогают в написании программ, но не выполняют задания вместо другого человека. Такое обычно практикуется платно.
Код VBA практически полностью совместим с VB6. Чтобы он работал в VB6 достаточно убрать лишнее. Об этом вам скажет компилятор.
Вы можете создать макрос Excel и наочно увидеть, как работает сортировка.
Сортировка по диагоналям ничем не отличается от сортировки по строкам или колонкам. Просто здесь меняются между собой значения, которые расположены в позициях диагонали, а не горизонтали или вертикали.
Если у вас есть какой-то более конкретный вопрос, задавайте...