Программа табулирования в V ВА



Функции, разветвляющейся больше, чем один раз

Private Sub CommandButton1_Click()

Dim i As Integer

Dim j As Integer

Dim x As Single

Dim xn As Single

Dim xk As Single

Dim dx As Single

xn = InputBox (" Xn = ", "Ввод начального значения x ", -3, 8000, 2000)

xk = InputBox (" Xk = ", "Ввод конечного значения x ", 7, 8000, 1000)

dx = InputBox (" dX = ", "Ввод значения шага x ", 0.5, 8000, 2000)

i = InputBox (" i = ", "Ввод значения начала таблицы, строка i ", 5, 8000, 1000)

j = InputBox (" j = ", "Ввод значения начала таблицы, столбец j ", 6, 8000, 2000)

x = xn: Cells(i, j) = "X(vba)": Cells(i, j + 1) = "Z1(vba)": Cells(i, j + 2) = "Z2(vba)": Cells(i, j + 3) = "Z3(vba)"

10 Cells(i + 1, j) = x

If x <= 0 Then

z = Sin(x)

Cells(i + 1, j + 1) = z

End If

If (x > 0) And (x <= 3.5) Then

z = Exp(-x)

Cells(i + 1, j + 2) = z

End If

If x > 3.5 Then

z = Application.Ln(x)

Cells(i + 1, j + 3) = z

End If

x = x + dx

i = i + 1

If x > xk Then GoTo 20 Else GoTo 10

End Sub

 

Некоторые комментарии к программе:

 

    – Применены три неполных условных оператора, по количеству условий задания. Так как у каждого оператора в частях Then находятся по два оператора, то по грамматическим требованиям необходим переход на другую строку и завершается каждый оператор End If ;

    – Можно было воспользоваться вложенными условными операторами, но очень часто возникают логические ошибки при оценке уровня вложенности после части ELSE. Считается целесообразным при решении подобных задач использование грамматической конструкции, в которой количество неполных условных операторов соответствует числу логических условий решаемой задачи;

    – В программе используется сложное логическое выражение

 

 ( x > 0) And ( x <= 3.5),

 

состоящее из двух простых, объединенных логической функцией And .

 


ТАБУЛИРОВАНИЕ ДВУХ ФУНКЦИЙ

Лабораторная работа “Табулирование двух функций” отличается от лабораторной работы “Табулирование функции” только числом функций, построенных на одном графике. Поэтому ее целесообразно выполнять на базе лабораторной работы “Табулирование функции”.

 

СКОПИРОВАТЬ ВЕСЬ ЛИСТ С ЛАБОРАТОРНОЙ РАБОТОЙ ТАБУЛИРОВАНИЕ ФУНКЦИИ НА ЧИСТЫЙ ЛИСТ И НА НЕМ ПРОИЗВЕСТИ НЕОБХОДИМЫЕ ИЗМЕНЕНИЯ.

Лабораторная работа “Табулирование двух функций” также состоит из двух частей:

–  табулирование функции в Excel;

–  табулирование функции в VBA.

Критерием правильности является совпадение полученных таблиц.

Поэтому, в соответствии с условием задачи спектр значений функции Y ( x ) необходимо заменить на спектр значений функции V ( x ), диапазон B 6 : B 32 рис. 4.1, и рядом, в диапазоне С6:С32 сформировать спектр значений функции W(x), рис. 4.1.

Именно эти два столбца ПОЛНОСТЬЮ используются для построения графика.

ПРОГРАММНЫЙ МОДУЛЬ VBA ИЗ ЛАБОРАТОРНОЙ РАБОТЫ “ТАБУЛИРОВАНИЕ ФУНКЦИИ” СКОПИРОВАТЬ В МОДУЛЬ ОБЪЕКТА CommandButton ЛАБОРАТОРНОЙ РАБОТЫ “ТАБУЛИРОВАНИЕ ДВУХ ФУНКЦИЙ”.

Внести соответствующие изменения.

Программа табулирования двух функций в V ВА

 

Private Sub CommandButton1_Click()

Dim i As Integer

Dim j As Integer

Dim x As Single

Dim xn As Single

Dim xk As Single

Dim dx As Single

e = 0.001

xn = InputBox (" Xn = ", "Ввод начального значения x ", -1, 8000, 2000)

xk = InputBox (" Xk = ", "Ввод конечного значения x ", 0.3, 8000, 1000)

dx = InputBox (" dX = ", "Ввод значения шага x ", 0.05, 8000, 2000)


Рис. 4.1


