|
Программирование >> Проектирование интерфейса пользователя
Результат сравнения двух целых чисел с помощью оператора = - это значение типа Boolean. Однако, если к тем же операндам применяется оператор Eqv, результат его выполнения - целое число. Так, переменная в в строке 3 получает значение False, а переменной I в строке 4 присваивается значение -3. При сравнении булевых значений операторы равенства и эквивалентности действуют одинаково. Но когда в качестве операндов выступают целые числа, то оператор = по-прежнему выполняет логическую проверку, а Eqv осушествляет побитовую операцию. Напомним: побитовым операциям посвящен одноименный раздел текущей главы. Оператор Imp Оператор импликации - это логический инструмент доказательства истинности утверждений. Например, во фразе Если на Васе - оранжевый галстук, это свидетельство дурного настроения содержится утверждение о том, что процесс и результат завязывания на Васиной шее оранжевого галстука напрямую связаны с тем, что персонаж не в духе. Если на Васе в данный момент нет злополучного галстука, то, согласно приведенной выше формуле, может показаться, что наш герой радуется жизни. К несчастью, Вася может впасть в уныние даже в том случае, если его оранжевый галстук две недели назад был сдан в химчистку. Результат импликации становится ложным в единственном случае - когда правый операнд равен False. Если операция импликации для вас не очевидна, обращайтесь за помощью к таблице истинности (см. табл. 4.4). Оператор Or Оператор Or ( ИЛИ ), как и его ближайший родственник, And ( И ), относительно легко поддается осмыслению и не нуждается в подробных разъяснениях, поскольку все мы ежедневно и неоднократно пользуемся им в разговорной речи. Подобно всем рассматриваемым здесь логическим операторам, Or может применяться также и в побитовых операциях (см. раздел Побитовые операции ). Оператор Оператор хог называют еще исключающим ИЛИ либо даже не ИЛИ . Последний вариант - просто недоразумение. Если воспринять его буквально, то может показаться, что вначале необходимо вычислить результат операции ИЛИ , а затем применить к нему оператор отрицания. В итоге - нонсенс. Однако все гораздо проще: результат выполнения Хог равен True только в тех случаях, когда значения операндов различны. Оператор Not Not - единственный унарный логический оператор. Кроме него, в словаре Access VBA есть еще один унарный оператор - AddressOf. Используйте Not в тех случаях, когда необходимо получить противоположное логическое значение. Побитовые операции Побитовыми называются операции, выполняемые над одноименными разрядами чисел в двоичном представлении. Вы, вероятно, знаете, что один байт, грубо говоря, соответствует символу. Байт состоит из восьми битов. Бит - это двоичное число, способное принимать одно из двух значений: О или 1. Когда речь идет о логических операторах, применяемых к целым числам, мы подразумеваем, что компилятор выполняет действия над битами и сохраняет результат в целочисленной переменной. Чтобы понять смысл побитовых операций, необходимо преобразовать пару обычных десятичных чисел в двоичную форму и сравнить значения их разрядов, расположенных на одинаковых позициях. Компьютеры работают именно с двоичными числами, поскольку память электронной машины состоит из миллионов миниатюрнгх полупроводниковых переключателей, каждый из которых может находиться в одном из двух состояний - включен или выключен. Двоичная система счисления - родная стихия компьютеров; двоичные вычисления выполняются гораздо быстрее десятичных. Важно понимать, что двоичная арифметика основана на использовании только двух цифр (0 и 1), а все мы в обычной жизни пользуемся десятичной системой счисления. Система счисления определяется количеством цифр, применяемых для представления чисел. Поэтому в двоичной системе употребляются две цифры (0 и 1), а в десятичной - десять (от 0 до 9). Что же на самом деле стоит за рядом цифр, представляющим собой запись значения в определенной системе счисления? Для объяснения воспользуемся наглядным примером. Возьмем, скажем, десятичное число 13. Его можно представить следующим образом: (1 * 10) + (3 * 10°) = 10 + 3 = 13 Отдельные цифры в записи числа 13 (т.е. 1 и 3) - это коэффициенты слагаемых, которые являются последовательным рядом убывающих степеней числа, равного основанию системы счисления. То же десятичное число 13 в двоичной записи будет выглядеть как 1101 (произносится именно так - один-один-нуль-один), поскольку (1 -) + (1 + (1 * 2°) 8 + 4 + 0 + 1 Теперь становится очевидной следующая общая формула: (С -1 (Сп-2 (Со * В ) , где п - число разрядов числа!, 0 <= i< n - коэффициенты слагаем1х (представляемые цифрами в записи числа), а в - основание системы счисления. Нумеруются разряды числа справа налево, начиная с нуля. Для выполнения бинарных побитовых операций необходимо предварительно преобразовать числа-операнды в двоичную систему счисления, а затем сопоставить каждую пару их одноименнгх разрядов. На помощь может прийти стандартное Windows-приложение Калькулятор, работающее в режиме Инженерный. Листинг 4.8 содержит короткий пример. Листинг 4.8. Пример выполнения побитовой операции And 1: Dim R As Integer 2: R = 5 And 4 3 : MsgBox R Побитовые операции применимы только к целым числам. Число 5 в двоичной записи выглядит как 101, а 4 - это 100. В результате выполнения оператора побитовой конъюнкции, приведенного в строке 2 листинга, переменной R присваивается значение 4. Сопоставим каждую пару одноименных разрядов двух чисел, полагая, что 1 (единица) эквивалентна логическому значению True, a 0 (нуль) - это False. Для нулевого разряда имеем 1 And 0 (т.е. True And False); результат (очевидно) равен 0. Конъюнкция первых разрядов (О And 0) также дает 0. Наконец, для пары вторых разрядов логическое выражение выглядит как 1 And 1 и равно 1. Общий результат - 100, или 4 в десятичной системе счисления. Данный результат можно просмотреть в окне сообщения, выводимого на экран с помощью стандартной процедуры MsgBox, которая указана в третьей строке листинга. Сложение строк Оба оператора сложения строк, реализованные в Access VBA, находят самое широкое практическое применение. Операторы + и &, описанные ниже в табл. 4.6, добавляют строку правого операнда в конец левого. Таблица 4.6. Операторы сложения строк Символ Наименование Описание
Если используется оператор +, сторонний пользователь вашей программы может быть введен в заблуждение, поскольку текущий контекст не обязательно дает однозначный ответ на вопрос, какие операнды складываются - числовые или символьные. Но оператор & недвусмысленный, поскольку применяется исключительно для конкатенации строк. Листинг 4.9 содержит несколько примеров употребления обоих операторов. Листинг 4.9. Примеры использования операторов сложения строк 1: 2 : 3: 4: 5 : Di ring As String MyString = Здравствуй, MyString = Здравствуй, MyString = Мне + 5 + лет MyString = Мне & 5 & лет + мир! & мир! Оператор & одновременно со сложением строк выполняет преобразование в строку значений типа, отличного от string. неявное Результаты выполнения операторов, указанных в строках 2 и 3 листинга, одинаковы. Однако, анализируя строку 4, компилятор выдаст сообщение об ошибке несоответствия типов (см. рис. 4.1). Те же данные при использовании оператора &, заданного в строке 5, будут обработаны успешно, поскольку числовое значение 5 подвергнется операции неявного преобразования в строку 5 . Дадим небольшой совет - при необходимости сложения строк всегда пользуйтесь оператором &. Кто здесь главный? Каждому оператору соответствует определенный уровень приоритета - конкретный оператор выполняется после операторов одной группы и перед другими. Например, операторы умножения и деления имеют более высокий приоритет, нежели операторы сложения и вычитания, т.е. выполняются в первую очередь. Компилятор Access VBA не требует от вас обязательного явного указания порядка выполнения операторов - он руководствуется заранее оговоренными правилами, изложенными в табл. 4.7. Операторы расположены в таблице в порядке убывания приоритета выполнения, причем арифметические операторы имеют высший приоритет, операторы сравнения выполняются после арифметических, а логические находятся на низшей ступени.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |