- •Лабораторная работа №3 программирование задач с разветвляющимся алгоритмом
- •1. Порядок выполнения работы
- •2. Логические конструкции
- •2.1. Развилка
- •2.2. Обход
- •Виды обходов и их программная реализация
- •2.3. Многозначное ветвление
- •2.3. Разветвленная структура со сложным вычислительным процессом
- •2.4. Логические функции
- •3. Пример решения задач с разветвляющимся алгоритмом
- •3.1. Пример использования оператора If…Then…Else
- •3.2. Пример использования оператора ElseIf…Then…Else
- •3.3. Пример использования оператора Select Case…
- •4. Содержание отчета
- •5. Контрольные вопросы
2.3. Многозначное ветвление
Многозначное ветвление (рис. 6) – структура, позволяющая, в зависимости от признака I, выполнить одну ветвь из множества предложенных.

Рис. 6. Многозначное ветвление
Оператор Select Case целесообразно использовать, когда приходится проверять одно и то же значение, сравнивая с различными выражениями (условиями).
Синтаксис этого оператора следующий:
Select Case значение
Case условие 1
ветвь1
Case условие 2
ветвь 2
.
.
.
Case условие N
ветвь N
[Case Else]
[ветвь N+1]
End Select.
Параметры, взятые в квадратные скобки, являются необязательными и используются по требованию условия задачи. Параметр «значение» может быть любого числового и строкового типа и в качестве него можно использовать как определенную переменную, так и значение некоторого выражения.
Рассмотрим принцип работы оператора Select Case. В случае если в качестве параметра «значение» указано выражение, сначала оно вычисляется, а затем полученный результат последовательно сравнивается с каждым из условий в операторе Case, начиная с первого условия. Если «значение» удовлетворяет условию, тогда будут выполняться операторы, соответствующей ветви, после чего выполнение программы продолжится, начиная с оператора, следующего за оператором End Select. Если «значение» не удовлетворяет ни одному из условий, начиная с «условие 1» и заканчивая «условие N», будут выполнены операторы, следующие за ключевым словом Case Else.
В операторе Case, в качестве условия, можно использовать как, проверку с одной переменной, так и проверку на вхождение в определенный ряд. В первом случае необходимо использовать синтаксис:
Case Is «знак проверки» выражение.
Например: Case Is=5 (Case 5), Case Is<15, Case Is>=a+b и т.п..
Во втором случае:
Case начальное значение ряда To конечное значение ряда.
Например: Case 1 To 35 (числовой ряд), Case “A” To “F” (символьный ряд).
Кроме того, в одном операторе Case может быть указано несколько условий, которые в этом случае разделяются запятыми.
Например: Case 1 To 10, 15, Is>30.
2.3. Разветвленная структура со сложным вычислительным процессом
Оператор Elseif…Then…Else в сочетании с «традиционным» условным оператором идеально подходит для принятия решения на основе проверки некоторого числа разных условий. Разветвленная структура со сложным вычислительным процессом приведена на рис. 7.
Рис. 7. Сложная
разветвленная структура
Программно реализовать данную структуру можно следующим образом:
If условие1 Then
ветвь1
Elseif условие2 Then
ветвь2
.
.
.
Elseif условиеN Then
ветвьN
[Else]
[ветвьN+1]
End if.
Параметры, взятые в квадратные скобки, могут и отсутствовать.
2.4. Логические функции
При решении задач разветвляющейся структуры встречаются простые и сложные условия. К простым условиям относятся условия, в выражении которых используется лишь один знак отношений (=, <, >, <>, <=, >=). Например: X>0, X<-10, X<>0 и т.п.. Сложные же условия, представляют собой савокупность простых условий, объединенных логическими функциями. К таким функциям, используемым в лабораторной работе, можно отнести:
логическое сложение – фунция «ИЛИ» («OR»);
логическое умножение – функция «И» («AND»).
Сложное условие, объединенное функцией «ИЛИ», будет истинно, если истинно хотя бы одно из простых условий входящее в его состав. Пример использования функции «ИЛИ»:
If Z>0 Or Z=-5 Or Z=-10 Then
MsgBox(“Параметр удовлетворяет требованиям”)
Else
MsgBox(“Параметр не удовлетворяет требованиям”)
End If.
В свою очередь, сложное условие, связанное функцией «И», будет истинно только в том случае, если истинны все и только все, входящие в его состав, простые условия. Пример использования функции «И»:
If Z>0 AND Y>0 Or X>0 Then
MsgBox(“Все параметры системы в норме”)
Else
MsgBox(“Система дала СБОЙ!”)
End If.
Необходимо также отметить несколько аспектов использования логических функций и работы с условиями в целом. Во-первых, в сложном условии могут быть совместно использованы обе логические функции, в любом сочетании. Во-вторых, при формировании условия в VBA, в отличии от некоторых других языков программирования, допускается использование привычной математической записи неравенств. Иными словами, допустим, что необходимо выполнить проверку на попадание переменной X в диапазон от -5 до 5 (-5<Х<5). Для этого можно использовать функцию «И», тогда условие проверки примет вид: X>-5 AND X<5, а можно использовать равносильную запись: -5<Х<5.
