End Sub

Результат выполнения программы:

Пример 13. Дана матрица А(n, m). Отсортировать каждый столбец в порядке убывания.

Sub primer_13()

Dim a() As Integer

Dim n As Integer, m As Integer, i As Integer

Dim j As Integer, prom As Integer, k As Integer

n = Cells (1, 4)

m = Cells (2, 4)

ReDim a(n, m)

'очистка рабочего листа от посторонних надписей

For i = 1 To 10 * n

For j = 1 To 10 * m

Cells (i + 2, j) = ""

Next j

Next i

'заполнение массива случайными целыми числами

'вывод массива в рабочий лист Excel

Cells (4, 1) = "Исходный массив:"

For i = 1 To n

For j = 1 To m

a(i, j) = 50 - Int (Rnd () * 100)

Cells (i + 4, j) = a(i, j)

Next j

Next i

' сортировка двумерного массива по столбцам

For j = 1 To m

'сортировка столбцов массива

For k = n - 1 To 1 Step -1

For i = 1 To k

If a(i, j) < a(i + 1, j) Then

'перестановка соседних элементов массива

prom = a(i, j)

a(i, j) = a(i + 1, j)

a(i + 1, j) = prom

End If

Next i

Next k

Next j

'вывод на печать массива с отсортированными строками

Cells (n + 6, 1) = "Преобразованный массив:"

For i = 1 To n

For j = 1 To m

Cells (i + n + 6, j) = a(i, j)

Next j

Next i


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: