Найти произведение элементов побочной (главной) диагонали квадратной матрицы - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д