i = InputBox (" i = ", "Ввод значения начала таблицы, строка i ", 5, 8000, 1000)

j = InputBox (" j = ", "Ввод значения начала таблицы, столбец j ", 4, 8000, 2000)

x = xn: Cells(i, j) = "X(vba)": Cells(i, j + 1) = "V(vba)": Cells(i, j + 2) = "W(vba)"

10 Cells(i + 1, j) = x

v = Sin(x ^ 2) + Cos(Application.WorksheetFunction.Pi * x) ^ 3

Cells(i + 1, j + 1) = v

w = Cos(x ^ 3) ^ 2 - Sin(Application.WorksheetFunction.Pi * x ^ 2)

Cells(i + 1, j + 2) = w

x = x + dx

i = i + 1

If x <= xk + e Then GoTo 10

End Sub

Некоторые комментарии к программе:

 

    – В программе в логическом выражении x <= xk + e используется цифровая константа e = 0.001, применение которой обеспечивает получение спектра значений X от -1 до 0.3 включительно;

    – В тексте программы встречаются обращения к Приложению, например, Cos ( Application . WorksheetFunction . Pi ), которое означает, что, чтобы вызвать функцию p последовательно обращаютсясначала к приложению Application , затем к функциям рабочего листа WorksheetFunction и, наконец, к конкретной функции Pi ;

    – Чтобы не допустить ошибки в этой, достаточно сложной, грамматической конструкции, следует воспользоваться возможностями дружественного интерфейса VBA, для чего в тексте программы написать Cos ( Application и после постановки точки появится подменю разделов Приложения, рис. 4.2;

Рис. 4.2

 

После точки следует добавить букву W и тогда в подменю появится раздел WorksheetFunction , рис. 4.3.

 

 

Рис. 4.3.

 

Выбрать раздел WorksheetFunction , после чего поставить точку и в появившемся подменю списка функций рабочего листа, выбрать функцию Pi , рис. 4.4.

 

 

Рис. 4.4.

 

Продолжить запись арифметического выражения Cos ( Application . WorksheetFunction . Pi в соответсвии с выполняемым заданием.

 


 

ПОСТРОЕНИЕ ПОВЕРХНОСТИ

 

Лабораторная работа “Построение поверхности” также состоит из двух частей:

–  табулирование функции поверхности в Excel;

–  табулирование функции поверхности в VBA.

Критерием правильности является совпадение полученных таблиц.

Отличием в табулировании функции от двух параметров Z ( x , y ) является то, спектр значений аргумента X формируется в столбце в диапазоне A 6: A 16, а спектр значений аргумента Y формируется в строке в диапазоне B 5: L 5, рис. 5.1.

Величина начального значения аргумента X устанавливается в ячейке A 6 и выбирается в соответствии с выполняемым заданием, в данном случае A 6=0.

Величина начального значения аргумента Y устанавливается в ячейке B 5 и также выбирается в соответствии с выполняемым заданием, в данном случае B 5=0.

Значение ячейки A 7 определяется как результат вычисления арифметического выражения A 7 = A 6 + $ B $1, где $ B $1 – шаг изменения аргумента X,который выбирается произвольно.

Значения диапазона A 8: A 16 получаются в результате копирования ячейки A 7 по указанному диапазону.

Значение ячейки С5 определяется как результат вычисления арифметического выражения С5 = B 5 + $ B $2, где $ B $2 – шаг изменения аргумента Y,который выбирается произвольно.

Значения диапазона D 5: L 5 получаются в результате копирования ячейки C 5 по указанному диапазону.

Ключевым моментом в формировании таблицы значений функции Z ( x , y ) является запись в ячейку B 6 арифметического выражения, соответствующего функции поверхности выполняемого задания Z ( x , y ) = 2 x 2 + 3 y 2.

В итоге в ячейку B 6 должно быть записано арифметическое выражение

 

=2*$A6^2+3*B$5^2,

 в котором используется абсолютно-относительная адресация.

Затем арифметическое выражение ячейки B 6 копируется в диапазон B 6: L 16.

В результате любая ячейка из диапазона B 6: L 16 в качестве аргумента X использует соответствующую (относительная адресация) ячейку столбца A диапазона A 6: A 16 (абсолютная адресация), а в качестве аргумента Y использует соответствующую (относительная адресация) ячейку строки 5 диапазона B 5: L 5 (абсолютная адресация).

Диапазон B 6: L 16 используется для построения графика поверхности.

 


Рис. 5.1.


Дата добавления: 2019-03-09; просмотров: 279; Мы поможем в написании вашей работы!






Мы поможем в написании ваших работ!