Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA_03_Условные операторы.doc
Скачиваний:
4
Добавлен:
15.08.2019
Размер:
1.28 Mб
Скачать

Программирование в Microsoft Excel. Лабораторная работа №2 Стр.9 из 9

Программирование в 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 вместо логических выражений.