3. МАТЕМАТИЧЕСКИЕ И ЛОГИЧЕСКИЕ ВЫРАЖЕНИЯ

 

То, что переменная создана, не означает, что она уже содержит нужное значение. Необходимо дополнительно присвоить его ей. Этот процесс называется инициализацией и выполняется с помощью оператора присваивания. В противном случае в переменной будет храниться значение «по умолчанию» (см. табл. 1).

Чтобы присвоить переменной необходимое значение, нужно указать переменную, которой должно быть присвоено значение, справа от нее вводится знак равенства (=) и затем записывается конкретное значение или выражение, результат которого будет присвоен необходимой переменной, одно из свойств элемента управления или их сочетания. Знак (=) и есть оператор присваивания. Выражения в Visual Basic содержат различные математические операторы (табл. 2).

 

Таблица 2

Математические операции и соответствующие им символы операторов

Операция

Символ

Пример выражения

Примечание

Сложение

Вычитание

Умножение

Деление

Деление нацело

Остаток от деления

Возведение в степень

+

-

*

/

\

Mod

^

Result = a + b

Result = a – b

Result = a * b

Result = a / b

Result = a \ b

Result = a Mod b

Result = a ^ b        

 

 

 

 

 

 

(ab)

 

Поскольку Visual Basic поддерживает логический тип данных, в нем имеются ряд логических функций, позволяющих записывать соответствующие выражения (см. табл. 3).

 

Таблица 3

Некоторые логические функции в Visual Basic

Функция

Описание

Синтаксис

Not

Отрицание («не»): возвращает True, если логическое выражение имеет значение False и наоборот.

Not(Expres)

And

Логическое умножение двух выражений («и»): возвращает False, если хотя бы одно выражение имеет значение False.

Expres1 And Expres2

Or

Логическое сложение двух выражений («или»): возвращает True, если хотя бы одно выражение имеет значение True.

Expres1 Or Expres2

Xor

Исключающее «или» («либо»): возвращает True, если только одно выражение имеет значение True.

Expres1 Xor Expres2

 

Все выражения в приведенных выше функциях обязательно должны быть логическими. Применяя операторы сравнения (см. табл. 4), можно вставлять математические выражения в логические:

a * b < c And b + c <> d

 

Таблица 4

Операторы сравнения в Visual Basic

Оператор

Описание

Пример синтаксиса

=

Равно

Expression1 = Expression2

< 

Меньше

Expression1 < Expression2

> 

Больше

Expression1 > Expression2

<=

Меньше или равно

Expression1 <= Expression2

>=

Больше или равно

Expression1 >= Expression2

<> 

Не равно

Expression1 <> Expression2

 

Часто возникают случаи, когда в одном выражении содержатся более одной математической, а в случае логических выражений и логических операций. В этом случае значение выражения будет протекать в определенном порядке, называемом приоритетом операций. Таким образом, в первую очередь будут выполняться операции, имеющие более высокий приоритет (см. табл. 5).

 

Таблица 5

Приоритет операций в Visual Basic (по убыванию)

Операция

Символ оператора (функции)

Стандартные и пользовательские функции

Возведение в степень

Отрицание (унарная операция)

Умножение, деление

Целочисленное деление

Деление по модулю

Сложение, вычитание

Конкатенация (сцепление) строк

Операторы сравнения

Логические функции

Sin( ) и др.

^

-

*, /

\

mod

+ , -

& (для символьных выражений)

=, <>, <, >, <=, >=

Not, And, Or, Xor, Eqv, Imp, Lile, Is

 

 

Примечание

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

 

Например:

   можно записать так:   Sin(x) ^ 2 / a / b

При построении выражений важную роль играет согласование типов их составляющих. Преобразование типа данных переменной означает перевод ее значения из одного типа в другой. Для этого пользуются специальными функциями преобразования (см. табл. 6).

 

Таблица 6

Функции преобразования в Visual Basic

Функция

Описание

Пример

CBool()

Преобразует значение в тип Boolean

CBool(-1)

CByte()

Преобразует значение тип Byte

CByte(254)

CCur()

Преобразует значение в тип Currency

CCur(“23.98 р.”)

CDate()

Преобразует выражение с датой в тип Date

CDate(“1 декабря 1991)

CDbl()

Преобразует значение в тип Double

CDbl(MyInt%)

CInt()

Преобразует значение в тип Integer

CInt(“4”)

CLng()

Преобразует значение в тип Long

CLng(Form.hWnd)

CSng()

Преобразует значение в тип Single

CSng(“23.1”)

CVar()

Преобразует значение в тип Variant

CVar(Text1.text)

CStr()

Преобразует значение в тип String

CStr(MyInt%)

 

Примечание

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

 

Также имеется отдельная функция «Val», которая возвращает числовое представление некоторой строки. Тип возвращаемого значения зависит от формата числа, представленного в строке аргумента. Если аргумент не может быть переведен в число, то возвращается нуль:

Value = Val(MyString)

·        Value – имя переменной числового типа.

·        Val – имя функции.

·        MyString – строковое выражение, которое преобразуется в числовое.

 

Функция «Str» является противоположностью вышеприведенной. Она преобразует значение любого типа в соответствующую ему строку:

MyString = Str(Value)

·        MyString – строковая переменная, в которую передается строка.

·        Str – имя функции.

·        Value – значение любого типа.

 

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

 

Таблица 7

Функции проверки типов данных в Visual Basic

Функция

Действие

IsArray()

Возвращает True, если переменная представляет массив

IsDate()

Возвращает True, если выражение представляет допустимую дату

IsEmpty

Возвращает True, если переменная не инициализирована или равна пустому значению

IsError

Возвращает True, если числовое выражение представляет ошибку

IsMissing()

Возвращает True, если значение в функцию не передано

IsNull()

Возвращает True, если выражение не содержит допустимых данных или равно Null

IsNumeric()

Возвращает True, если выражение представляет число

IsObject()

Возвращает True, если выражение представляет объект

 

Область их применения разнообразна. Например, можно проверять корректность введенных пользователем данных. Это дополнительно повышает надежность программного кода при работе с приложением неопытных пользователей.

 

Контрольные вопросы для самопроверки

  1. Что такое инициализация переменной?
  2. Какие операторы и функции вы знаете для построения математических выражений? Приведите примеры.
  3. Какие операторы и функции вы знаете для построения логических выражений? Приведите примеры.
  4. Можно ли объединить математические и логические выражения в одно? Приведите примеры.
  5. Что определяет «правило приоритета» и как им пользоваться?
  6. Как согласовать в одном выражении значения разных типов?