- •Программирование в Microsoft Excel Лабораторная работа №3 Условные конструкции vba
- •1.1Логические переменные и выражения
- •3.2. Условный оператор
- •1.2 Оператор выбора
- •Выражение1 To Выражение2, где ключевое слово То означает диапазон значений от Выражение1 до Выражение2.
- •3.4. Оператор Goto
- •3.5. Операторы On Error, Resume, End
Программирование
в Microsoft Excel. Лабораторная работа №2
Стр.
Программирование в Microsoft Excel Лабораторная работа №3 Условные конструкции vba
1.1Логические переменные и выражения
Переменной логического типа можно присваивать только значения true (истина) или false (ложь). Логические выражения составляются при помощи операций отношения, логических операций и операндов, которыми могут являться переменные, математические и строковые выражения, а также элементы массивов и функции, которые будут рассмотрены в следующих лабораторных. Простое логическое выражение имеет следующий вид:
Операнд1 Операция отношения Операнд2
Операции отношения |
|
< > <= >= <> = |
Меньше Больше меньше или равно больше или равно не равно равно |
Например, оператор
Lg = 5>3
присвоит логической переменной Lg значение true. В данном случае 5 и 3 – операнды.
Более сложные логические выражения создаются при помощи логических операций и круглых скобок.
Логические операции |
|
Выражение1 And Выражение2
Выражение1 Or Выражение2
Выражение1 Xor Выражение2
Not Выражение |
Логическое "И" (умножение). Операция возвращает true("истина"), если оба выражения возвращают true. Логическое "или" (сложение). Операция возвращает true("истина"), если хотя бы одно выражение возвращают true. Исключающее "или". Операция возвращает true("истина") тогда и только тогда, когда истинно только одно выражение. Логическое "нет" (отрицание). Операция возвращает значение, противоположное значению выражения. |
Например, необходимо присвоить логической переменной значение true, если больше или равно нулю и false, если меньше нуля:
Function pp()
Dim Lg As Boolean
Dim a As Single, b As Single, c As Single, D As Single
a = InputBox("Введите a:")
b = InputBox("Введите b:")
c = InputBox("Введите c:")
D = b ^ 2 - 4 * a * c
Lg = D > 0 Or D = 0 ' возможен другой вариант: Lg = Not D < 0
MsgBox "Lg=" & Lg ' возможен другой вариант: MsgBox
' "Lg=" & (D > 0 Or D = 0) -
' логическое выражение прямо в операторе MsgBox
End Function
3.2. Условный оператор
Условный оператор задаёт выполнение определённых групп операторов в зависимости от значения условия. Общий вид оператора имеет один из двух следующих видов:
1. В строку
If Логическое выражение then ГруппаОператоров1 [ else ГруппаОператоров2 ]
Здесь оператор записывается в одну строку (хотя можно при помощи знака переноса разбивать его на отдельные строки).
2. В блочном виде
If условие then
ГруппаОператоров1
[Else
ГруппаОператоров2]
End If
В этом случае для обозначения окончания оператора обязательно используется ключевые слова End If.
Если Логическое выражение принимает значение True (истина), то выполняется ГруппаОператоров1, если False, то выполняется ГруппаОператоров2. Ветвь else является необязательной. Например, введём с клавиатуры переменную k целого типа. Если она меньше 0, выведем окно с сообщением об этом:
Sub JJ()
Dim k As Integer
k = InputBox("Введите К:")
If k > 0 Then MsgBox "K>0", , "Значение К"
End Sub
Например, программа на VBA для функции
может быть в одном из двух следующих видов:
в блочном виде
Function Y1() ‘1
x=InputBox(“Введите x:”)
If x < 0.5 Then
Y = (1 + Abs(0.2 - 1)) / (1 + x + x^2)
Else
Y = x ^ (1/3)
End If
MsgBox “Y=” & Y
End Funсtion
в строку
Function Y2() ‘2
x = InputBox("Введите x:")
If x < 0.5 Then Y = (1 + Abs(0.2 - 1)) / (1 + x + x ^ 2) _
Else Y = x ^ (1 / 3)
MsgBox "Y=" & Y
End Function
В группе выполняемых операторов могут быть любые выполняемые операторы VBA, кроме операторов описания переменных. Например, в следующем примере в качестве выполняемого оператора используется оператор If:
Function Y4()
Dim x As Single, a As Integer
x = InputBox("Введите x:")
a = InputBox("Введите a")
If a >= 5 Then
If x < 0.5 Then
Y = (1 + Abs(0.2 - 1)) / (1 + x + x ^ 2)
Else
Y = x ^ (1 / 3)
End If
Else
Y = 0
End If
MsgBox "Y=" & Y
End Function
В рассмотренном примере если а<0, то Y=0, иначе, если x<0.5, то , а если x>=0.5, то
В случае если количество условий больше одного, то применяется форма условного оператора с дополнительными условиями:
If условие1 Then
ГруппаОператоров1
ElseIf условие2 Then
ГруппаОператоров2
ElseIf условие3 Then
ГруппаОператоров3
Else
ГруппаОператоровN
End If
которая включает в себя несколько дополнительных условий после ключевых слов ElseIf и групп операторов, а также группу операторов после ключевого слова Else, которая выполнится, если не будет истинным ни одно из предыдущих условий. Например, функция с тремя условиями
может быть представлена в программе следующим образом:
Function Z()
Dim x As Single, F As Single
x = InputBox("Введите x:")
y = InputBox("Введите y:")
If x < 0.2 Then
F = y + Log(1 + x)
ElseIf x <= 0.8 Then
F = (1 + x ^ (1 / 2)) / (1 + y)
Else
F = 2 * Exp(-2 * x) / y
End If
MsgBox "F ( " & x & " , " & y & " ) = " & F
End Function
Например: вычислить А в зависимости от следующих условий:
А = Sin(x)^2+Cos(x)^2, если C>0, K=1, F=3 или F=5
A = Sin(x)^3+Cos(x)^3, если C<=0, K=2, F=2 или F=4
Условный оператор для решения этой задачи будет иметь следующий вид:
If C>0 AND K=1 AND (F=3 OR F=5) Then
А = Sin(x)^2+Cos(x)^2
ElseIf K=2 AND (F=2 OR F=4) Then
A = Sin(x)^3+Cos(x)^3
EndIf
Задание 3.1:
Для рисунка, указанного вам преподавателем, сделайте программу, которая по координатам точки x и y, введённым Вами с клавиатуры, определит, в какую область попала точка.
Задание 3.2:
Переделайте программу так, чтобы значения логических выражений, проверяющих, где находится точка, присваивались логическим переменным, которые нужно вставить в оператор If вместо логических выражений.