Найти произведение элементов побочной (главной) диагонали квадратной матрицы - 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
Листинг программы
  1. Sub MyVector()
  2.     Dim a(), b()
  3.     Dim i&, j&, n&
  4.     Dim s#
  5. '--------------------
  6.    ActiveSheet.UsedRange.EntireRow.Delete
  7.    
  8.     'вводим данные
  9.    On Error Resume Next
  10.     n = Int(InputBox("Введите порядок матрицы", "Тыкай пальцем!"))
  11.     If Err Then
  12.         Err.Clear
  13.         MsgBox "Разуй глаза! Вводим только циферы!", vbInformation
  14.         Exit Sub
  15.     End If
  16.    
  17.     'наполняем массив случайными числами от 1 до 20
  18.    ReDim a(1 To n, 1 To n)
  19.     Randomize
  20.     For i = 1 To n
  21.         For j = 1 To n
  22.             a(i, j) = (20 * Rnd) + 1
  23.         Next
  24.     Next
  25.     Cells(1, 1).Resize(n, n) = a
  26.    
  27.     'считаем произведение побочной диагонали
  28.    For i = 1 To n
  29.         'j = n - i + 1
  30.        j = i
  31.         Cells(i, j).Interior.Color = vbBlue
  32.         s = IIf(s = 0, a(i, j), s * a(i, j))
  33.     Next
  34.     Cells(1, n + 2) = s
  35.    
  36.     'собираем вектор значений (массив)
  37.    ReDim b(1 To n)
  38.     For j = 1 To n
  39.         b(j) = a(1, j) / s
  40.     Next
  41.     Cells(n + 4, 1).Resize(1, n) = b
  42.    
  43.     'поздравлялка
  44.    Beep
  45.     MsgBox "Какой я молодец!"
  46. End Sub

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


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

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

12   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы