Программирование >>  Проектирование интерфейса пользователя 

1 ... 16 17 18 [ 19 ] 20 21 22 ... 153


Результат сравнения двух целых чисел с помощью оператора = - это значение типа 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. Операторы расположены в таблице в порядке убывания приоритета выполнения, причем арифметические операторы имеют высший приоритет, операторы сравнения выполняются после арифметических, а логические находятся на низшей ступени.



1 ... 16 17 18 [ 19 ] 20 21 22 ... 153

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика