Программирование в 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

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

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