Тема: Программирование макросов для функций, параметрами и/или значениями которых являются массивы.
Цель работы: Научиться использовать макросы Excel для упрощения вычислений с матрицами и векторами.
Форма отчета: Выполнение индивидуального зачетного задания.
Пример выполнения лабораторной работы
Пример 3.Вычислить таблицу значений вектор-функции U(t) = U(x, y, z), где x = x(t) = t 2, y = y(t) = sin t, z = z(t) = cos t,
для значений переменной t = 0; 0,1; …, 1.
Решение с помощью макроса. Создадим макрос-функцию U(t), которая вычисляет значение данной вектор-функции.
1) Выполним команду меню «Сервис — Макрос — Редактор Visual Basic». Откроется окно «Microsoft Visual Basic».
2) Выполним команду меню «Insert — Module» и введём текст следующей программы-функции
Option Base 1 ‘ Нижнее значение индекса в массивах равно 1
Function U(t)
Dim uu(3) ‘ Описание вектора из трех элементов
x = t ^ 2: uu(1) = x ‘ вычисление компонент вектор-функции
y = Sin(t): uu(2) = y
z = Cos(t): uu(3) = z
U = uu ‘ присваивание имени U функции вектора uu
End Function
3) Перейдем из редактора Visual Basic в Excel и введем в ячейках A1:D1 обозначения, как показано в табл. 4.
Таблица 4
A
B
C
D
t
x
y
z
0,1
0,01
0,099833
0,2
0,04
0,198669
0,3
0,09
0,29552
0,4
0,16
0,389418
0,5
0,25
0,479426
0,6
0,36
0,564642
0,7
0,49
0,644218
0,8
0,64
0,717356
0,9
0,81
0,783327
0,841471
Введем в ячейки A2, A3 значения 0 и 0,1. Выделим ячейки A2:A3 и маркером заполнения протянем вниз до A12.
Выделим ячейки B2:D2, введем формулу =U(A2) и удерживая нажатыми клавиши Ctrl и Shift нажмем Enter. В ячейках B2:D2 появятся числовые значения.
Выделим ячейки B2:D2 и маркером заполнения протянем вниз до строки B12:D12.
Пример 4.Вычислить суммы элементов строк матрицы, содержащей 4 строки и 3 столбца (табл. 5).
Таблица 5
-1
Решение с помощью встроенных функций Excel.Создадим файл программы Excel.
Запишем элементы данной матрицы в диапазоне A1:C4 (табл. 6).
В ячейку D1 введем формулу =СУММ(A1:C1).
Выделим ячейку D1 и протянем маркером заполнения вниз до ячейки D4. В столбце D1:D4 получим суммы элементов соответствующих строк матрицы.
Решение с помощью макроса. Создадим макрос-функцию Sum_str(x), которая для заданной матрицы x, содержащей M строк и N столбцов, вычисляет вектор-столбец из M элементов, содержащий суммы элементов соответствующих строк матрицы.
1) Выполним команду меню «Сервис — Макрос — Редактор Visual Basic». Откроется окно «Microsoft Visual Basic».
2) Выполним команду меню «Insert — Module» и введём текст следующей программы-функции
Option Base 1
Function Sum_str(x)
Dim y()
Dim M As Integer, N As Integer
M = x.Rows.Count
N = x.Columns.Count
ReDim y(M)
For i = 1 To M:
y(i) = 0: For j = 1 To N: y(i) = y(i) + x(i, j): Next j
Next i
Sum_str = Application.Transpose(y)
End Function
3) Выделим диапазон ячеек E1:E4, введем формулу =Sum_str(A1:C4) и удерживая нажатыми клавиши Ctrl и Shift нажмем Enter. В ячейках E1:E4 появятся числовые значения, совпадающие со значениями в D1:D4.