End Sub

Результат выполнения программы:

Пример 16. Умножить матрицу A (n, m) на вектор V (m).

Согласно правилам математики, матрицу можно умножить на вектор только в том случае, если вектор имеет количество элементов, равное количеству столбцов матрицы. Результатом умножения матрицы на вектор является новый вектор, который содержит столько элементов, сколько было строк в матрице.

Умножение массивов происходит во внутреннем цикле. В нем подсчитывается сумма произведений каждого элемента i -й строки матрицы со всеми элементами вектора. Затем сумма присваивается i -му элементу результирующего вектора С. Перед расчетом очередной строки переменная sum должна быть обнулена во избежание накопления суммы нескольких строк.

Sub primer_16()

Dim a() As Single, b() As Integer, c() As Single

Dim n As Integer, m As Integer, i As Integer

Dim j As Integer, sum As Single

n = Cells (1, 8)

m = Cells (2, 8)

ReDim a(n, m): ReDim b(m): ReDim c(m)

'очистка рабочего листа от посторонних надписей

For i = 1 To 10 * n

For j = 1 To 10 * m

Cells (i + 2, j) = ""

Next j

Next i

'заполнение матрицы А случайными числами

'вывод матрицы в рабочий лист Excel

Cells (4, 1) = "Матрица А:"

For i = 1 To n

For j = 1 To m

a(i, j) = 50 - Int (Rnd () * 1000) / 10

Cells (i + 4, j) = a(i, j)

Next j

Next i

Cells(4, m + 2) = "Вектор B:"

'заполнение вектора В случайными целыми числами

'вывод вектора в рабочий лист Excel

For i = 1 To m

b(i) = 50 - Int (Rnd () * 1000) / 10

Cells (5, i + m + 2) = b(i)

Next i

Cells (n + 6, 1) = "Матрица C:"

'умножение матрицы на вектор

'вывод результата в рабочий лист Excel

For i = 1 To n

sum = 0

For j = 1 To m

sum = sum + a(i, j) * b(j)

Next j

c(i) = sum

Cells (i + n + 6, 1) = c(i)

Next i


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: