Синтаксис
If <Условие 1> Then <Инструкции 1> [ElseIf <Условие 2> Then <Инструкции 2> ... [ElseIf <Условие n> Then <Инструкции n> [Else <Инструкции>] End If
Схема алгоритма
Рис. 4. Схема алгоритма блока «If Then ElseIf … Else End If»
Текст программы
Sub Triangles()
Dim a, b, c As Single
a = Val(InputBox("Введите сторону 1"))
b = Val(InputBox("Введите сторону 2"))
c = Val(InputBox("Введите сторону 3"))
If ((a + b) <= c) Or ((a + c) <= b) Or ((b + c) <= a) Then
MsgBox ("Треугольника не существует")
ElseIf ((a = b) And (b = c)) Then
MsgBox ("Треугольник равносторонний")
ElseIf ((a = b) Or (b = c) Or (a = c)) Then
MsgBox ("Треугольник равнобедренный")
Else
MsgBox ("Треугольник обыкновенный")
End If
End Sub
2.2Оператор выбора Select Case
В случае, когда проверяемое выражение может удовлетворять одному из нескольких условий, и в зависимости от того, какому условию оно удовлетворяет, должна выполняться соответствующая ветвь алгоритма, применяется оператор выбора «Select Case».
Синтаксис
Select Case выражение Case СписокВыражений-1: <инструкции- 1> … [Case СписокВыражений-n: <инструкции-n>] [Case Else: <инструкции else>] End Select
Аргументы
Выражение – проверяемое выражение, в зависимости от значения которого выполняется та или иная ветвь алгоритма
СписокВыражений – одно или несколько (через запятую) условий типа список, диапазон (50 To 100) или отношение (IS >10), которым должно удовлетворять выражение.
инструкции - одна или несколько инструкций, выполняемых в том случае, если выражение удовлетворяет любому компоненту условия СписокВыражений
инструкции else (необязательная часть) - одна или несколько инструкций, выполняемых в том случае, если выражение не совпадает ни с одним из предложений Case
Схема алгоритма
Рис. 5. Схема алгоритма оператора Select Case
Пример: в зависимости от введённого времени выдать одно из сообщений: Утро, День, Вечер, Ночь, Полночь, Полдень.
Схема алгоритма
Рис. 6. Схема алгоритма программы определения времени суток
Текст программы
Sub Time()
Dim T As Date
T = TimeValue(InputBox("Введите время чч:мм"))
Select Case T
Case #12:00:00 PM#:
MsgBox ("Полдень")
Case #12:00:00 AM#:
MsgBox ("Полночь")
Case #12:00:01 AM# To #6:00:00 AM#:
MsgBox ("Ночь")
Case #6:00:01 AM# To #11:59:59 AM#:
MsgBox ("Утро")
Case #12:00:01 PM# To #6:00:00 PM#:
MsgBox ("День")
Case Else: MsgBox ("Вечер")
End Select
End Sub
2.3Функции выбора
2.3.1Функция If
Функция if возвращает одну из двух альтернатив.
Синтаксис
If(expr, truepart, falsepart)
Аргументы
expr — проверяемое выражение
truepart — значение или выражение, возвращаемое, если ехрr имеет значение True
falsepart — значение или выражение, возвращаемое, если ехрr имеет значение False
Пример
Если значение переменной «ОценкаЦифрой» равно 5, то переменной «Оценка» присваивается строковая константа «Отлично». В противном случае ей присваивается значение «Не отлично»:
Оценка = If (ОценкаЦифрой = 5, "Отлично", "Не отлично")
2.3.2Функция Choose
Функция Choose возвращает значение, выбранное из списка аргументов.
Синтаксис
Choose (индекс, вариант-1[, вариант-2, ... [, вариант-n] ])
Аргументы
индекс — числовое выражение или поле, значением которого является число, лежащее между 1 и числом элементов в списке
вариант — выражение типа Variant, содержащее один из элементов списка
Действие функции Choose: если индекс равняется 1 , возвращается первый элемент списка, если индекс равняется 2, возвращается второй элемент списка и т. д. Функцию choose можно использовать для выбора одного из возможных значений, представленных в виде списка.
Пример
Если аргумент «Выбор» принимает значения 1, 2 или 3, то переменной «РезультатВыбор» присваивается значение “один”, “два” или “три” соответственно.
РезультатВыбор = Choose (Выбор, "один", "два", "три")
2.3.3Функция Switch
Функция Switch возвращает значение, соответствующее первому истинному выражению в списке.
Синтаксис
Switch ( выражение- 1, значение-1, выражение-2, значение-2 ... [, выражение-n, значение-n] ] )
Пример
Переменной OutStr в зависимости от содержимого переменной S присваивается словесное описание оценки.
OutStr = Switch(S = 0, "Не аттестован", S = 1, "Плохо", _
S = 2, "Неудовлетворительно", S = 3, "Удовлетворительно", _
S = 4, "Хорошо", S = 5, "Отлично", _
((S > 5) Or (S < 0)), "Вообще не оценка")
3Задание
Разработать алгоритм и программу на VBA по варианту.
Ввести программу в редактор VBA и добиться её выполнения.
Подготовить отчёт.
4Содержание отчёта
Титульный лист.
Индивидуальное задание.
Схема алгоритма.
Текст программы с комментариями.
Ответы на контрольные вопросы.
5Контрольные вопросы
В каких случаях допускается применение оператора безусловного перехода?
Для чего служит базовая алгоритмическая структура «Ветвление»?
Чем «блок If» отличается от «Оператора If»?
В чём преимущество блока «If .. Then .. ElseIf .. Else» Перед «блоком If»?
В каких случаях целесообразно использование оператора выбора?
Каким операторам соответствует каждая из функций выбора?
Нарисуйте схемы алгоритмов каждой из функций выбора?
В каких случаях целесообразно использование функций выбора вместо соответствующих операторов?
