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