Поменять местами элементы главной и побочной диагонали в массиве - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5
Похожие ответы