Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы прогр на VBA лекции.doc
Скачиваний:
41
Добавлен:
19.03.2016
Размер:
2.24 Mб
Скачать

5.3. Табулирование функции

Табулирование функции – это вычисление значений функции для некоторого набора значений аргумента.

Пример 5.1. Выполнить табулирование функции y=2x(x+b) для переменной x, значение которой изменяется от начального до конечного значения с постоянным положительным шагом.

Результаты вычисления вывести на рабочий лист Excel.

Таблица соответствия переменных

Обозначение

в задании

Имя

переменной

Тип

переменной

Комментарий

y

y

вещественный

Результат. Значение функции

x

x

вещественный

Текущее значение аргумента функции

b

b

вещественный

Исходное данное.

Числовая константа

Начальное значение x

XN

вещественный

Исходное данное

Конечное значение x

XK

вещественный

Исходное данное

Шаг изменения

значения x

DX

вещественный

Исходное данное(>0)

N

целый

Номер итерации вычисления

Анализ исходных данных:

Имя переменной

Недопустимое значение

Ситуация

XN, XK

XN>XK

Ввод данных

DX

0

Ввод данных

Вводимые значения переменных XN, XK и DX удобно проверять с помощью следующего логического выражения

(XK<=XN) Or (DX<=0)

Очевидно, что если это выражение истинно, то введенные данные некорректны.

Графическая схема алгоритма представлена на рис.5.2, результаты тестирования программы – на рис.5.3.

Sub Pr5_1()

Dim y As Single, x As Single, b As Single

Dim XN As Single, XK As Single, DX As Single

Dim N As Byte

'Ввод исходных данных

b = InputBox("Введи значение b")

XN = InputBox("Введи начальное значение х")

XK = InputBox("Введи конечное значение х")

DX = InputBox("Введи шаг изменения х")

'Проверка исходных данных

If (XK<=XN) Or (DX<=0) Then

Cells(1, 1) = "Введены некорректные данные:"

Cells(2, 1) = "XN=" & CStr(XN)

Cells(3, 1) = "XK=" & CStr(XK)

Cells(4, 1) = "DX=" & CStr(DX)

Else

'Выполнение расчетов и вывод результатов

Cells(1, 1) = "№"

Cells(1, 2) = "x"

Cells(1, 3) = "y"

N = 1

x = XN

While x <= XK

y = 2 * x * (x + b)

Cells(1 + N, 1) = N

Cells(1 + N, 2) = x

Cells(1 + N, 3) = y

N = N + 1

x = x + DX

Wend

Cells(1 + N + 1, 1) = "При b=" & CStr(b)

End If

End Sub

Пример 5.2. Выполнить табулирование функции

для переменной x, значение которой изменяется от начального до конечного значения с постоянным положительным шагом.

Результаты вычисления вывести в Excel. Вывести номер формулы вычисления.

Таблица соответствия переменных

Обозначение

в задании

Имя

переменной

Тип

переменной

Комментарий

y

y

вещественный

Результат. Значение функции

x

x

вещественный

Текущее значение аргумента функции

Начальное значение x

XN

вещественный

Исходное данное

Конечное значение x

XK

вещественный

Исходное данное

Шаг изменения значения x

DX

вещественный

Исходное данное

N

целый

Номер итерации вычисления

f

целый

Номер формулы вычисления

Анализ исходных данных: начальное, конечное значение переменной x и шаг ее модификации, - этого примера аналогичен анализу исходных данных примера 5.1. Однако требуется дополнительный анализ текущего значения аргумента функции, т.к. от его значения зависит выбор функциональной зависимости: по формуле 1, 2 или 3.

Графическая схема алгоритма представлена на рис.5.4, а результаты тестирования программы – на рис.5.5.

Sub Pr5_2()

Dim y As Single, x As Single

Dim XN As Single, XK As Single, DX As Single

Dim N As Byte, f As Byte

'Ввод и проверка исходных данных

XN = InputBox("Введи начальное значение х")

XK = InputBox("Введи конечное значение х")

DX = InputBox("Введи шаг изменения х")

If (XK<=XN) Or (DX<=0) Then

Cells(1, 1) = "Введены некорректные данные:"

Cells(2, 1) = "XN=" & XN: Cells(3, 1) = "XK=" & XK

Cells(4, 1) = "DX=" & DX

Else

'Выполнение расчетов и вывод результатов

Cells(1, 1) = "№": Cells(1, 2) = "x" ' Вывод шапки таблицы

Cells(1, 3) = "y": Cells(1, 4) = "Формула"

N = 1 ' Номер вычислений

For x = XN To XK Step DX ' Вычисления

If x >3 Then

y = x - 1: f = 1 ' По формуле 1

ElseIf x < -3 Then

y = x + 1: f = 2 ' По формуле 2

Else

y = x^2 : f = 3 ' По формуле 3

End If

Cells(1 + N, 1) = N: Cells(1 + N, 2) = x ' Номер вычислений и значение х

Cells(1 + N, 3) = y: Cells(1 + N, 4) = f ' Вывод y и номера формулы

N = N + 1 ' Модификация значения номера вычислений

Next

End If

End Sub

Для программирования циклических действий в приведенных выше примерах используются разные операторы цикла: в примере 5.1 – это оператор While  Wend, а в примере 5.2 – оператор For … Next.