Реализация разветвляющихся алгоритмов
Алгоритм называется разветвляющимся, если последовательность выполнения его шагов изменяется в зависимости от выполнения некоторых условий. Условие – это логическое выражение, которое может принимать одно из двух значений: “ДА” – если условие верно (истинно, TRUE); “НЕТ” – если условие неверно (ложно, FALSE).
Условный оператор If
Схема алгоритма конструкции условного оператора If представлена на рисунке 3. Синтаксис условного оператора If в однострочной форме следующий:
If <лог. выраж.> Then P1 : P2 : ... : PN Else M1 : M2: ... MN,
где If, Then, Else, End If – зарезервированные слова;
P1, P2, PN, M1, M2, MN – операторы.
|
|
|
|
|
|
Логическое выражение |
Рисунок 3 – Схема алгоритма конструкции условного оператора If
Возможна и другая синтаксическая форма – блочная (структурная):
If <логическое выражение> Then
P1
.
PN
Else
M1
.
MN
End If
Многозначные ветвления If
Схема алгоритма конструкции оператора многозначных ветвлений If представлена на рисунке 4. Синтаксис оператора многозначных ветвлений If в блочной (структурной) форме следующий:
If <лог. выражение1> Then
P1
|
|
ElseIf <лог. выражение2> Then
P2
Else
P3
End If
где If, Then, Else, End If – зарезервированные слова;
P1, P2, P3, P4 – операторы.
Лог. выраж. 1 |
Да Нет
Лог. выраж. 2 |
P1 |
Лог. выраж. 3 |
P2 |
P3 |
P4 |
Рисунок 4 – Схема алгоритма конструкции оператора многозначных ветвлений If
Алгоритм работы такой конструкции следующий:
– если логическое выражение 1 истинно, то выполняется оператор P1 (или блок операторов), следующий за конструкцией Then, а остальные операторы пропускаются;
– если логическое выражение 1 ложно, то оператор P1 пропускается и анализируется логическое выражение 2, следующее за ElseIf. Если оно истинно, то выполняется оператор P2 (или блок операторов), следующий за Then, а остальные операторы пропускаются;
– оператор P4 (или блок операторов), следующий за последним Else, выполняется лишь в том случае, если ложны все логические выражения.
|
|
Ниже представлены примеры использования условного оператора if и многозначного ветвления, позволяющего определить возможность поступления абитуриента в учреждения образования. На первом шаге происходит ввод пользователем балла, полученного на тестировании. На втором шаге, если полученный балл более 60, приложение выдает сообщение: "Вам можно поступать в ВУЗ". На третьем шаге, если полученный балл более 20, приложение выдает сообщение: "Вам можно поступать в СУЗ". На четвертом шаге, если полученный балл более 5, приложение выдает сообщение: "Вам можно поступать в ПТУ".
Sub ball()
Dim ball As String
ball = InputBox("Введите полученный Вами балл на тестировании")
If ball >=60 Then
MsgBox ("Вам можно поступать в ВУЗ")
Else ball >=20 Then
MsgBox ("Вам можно поступать в СУЗ")
Else ball >=5 Then
MsgBox ("Вам можно поступать в ПТУ")
End If
Практическое задание
1 Запросите у пользователя ввод целого числа от 0 до 100.
2 С применением оператора многозначных ветвлений If осуществите преобразование введенной оценки по стобалльной системе в пятибалльную по шкале, предварительно созданной на листе Excel.
|
|
3 По результатам выведите сообщение с введенной оценкой по стобалльной системе и полученной оценкой по пятибалльной системе либо сообщение об ошибке.
Оператор выбора Select Case
При наличии большого количества ветвлений конструкция многозначных ветвлений If становится тяжёлой для восприятия. В подобных случаях хорошей альтернативой оператору If служит оператор выбора Select Case, который позволяет выбрать одно из нескольких возможных продолжений программы. Синтаксис и пример использования оператора Select Case представлен в таблице 3.
Таблица 3 – Синтаксис и пример использования оператора Select Case
Синтаксис оператора Select Case | Пример использования оператора Select Case |
Select Case КлючВыбора Case Is выражение оператор Case диапазон значений оператор Case диапазон значений оператор Case диапазон значений оператор Case Else оператор End Select | Select Case vozrast Case Is <=7 Msgbox ”Ты дошкольник” Case 8 to 16 Msgbox ”Ты учишься в школе” Case 17 to 30 Msgbox ”Тебе пора заняться делом” Case 31 to 60 Msgbox ”Кто не работает, тот не ест” Case Else Msgbox ”Вы заслужили отдых” End Select |
Если значение переменной vozrast меньше или равно 7, отображается сообщение ”Ты дошкольник”; если значение находится в диапазоне от 8 до 16 - сообщение ”Ты учишься в школе”; если в диапазоне от 17 до 30- сообщение ”Тебе пора заняться делом”, если в диапазоне от 31 до 60- сообщение ”Кто не работает, тот не ест”. Если значение возраста не равно ни одному из предложенных диапазонов значений, выводится сообщение ”Заслуженный отдых”.
|
|
Из представленного в таблице 4 примера видно, что код этой процедуры более прост для восприятия, чем многозначные ветвления If.
Практическое задание
Выполните предыдущее практическое задание с применением оператора выбора Select Case.
Дата добавления: 2018-05-12; просмотров: 195; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!