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 декабря
|
CDbl() |
Преобразует значение в тип Double |
CDbl(MyInt%) |
CInt() |
Преобразует значение в тип Integer |
CInt(“ |
CLng() |
Преобразует значение в тип Long |
CLng(Form.hWnd) |
CSng() |
Преобразует значение в тип Single |
CSng(“ |
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, если выражение представляет объект |
Область их применения разнообразна. Например, можно проверять корректность введенных пользователем данных. Это дополнительно повышает надежность программного кода при работе с приложением неопытных пользователей.
Контрольные
вопросы для
самопроверки