Dim x As Single, y As Single, w As Single, n As Single
x = Val(InputBox(«Введите x»))
n = Val(InputBox(«Введите n»))
y = Exp(-2 * x) + 1
z = Log(x) / (x + 1)
If x < z ^ 2 Then w = Sqr(x * y) Else w = n * x + 2
Msgbox (“w=” & w)
В этой программе можно вывести результат в ячейку на рабочем листе Excel. Для этого вместо MsgBox следует записать
Worksheets(“Лист1”).Range(“a1”)=w
Значение w будет выведено в ячейку А1 на рабочем листе с именем Лист1.
Разветвляющиеся программы со сложными условиями
Пример 2 программы вычислений значения функции y со сложным условием.Значения n и xвводятся с клавиатуры:
.
Private Sub CommandButton1_Click()
Dim x As Single, n As Single, y As Single
'Ввод исходных данных
x = Val(InputBox("Введите x "))
n = Val(InputBox("Введите n"))
'Проверка условий и расчет значений
If x >= 0 And n >= 0 Then y = Sqr(x)
If x < 0 And n < 0 Then y = n * x + 2
MsgBox ((“y=” & y)'Вывод результата
End Sub
Пример 3 программы вычисления значения функции yс вложенным оператором If:
.
Private Sub CommandButton1_Click()
Dim x As Single, y As Single
x = Val(InputBox("Ввелите x "))
If x<0 Then y =x+5 Else If x<=5 Then y=Sqr(3*x) Else y =x^2
MsgBox (y)
End Sub
Пример 4 (использование блочного оператора If).Вычислить значения y=sin2x, w=ctgx, если х <5; y=1-sinx, w=arctgx, если х ³ 5.
х={9; 0.1; -4; 5; 12}
Private Sub CommandButton1_Click()
Dim x As Single, y As Single, z As Single
Dim w As Single, I As Integer
For i=1 to 5
x = Val(InputBox("Введите значение х"))
'Проверка условий и расчет значений
If x > 5 Then
y = Sin(x)^2
w = cos(x)/sin(x)
Else
y = 1 - Sin(x)
w = Atn(x)
End If
MsgBox (“x=” & x & “ y=” & y & “ w=” & w)
Next
End Sub
Пример 5. Вычислить значение функции n:
, x=1,7 s=5,2 значение j задать самостоятельно.
Оформим Лист2 согласно образцу (рис. 6.1). Переименуем «Лист2» в «Условный оператор», вставим расчетные формулы и введем исходные данные.
Рис. 6.1 − Образец оформления программы с разветвлением на листе Excel
Для кнопки «Расчет If» напишем следующую процедуру:
Private Sub CommandButton1_Click()
Worksheets("Условный оператор").Range("c2") = "Вычисления с разветвлением" ‘вносит текст в ячейку «С2» листа «Условный оператор»
Dim x As Single, s As Single, v As Single, j As Single
x=Val(InputBox(“Введите значение х”))
s=Val(InputBox(“Введите значение s”))
j = Worksheets("Условный оператор ").Range("i19")
If x * j < 2 * s Then v = Cos(x * j) ^ 2 Else If x * j >= 2 * s And _
x * j <= 3 * s Then v = 2 * Tan(j * x) Else v = 5 - Exp(x / 2)
MsgBox ("Значение v=" & Format(v, "##.####"))
End Sub
Для проверки результата вычисления надо ввести в ячейку D23 формулу:
=ЕСЛИ(D19*I19<2*F19;COS(I19*D19)*COS(I19*D19);ЕСЛИ(И(D19*I19>=2*F19;D19*I19<=3*F19);2*TAN(I19*D19);5-EXP(D19:D19/2)))
Результат вычислений, полученный с помощью формул Excel и процедуры VBA должен совпасть.
Содержание заданий
1. Выполнить приведенные выше примеры программ с разветвлением.
2. Составить программу по условиям, приведенным в табл. 6.1.
Таблица 6.1
№ | Формула для вычислений | Исходные данные |