Найти произведение элементов побочной (главной) диагонали квадратной матрицы - VBA

Узнай цену своей работы

Формулировка задачи:

Добрый вечер. Помогите в решении следующего условия: Дана квадратная матрица порядка N. Найти произведение элементов побочной (главной) диагонали квадратной матрицы и вернуть вектор значений, полученный в результате деления элементов первой строки на найденное произведение. Создал матрицу, а как дальше не понимаю. Public Sub Zadanie3() 'Описание целочисленного массива (6 строк 6 столбцов) Dim a(1 To 6, 1 To 6) As Integer Dim s As Integer, kol As Integer s = 0 'Обнуление переменной s kol = 0 'Обнуление переменной kol For i = 1 To 6 'Цикл по строкам (от 1 до 6) For j = 1 To 6 'Цикл по столбцам (от 1 до 6) 'Ввод элементов массива с листа Excel a(i, j) = Worksheets(7).Cells(i, j)

Решение задачи: «Найти произведение элементов побочной (главной) диагонали квадратной матрицы»

textual
Листинг программы
Sub MyVector()
    Dim a(), b()
    Dim i&, j&, n&
    Dim s#
'--------------------
    ActiveSheet.UsedRange.EntireRow.Delete
    
    'вводим данные
    On Error Resume Next
    n = Int(InputBox("Введите порядок матрицы", "Тыкай пальцем!"))
    If Err Then
        Err.Clear
        MsgBox "Разуй глаза! Вводим только циферы!", vbInformation
        Exit Sub
    End If
    
    'наполняем массив случайными числами от 1 до 20
    ReDim a(1 To n, 1 To n)
    Randomize
    For i = 1 To n
        For j = 1 To n
            a(i, j) = (20 * Rnd) + 1
        Next
    Next
    Cells(1, 1).Resize(n, n) = a
    
    'считаем произведение побочной диагонали
    For i = 1 To n
        'j = n - i + 1
        j = i
        Cells(i, j).Interior.Color = vbBlue
        s = IIf(s = 0, a(i, j), s * a(i, j))
    Next
    Cells(1, n + 2) = s
    
    'собираем вектор значений (массив)
    ReDim b(1 To n)
    For j = 1 To n
        b(j) = a(1, j) / s
    Next
    Cells(n + 4, 1).Resize(1, n) = b
    
    'поздравлялка
    Beep
    MsgBox "Какой я молодец!"
End Sub

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


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

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

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