Составители:
Рубрика:
46 47
xn = InputBox("xn =", "Введите начало диапазона", -3)
xk = InputBox("xk =", "Введите конец диапазона", 7)
xd = InputBox("xd =", "Введите шаг изменения переменной", 0.5)
i = InputBox("i =", "Введите начало таблицы, строку", 7)
j = InputBox("j =", "Введите начало таблицы, столбец", 19)
Cells(i, j) = "X": Cells(i, j + 1) = "G1": Cells(i, j + 2) = "G2"
i = i + 1
i0 = i
ReDim x((xk - xn) / xd)
ReDim y((xk - xn) / xd)
For k = 0 To (xk - xn) / xd
x(k) = xn + k * xd
y(k) = g(x(k))
Next k
For Each n In x
Cells(i, j) = Format(n, "0.0#")
i = i + 1
Next n
i = i0
k = 0
For Each n In y
If x(k) <= 0 Then Cells(i, j + 1) = Format(n, "#0.0###") Else Cells(i, j + 2) =
Format(n, "#0.0###")
i = i + 1
k = k + 1
Next n
End Sub
Некоторые комментарии к программам:
в программах используется специально созданная пользова-
тельская функция g(x).
Процесс создания функции пользователя следующий:
находясь в Excel, включить редактор VBA, нажав ALT-F11;
включить режим вставки (insert);
выбрать Module;
в появившемся окне написать текст модуля, соответствую-
щий программируемой функции –
Function g(x)
If x <= 0 Then g = Sin(x) Else g = Exp(-x)
End Function
нажать пиктограмму – Run Sub/UserForm;
в появившемся окне Macros щелкнуть по клавише Cancel,
что обеспечивает внесение функции g(x) в библиотеку модулей
мастера функций f
x
; с этого момента функция g(x) доступна всем
пользователям мастера функций f
x
в разделах «Полный алфавит-
ный перечень» либо «Определенные пользователем».
ИМЕНА ПОЛЬЗОВАТЕЛЬСКИХ ФУНКЦИЙ НЕ ДОЛЖНЫ
СОВПАДАТЬ С АДРЕСАМИ ЯЧЕЕК ТАБЛИЦЫ EXCEL.
В программах используется функция Format(x, "0.0#”), кото-
рая обеспечивает вывод указанной переменной, в данном случае
X, в заданном формате «0.0#», в данном случае один разряд до де-
сятичной точки, два – после.
В модуле с оператором For Each … next используется динами-
ческое объявление массивов
Dim x() As Double
Dim y() As Double
с последующим уточнением мерности массивов
ReDim x((xk - xn) / xd)
ReDim y((xk - xn) / xd)
которое может размещаться в любом месте программы.
Так как оператор цикла For Each … next может оперировать
только с элементами одного множества, то для вывода спектров
значений аргумента X и функции g(x) используются два разных
оператора
For Each n In x
…
Next n
и
For Each n In y
…
Next n.
Страницы
- « первая
- ‹ предыдущая
- …
- 22
- 23
- 24
- 25
- 26
- …
- следующая ›
- последняя »