Программирование в VBA, определить строку в матрице
Формулировка задачи:
Здравствуйте, оооочень нужна ваша помощи с программированием в VBA, была бы благодарна вам за помощь
Определить строку матрицы В , модуль суммы элементов которой минимален, если В=3*А^2+ A-5*Е, где Е-единичная матрица, А-матрица размерности 5*5, элементы которой определяются по формуле
Aij={(i*j,если i=j; i+j,если i≠j)
Решение задачи: «Программирование в VBA, определить строку в матрице»
textual
Листинг программы
Sub Анннннннннннна()
Dim mass(5)
'--------------------
ActiveSheet.UsedRange.EntireRow.Delete
Cells.Clear
'Пусть вектора: Aij={(i*j,если i=j; i+j,если i<>j)и Е-единичная матрица
'[A1]= 1*1: [A1]= 2+1: [A1]= 3+1: [A1]= 4+1: [A1]= 5+1
'[A1] = 1: [B1] = 0: [C1] = 0: [D1] = 0: [E1] = 1
'[A2] = 3: [B2] = 0: [C2] = 0: [D2] = 0: [E2] = 1
'[A3] = 4: [B3] = 0: [C3] = 0: [D3] = 0: [E3] = 1
'[A4] = 5: [B4] = 0: [C4] = 0: [D4] = 0: [E4] = 1
'[A5] = 6: [B5] = 0: [C5] = 0: [D5] = 0: [E5] = 1
'дополняем: если В=3*А^2 + A-5*Е
'[B1] = 3*1^2 + 1-5*1 = 3 - 4 = 1
'[B2] = 3*3^2 + 3-5*1 = 27 - 2 = 25
'[B3] = 3*4^2 + 4-5*Е = 48 - 1 = 47
'[B4] = 3*5^2 + 5-5*Е = 75 - 0 = 75
'[B5] = 3*6^2 + 6-5*Е = 108 + 1 = 109
'тогда окончательно
[A1] = 1: [B1] = 1: [C1] = 0: [D1] = 0: [E1] = 1
[A2] = 3: [B2] = 25: [C2] = 0: [D2] = 0: [E2] = 1
[A3] = 4: [B3] = 47: [C3] = 0: [D3] = 0: [E3] = 1
[A4] = 5: [B4] = 75: [C4] = 0: [D4] = 0: [E4] = 1
[A5] = 6: [B5] = 109: [C5] = 0: [D5] = 0: [E5] = 1
'Определить строку матрицы В (описка: надо вектора В!), модуль суммы элементов которой минимален
m = 1
For i = 1 To 5
If Abs(Cells(i, 2)) <= m Then m = (Cells(i, 2)): im = i
Next
Cells(im, 2).Font.Color = vbRed 'выделяем минимум красным цветом
End Sub