Разветвляющимися алгоритмическими структурами называются такие структуры, в которых порядок выполнения блоков операторов определяется значениями логических выражений. Разветвляющийся алгоритм может состоять из нескольких ветвей, каждая из которых может содержать любую, сколь угодно сложную, алгоритмическую структуру. В процессе работы разветвляющегося алгоритма в первую очередь вычисляютсялогические выражения(частнымслучаем логического выражения является логическая переменная или константа). Если результат вычисления логического выражения принимает значение True (Истина), то выполняется часть алгоритма, расположенная по ветви «Да», если значение – False (Ложь), то – по ветви «Нет».
Наиболее часто используются три типа разветвлений. Стандартное разветвление содержит функциональные блоки как в ветви «Да», так и в ветви «Нет». Усеченное разветвление содержит функциональные блоки только в ветви «Да» или только в ветви «Нет». Вложенное разветвление включает одно или несколько разветвлений.
Логические выражения, в отличие от арифметических, содержат операции отношения (=, <, >, <=, >=, <>), а также еще пять логических операций, записанных далее в порядке убывания приоритета: отрицание - NOT, логическое умножение (логическое “И”) - AND, логическое сложение (логическое “ИЛИ”) - OR, исключающее “ИЛИ” - XOR, эквивалентность - EQV.
Логическое выражение может содержать либо простое, либо сложное условие. Простое условие – это два арифметических или строковых выражения, соединенных операцией отношения.
Операции отношения | Значение |
= | Равно |
< | Меньше чем |
> | Больше чем |
<= | Меньше или равно |
>= | Больше или равно |
<> | Не равно |
Сложное условие, в отличие от простого условия, содержит логические операции - NOT, AND, OR, XOR и др.:
· AND(и) – возвращает значение Истина, если все участвующие в операции выражения имеют значение Истина;
· OR(или) – возвращает значение Истина, если хотя бы одно из участвующих в операции выражений имеет значение Истина;
· XOR(исключающее или) – возвращает значение Истина, если только одно из выражений Истина;
· NOT(операция отрицания) – возвращает обратное для значения выражения значение, то есть если выражение TRUE, вернет FALSE и наоборот.
Ниже представлена таблица истинности основных логических операций.
Значения операндов | NOT x | x AND y | x OR y | x XOR y | х EQV y | |
X | Y | |||||
T | T | F | T | T | F | T |
T | F | F | F | T | T | F |
F | T | T | F | T | T | F |
F | F | T | F | F | F | T |
Рассмотрим примеры простых условий:
Логическое выражение | Результат |
5 < 10 | True, так как 5 меньше 10 |
5 > 10 | False, так как 5 не больше 10 |
7 <> 3 | True, так как 7 не равно 3 |
X > 45 | True, если X больше 45; в противном случае False |
5-1 > 1+2 | True, вначале вычисляется разность 5-1 (4), |
затем вычисляется сумма 1+2 (3) и наконец, проверяется условие 4 > 3, т.е. 4 больше 3 |
Конструкция IF … Then … Else …
Порядок выполнения конструкции следующий: если значение логического выражения LравноTrue, то выполняется оператор (или операторы), стоящий после Then, в противном случае выполняются операторы, стоящие после Else. Конструкция Else может отсутствовать (в формате она взята в квадратные скобки) – случай усеченного разветвления.
Строчная конструкция:
If < L > Then <операторы ист.условия> [ Else <операторы ложного условия> ]
Примеры: If x mod 3=0 Then TextBox4.Text= “Число кратное 3”
If x<>0 Then K=K+1: S=S+X
If x > 0Theny=SQR(x) Else y=1
Iflambda< 1Orbeta = 3Thenx=0
Блочная конструкция:
If < L > Then
<операторы для обработки истинного условия>
[ Else
< операторы для обработки ложного условия> ]
End If
Блочный оператор IF … END IF
Оператор IF блочной структуры имеет следующую конструкцию:
If < выражение_1> Then
<блок операторов_1>
[ ElseIf < выражение_2 > Then
<блок операторов_2>
ElseIf < выражение_3 > Then
<блок операторов_3>
…
ElseIf < выражение_ N > Then
< блок операторов_ N >
Else
< блок операторов ELSE>]
End If
Последовательно выполняется проверка истинности выражений. Если <выражение_1> истинно, выполняется блок <операторов_1> и переход к оператору, следующему за END IF, иначе выполняется проверка истинности <выражения_2> и т.д. Если ни одно из выражений не соответствует требованиям истинности, выполняется блок операторов ELSE, если он имеется, иначе - оператор, следующий за END IF.
Примеры:
If x>=a And x<=b Then
TextBox2.Text =“x принадлежит интервалу [a,b]”
End If
If x>xmax Then
Xmax=x
K=K+1
Exit For
End If
КонструкцияSelect …Case
Конструкция Select Case позволяет обрабатывать в программе несколько условий и аналогична блоку конструкций IF…Then…End IF. Эта конструкция состоит из анализируемого выражения и набора операторов Case на каждое возможное значение выражения. В первую очередь вычисляется значение заданного выражения. Затем полученное значение сравнивается со значениями, задаваемыми в операторах Case. Если найдено искомое значение, выполняются операторы, приписанные данному оператору Case. Если искомое значение не найдено, выполняются операторы за ключевым словом Case Else:
Select Case <анализируемое выражение>
Case <значение_1>
<операторы_1>
[ Case <значение_2>
<операторы_2>
…
Case <значение_ N >
<операторы_ N >
Case Else
<операторы_ else > ]
End Select
Примеры оформления условий в операторе Select:
Case Is >100 ' проверка на превышение значения 100; Case x^2 ' проверка на равенство значению выражения; Case -10 To 10 ' проверка на принадлежность отрезку [-10,10]; Case 0 To 5, 12 To 19, 7, -2.5, Is > Sred |
Ключевое слово Is говорит компилятору о том, что требуется сравнить переменную с выражением, указанным после ключевого слова Is. Ключевое слово То определяет диапазон значений. Запятая в списке условий обозначает логическое OR.
Задание на разработку проекта и вариант задания ИДЗ №1 (индивидуальное задание №1)
Написать программный код для вычисления выражения Y: