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