3.3.2. Логическое выражение
Логические выражения используются в математической логике и их также называют Булевыми выражениями, по имени математика Дж. Буля.
Используются следующие знаки логических операций:
Логические операции объединяют логические величины, которые могут принимать два значения: True (Истина) или False (Ложь). Результат логической операции также принимает одно из двух значений: True (Истина) или False (Ложь).
Результа1 ложческои операции определяется следующей таблицей:
Значения | pciv.im.it ипер.шии | |||||||
Оперли.1 (А) | Oiicp.iiLi (В) | Nol A | Not В | A And li | A Oi В | A Xoi В | A Eч^ В | A Imp В |
Т] нс | True | False | False | Tine | True | False | True | True |
False | True | Tmc | False | False | True | True | False | F.ilse |
Tme | Pulse | F.ilse | Ti не | False | Tine | True | False | False |
False | False | Тше | Tme | False | False | False | Tine | True |
Приоритет выполнения операций (в порядке убывания приоритета): Not, And, Or, Xor, Eqv, Imp.
Пример:
True And Not False Or False
Вычисляется Not False, результат — True; далее вычисляется And. результат — True; последним вычисляется Or, результат — True.
Операндами логического выражения являются:
. • выражения отношения;
Выражения отношения состоят из двух арифметических или символьных (см. ниже) выражений, объединенных знаками операций отношения:
> — больше;
< — меньше;
>= — больше или равно;
<= - меньше или равно;
= — равно;
<> — не равно.
Выражение принимает значение либо True, либо False. Примеры:
3 + 1 > 3 (результат True);
SiirName = “Ивсмов “ (если переменная SiirName имеет значение “ Иванов”, то результат True, в противном случае False);
“А” > “В” (результат False, побитово сравниваются значения кодов символов, код символа “Я” больше кода символа 'A”).
Двойные неравенства для правильного их вычисления необходимо записывать с использованием знаков логических операций. Когда арифметические данные преобразуются к логическому типу, то 0 преобразуется в False, а другие значения преобразуются в True. При преобразовании логического типа к арифметическому, False преобразуется к 0, a True к —1.
Рассмотрим неравенство 23 < А < 543. Хотя синтаксически Visual Basic допускает такую запись, результат в любом случае будет True независимо от значения переменной А. Выражение вычисляется слева направо: 23 < А даст либо True. либо False, т.е. либо —/, либо 0. —/ или 0 всегда меньше 543 и результат будет True. Для того чтобы вычисление было корректным, это двойное неравенство следует записать состоящим из двух операндов и знака логической операции.
Правильная запись двойного неравенства: 23 < A And A< 543 (если использовать Or вместо And, то вычисление также будет некорректно).
Составим логическое выражение для набора условий:
Вначале вычисляется выражение в скобках ( И <= Y And ^<= q) — True, далее слева направо вычисляются Л+ 2 >= Y And д + В > С — False, далее
д*Х + B*Y = D And ( // <= Y And Y <= Q) - False, последней операция Or. которая лает результат — False.
3.3.3. Символьное выражение
В Visual Basic определена одна операция с символьными данными - конкатенация (сцепление), позволяющая объединять несколько строк в одну. Знак операции — “+” или “&”.
Операндами символьного выражения могут быть:
Пример:
NameS = “Иван”
SurName$ = “Иванов”
. Narne$ + SurNameS дает результат “ИванИванов” Следует обратить внимание (см. Пример), что необходимые пробелы нужно расставлять самостоятельно. Visual Basic их не вставляет.
3.4. СТАНДАРТНЫЕ ФУНКЦИИ
В Visual Basic имеется широкий набор встроенных (стандартных) функций, облегчающий написание программ. Имеются математические функции, для обработки строк, для работы с временем и датами, для финансовых расчетов.
Встроенные функции различаются тем, что некоторые воз-вращрют вычисленное значение, другие не возвращают. Обращения к функциям, которые возвращают вычисленное значение, является операндом выражения (в рассмотренном выше выражении
A(I,J+1) * (Cos(B+3.5) + 2 * К “ 3) + (Р - 3.25) операнд Cos(B+3.5) является обращением к встроенной функции вычисления косинуса угла).
Обращение к встроенной функции, возвращающей значение того или иного типа, должно соответствовать выражению, в кото-
ром к ней обращаются. Например, и арифметическом выражении можно обращаться к функциям, возвращающим значения арифметических типов, в символьном — символьного типа.Обращения к функциям, которые не возвращают вычисленное значение, являются отдельными операторами программы. Например, запись отдельного оператора
Для обращения к некоторым встроенным функциям нужно задавать значение аргумента (например, Sin(X+2), где Х+2 выражение, определяющее значение аргумента). Для других встроенных функций аргумент задавать не нужно (например. Now). Примерами математических функций являются:
• • String — создает строку символов;
3.5. ОПЕРАТОРЫ
. Программа на Visual Basic состоит из процедур (любая программа состоит хотя бы из одной процедуры). Процедуры состоят из операторов.
Оператором (Statement) является синтаксически полное описание конкретной команды (аналог предложения на русском или другом языке), которая выражает одно действие или определение.
Одному оператору соответствует одна строка программы. Однако можно использовать разделительный знак двоеточие (:), чтобы поместить больше чем один оператор в строке программы.
Операторы программы выполняются последовательно сверху вниз (слева направо для операторов на одной строке), если другие операторы (перехода, управления, обращения к функциям' или процедурам, см ниже) не вызывают изменения последовательности их выполнения.
Строки программы могут, быть обозначены метками (Linelabel) или номерами (Linenumber).
Метка (Label) обозначает следующую строку программы. Метка может включать не более 40 символов (первый обязательно буква) и заканчивается двоеточием(:), не может быть ключевым словом. Метка может начинаться в любой позиции строки, если ей не предшествует никакой символ.
Номер строки (Lilienumber) обозначает следующую строку программы. Номер строки может включать не более 40 десятичных цифр и не заканчивается двоеточием. Номер строки может начинаться в любой позиции строки, если ему не предшествует никакой символ. В рамках одной процедуры номера строк не могут повторяться. Пример:
Routine: ' метка Num = Num / 2 ' оператор, помеченный меткой Routine:
123 ' Номер строки
Msgbox “Half of your number is “ & Num ' оператор с номером 123 Программу легче читать и отлаживать, если операторы программы снабжены комментариями. Комментарии начинаются с апострофа ('), за которым можно размещать любые замечания в тексте программы. Если комментарии располагается на нескольких строках, то каждую строку нужно начинать с апострофа.
3.5.1. Оператор перехода
Оператор перехода имеет вид GoTo { метка | номер строки}
и вызывает переход к выполнению оператора, с указанной меткой или номером строки. ,
Пример:
GoTo 123 'после этого оператора будет выполняться оператор Msgbox ...
Num = Num / 2
123 ' Номер строки
Msgbox “Половина введенного числа равна “ & Num
Следует отметить, что использование оператора перехода в программах является признаком низкой квалификации программиста и его желательно избегать.