Поменять местами элементы главной и побочной диагонали в массиве - VBA
Формулировка задачи:
Дана матрица A[n, n]. Поменять местами элементы главной и побочной диагонали.
Выдает кучу ошибок, уже все перепробовал, что знаю, искал какие то подсказки на просторах интернета, все безуспешно
Решение задачи: «Поменять местами элементы главной и побочной диагонали в массиве»
textual
Листинг программы
Sub diagonale() Dim s() As Integer, f As Integer, g As Integer, tmp Dim n As Integer With ActiveSheet .Cells.Font.Color = vbBlack .Cells.ClearContents End With n = InputBox("введите целое число n: ", Default:="4") 'сначала ввели число n = n - 1 ReDim Preserve s(n, n) As Integer ' потом используя его определяем размеры массива! For f = 0 To n For g = 0 To n ' наполняем массив случайными числами s(g, f) = CInt(Rnd * 100) Next Next ' массив заполнен случайными целыми числами от 0 до 100 With Range(Cells(1, 1), Cells(n + 1, n + 1)) .Value = s() .Font.Color = vbBlue End With ' массив отправлен в ячейки листа! Range(Cells(1, n + 3), Cells(n + 1, n + n + 3)).Font.Color = vbBlue For f = 0 To n ' от сих tmp = s(f, f) s(f, f) = s(n - f, f) s(n - f, f) = tmp ' до сих происходит вся процедура замены диагоналей! Next Range(Cells(1, n + 3), Cells(n + 1, n + n + 3)).Value = s() ' обновленный массив отправлен в ячейки листа! For f = 0 To n Cells(f + 1, f + 1).Font.Color = vbRed ' Подкрасим для наглядности Cells(n - f + 1, f + n + 3).Font.Color = vbRed Cells(f + 1, f + n + 3).Font.Color = vbMagenta Cells(n - f + 1, f + 1).Font.Color = vbMagenta Next End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д