Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Средства программирования разветвляющихся структур





Разветвляющимися алгоритмическими струк­турами называются такие структуры, в которых порядок выполнения блоков операторов определяется значе­ниями логических выражений. Разветвляющийся алгоритм может состоять из нескольких ветвей, каждая из которых может содержать любую, сколь угодно сложную, алгоритми­ческую структуру. В процессе работы разветвляющегося алгоритма в первую очередь вычисляются логиче­ские выражения L (частным случаем логического выражения является логическая переменная или константа). Если результат вычисления логического выражения принимает значение True (Истина), то выполняется часть алгоритма, расположенная по ветви «Да», если значение – False (Ложь), то – по ветви Нет».

В VBопределен логический тип данных Boolean.Например, описание переменной L:

Dim L As Boolean

 

Такая переменная L может иметь одно из двух значений: True или False.Причем при преобразовании числовых типов в логический тип значение 0 преобразуется в False,а все другие значения в 1. Например,

 

Dim f As Double = 6.8 L = CBool(f)'в результате L = True f=0 L = CBool(f)'в результате L = False

 

Логическое выражение может быть простым или сложным.

Простое логическое выражение – это два арифметических или строковых выражения, связанных операцией отношения (сравнения).

Операции отношения (сравнения) приведены в табл. 4.4.2-1.

 

Таблица 4.4.2-1

Операции отношения Значение
= Равно
< Меньше, чем
> Больше, чем
<= Меньше или равно
>= Больше или равно
<> Не равно

 

В таблице 4.4.2-2 приведены простые логических выражения.

Таблица 4.4.2-2

Логическое выражение Результат
5 < 10 True, так как 5 меньше 10
5 > 10 False,так как 5 не больше 10
7 <> 3 True, так как 7 не равно 3
X > 45 True, если X больше 45; в противном случае False
TextBox1.Text="Stop" True, если в первом текстовом поле содержится слово "Stop"; в противном случае False
5 - 1 > 1 + 2 True,так как первой вычисляется разность 5-1 (4), затем вычисляется сумма 1+2 (3) и наконец, проверяется условие 4 > 3, т.е. 4 больше 3
X >= y + z True,если X больше или равно сумме значений переменных y и z; в противном случае False

 



В отличие от арифметических операций, все операции сравнения имеют одинаковый приоритет, т.е., при наличии в логическом выражении нескольких операций сравнения проверяться условия будут в порядке их записи слева направо.

Кроме того, приоритет операций отношения ниже, чем приоритет арифметических операций, поэтому операции сравнения в табл. 4.4.2-3 выполняются после арифметических операций.

Например, выражение Not 7 < 9 всегда прини­мает значение False, а
4 > 3 And 7 < 9принимает значение True.

В табл.4.4.2-4 приведено описание логических операций (таблица истинности). Здесь T (True) «Истина», а F (False) – «Ложь».

 

Разветвляющиеся алгоритмические структуры (рис. В.3-5–В.3-8) в языках программирования реализуются операторами условного перехода.

В VBдля реализации разветвляющихся алгоритмических структур используются три типа операторов: однострочный If, блочный If и оператор выбора Select Case.

 

Таблица 4.4.2-3

Логические операции Значение
Not Преобразует значение True в False и наоборотFalse в True
And Для того чтобы сложное условие было истинным, истинными должны быть все входящие в его состав условия
Or Сложное условие истинно, если истинно хотя бы одно из составляющих его условий
Xor Для того чтобы сложное условие было истинным, истинным должно быть только одно из его составляющих

Таблица 4.4.2-4

Значения операндов Not x   X And y   X Or y   x Xor y  
X Y
T T F T T F
T F F F T T
F T T F T T
F F T F F F

 

Однострочный оператор If имеет следующий формат:

 

If L Then оператор(ы) [Else оператор(ы)]

 

Порядок выполнения конструкции следующий: если значение логического выражения L равно True, то выполняется оператор (или операторы, отделенные друг от друга двоеточием), стоящий после Then, в противном случае выполняются операторы, стоящие после Else. В операторе If конструкция Else может от­сутствовать (в формате она взята в квадрат­ные скобки), такое разветвление называется усеченным.

Особенностью однострочного оператора If является то, что он должен располагаться в одной строке программы.

Приведем примеры записи однострочного оператора If:

 

If x > 0 Then y = Sqrt(x) Else y = 1 If d=>10 Then epsilon = 0.001 If lambda < 1 Or beta = 3 Then lambda = beta : x = 0 If x < 10 Then y = 1 Else If x < 100 Then y = 2 Else y = 4

 

Если запись оператора не умещается в пределах экрана, а также при программировании вложенных разветвлений, используется многострочный оператор (блочный оператор) If. Он имеет следующий формат:

If L1 Then [блок_операторов_1] [ElseIf L2 Then [блок_операторов_2] . . . Else [блок_операторов_n] ] End If

Порядок и правила выполнения конструкции многострочого оператора If следующий:

· если значение L1 равно True, то выполняется блок_операторов_1 и далее управление передается оператору, следующему после End If.

· если значение L1 равно False, то проверяется значение следующего выражения и так далее.

· после выполнения любого блока оператора If управление передается оператору, следующему после End If.

· оператор If может содержать несколько конструкций типа ElseIf.

· блок операторов, следующий за словом Else, выполняется в том случае, если последовательные проверки всех выражений выше имеют значение False.

· конструкции ElseIf и Else могут отсут­ствовать, что и отмечается в синтаксисе оператора квадратными скобками.

· в многострочном операторе If слово Then должно быть последним в строке, а слово Else – единственным.

· слово ElseIf записывается слитно, а слова End If– через пробел.

Примеры блочных операторов If:

If x>0 Then y =Sqrt(x) z=1+y p=4 End If If x < 10 Then y=1 Else y=2 z=4 End If

 

Считается хорошим тоном выделять структуру операторов отступами, как это сделано в приведенных выше примерах. Это сделает программы «читабельными», т.е. в них будет легче разо­браться.

 









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2018 zdamsam.ru Размещенные материалы защищены законодательством РФ.