Randomize Timer

Dim a() As Integer

Dim n As Integer, min As Integer, max As Integer

Dim i As Integer, j As Integer

n = Cells(1, 4)

ReDim a(n, n)

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

For i = 1 To 10 * n

For j = 1 To 10 * n

Cells(i + 1, j) = ""

Next j

Next i

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

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

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

For i = 1 To n

For j = 1 To n

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

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

Next j

Next i

'поиск максимального и минимального элемента

'главной диагонали

min = a(1, 1): max = a(1, 1)

For i = 1 To n

If a(i, i) < min Then min = a(i, i)

If a(i, i) > max Then max = a(i, i)

Next i

'замена элементов главной диагонали на max

'замена элементов побочной диагонали на min

For i = 1 To n

a(i, i) = max

a(i, n - i + 1) = min

Next i

'замена центрального элемента на 0 при нечетном

'размере матрицы

If Int(n / 2) <> n / 2 Then a(Int(n / 2) + 1, Int(n / 2) + 1) = 0

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

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

For i = 1 To n

For j = 1 To n

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

Next j

Next i