Базовые типы данных и операции над ними, страница 9

Инструкция присваивания работает следующим образом:

1.  в начале вычисляется значение выражения справа от знака присваивания «=», а

2.  затем – полученное значение записывается в переменную, имя которой указано слева от него. Предыдущее значение переменной при этом безвозвратно теряется, а новое остается там до тех пор, пока не буде «затёрто» следующим значением.

Например, в инструкции:

Var2 = 2 + 3

1.  в начале вычисляется значение выражения 2 + 3, которое равно 5, а

2.  затем полученное значение (5) присваивается переменной Var2.

Исходя из изложенного выше алгоритма работы инструкции присваивания, в программировании довольно часто используется следующая конструкция, совершенно бессмысленная с точки зрения математики:

nCount = nCount + 1

– переменная nCount не может быть равна самой себе, увеличенной на единицу! Но в программировании она допустима, и имеет следующий смысл (семантику):

1.  к имеющемуся на ткущий момент значению переменной nCount прибавить 1, а

2.  затем полученное значение записать в переменную nCount.

То есть, в результате выполнения этой инструкции значение переменной nCount увеличится на 1. Этот приём довольно часто используется в программировании для подсчета количества различных объектов. При этом переменная, в которой накапливается сумма так и называется – счетчик. Естественно, что до начала счета счетчик необходимо привести в исходное состояние, например, обнулить:

nCount = 0

Шаг изменения счетчика при этом может быть совершенно произвольным числом, не обязательно равным 1.

Рассмотренная выше инструкция присваивания представляет собой простейшее, допустимое в VBA, выражение. Выражения в программировании совершенно аналогичны выражениям в математике – они служат для получения новых значений. Выражения состоят из операндов и, возможно, объединенных операторами (знаками операций). Операнды представляют объекты, над которыми выполняются указанные с помощью операторов действия. В качестве операндов могут выступать переменные, константы, функции и т.д., а операторов – знаки арифметических, логических и других операций.

Операторы, используемые в выражениях, бывают двух видов:

1.  В большинстве случаев – бинарные (двуместные), когда используются два операнда, например, 2 + 3, где 2 и 3 – операнды, а «+» – оператор.

2.  Унарные (или одноместные), когда используется только один операнд, например, -2. Здесь «-» – оператор, а 2 – его единственный операнд.

Унарных операторов только два – «-» и «+». Первый из них используется для изменения знака числовых значений, второй – ни каких действий не вызывает, а служит лишь для поддержания единообразия синтаксиса языка, и поэтому сразу удаляется редактором Visual Basic после того, как курсор покинет строку редактирования. Бинарных операторов гораздо больше, и более подробно они будут рассмотрены немного позже здесь же.

Простейшее выражение – это единственная переменная, константа или обращение к функции, например:

Var1

5

"5"

"Здравствуй, Мир!"

InputBox( "Введите данные" ).

Здесь, первое выражение – это переменная, второе – числовой литерал со значением 5, третье – строковой литерал, состоящий из одного символа «5». При этом необходимо четко понимать, что 5 – это значение типа Integer, и над ним, соответственно, можно выполнять такие арифметические операции как сложение, вычитание и т.д., в то время как для строкового литерала "5" они никакого смысла не имеют – над ним можно выполнять совсем другие операции – конкатенацию и сравнение. Строковые литералы все-таки чаще используются в виде выражения номер четыре. Последнее, пятое, выражение представляет вызов функции InputBox, которая возвращает введенное в её окне ввода значение типа String.

Но, приведенные выше простейшие выражения, не могут быть допустимыми, поскольку правила языка программирования VBA не допускают наличия в программе «бесхозных» выражений – значение выражения должно быть обязательно каким-либо образом использовано. При этом значение выражения можно использовать:

1.  присвоив его некоторой переменной, или

2.  передав в некоторую функцию, или процедуру, в качестве параметра.

Например:

Pi = 3.14

x = y

y = Sin( x + 1.0).

Первое выражение представляет собой инструкцию присваивания, в которой значение непоименованной константы 3.14 записывается в переменную Pi. Во второй инструкции значение переменной y присваивается переменной x. В третьей инструкции значение синуса, вычисленное функцией Sin(), присваивается переменной y. При этом в качестве параметра функция Sin(), в свою очередь, получает вполне допустимое в данном контексте выражение – x + 1.0.

Некоторые выражения, как, например:

a * ( b + c / d ) - 100.0

могут представлять собой различные сочетания более простых выражений, которые называются подвыражениями. В данном примере подвыражением, например, может быть c / d. VBA допускает любую «глубину» вложенности подвыражений в выражениях.

Всякое выражение характеризуется:

1.  значением и

2.  типом.

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

Для получения новых значений в выражениях VBA, в зависимости от типов входящих в них операндов, используются следующие группы операторов, некоторые из которых состоят из одного оператора:

1.  Присваивание. Единственный оператор этой группы «=» служит для присваивания значений переменным, и выше уже был достаточно подробно рассмотрен.

2.  Арифметические – служат для выполнения арифметических действий над числовыми типами данных.

3.  Сравнения – используются для сравнения операндов.

4.  Логические – выполняют логические операции.

5.  Конкатенация строк. Единственный оператор этой группы обозначается одним из символов «&» или «+», и служит для объединения строковых данных.

Арифметические операторы в VBA обозначаются следующим образом:

+

– сложение и унарный «+»,

-

– вычитание и унарный «-»,

*

– умножение,

/

– деление,

^

– возведение в степень,

\

– целочисленное деление,

Mod

– деление по модулю (остаток от целочисленного деления).