Базовые типы данных и операции над ними. Роль типа данного. Объявление данных: назначение и механизм.
Тип данных определяет, каким образом биты данных, представляющие конкретное значение, хранятся в памяти ПК. В каждом языке программирования имеется свой фиксированный набор базовых типов данных.
Тип данного определяет способ хранения данного и его представления в памяти, а значит:
· диапазон значений, которые может принимать это данное;
· операции, которые могут быть выполнены над этим данным.
Фактически, если данное, это объект, то тип данного определяет свойства и методы этого данного.
Приведем некоторые моменты, связанные с выбором типов данных для пере-
менных:
общий принцип — выбирайте наименьший тип данных, который может
вместить выбранные вами значения. Если есть какие-то сомнения — вы-
бирайте больший тип во избежание возникновения ошибок;
если есть возможность, лучше не использовать типы данных с плавающей
запятой (Single и Double). Работа с ними производится медленнее, кроме
того, могут быть проблемы при сравнениях за счет округлений;
при определении переменных можно использовать так называемые симво-
лы определения типа ((%) — Integer, ($) — String и т. п.). Например, в на-
шем примере можно закомментировать строку:
' Dim nVar1 As Integer
а во второй строке написать:
nVar1% = nVar1% + 1
Такой подход является устаревшим и к использованию не рекомендуется.
При объявлении переменной можно не указывать ее тип. Например, наше
объявление может выглядеть так:
Dim nVar1
В этом случае переменная будет автоматически объявлена с типом Variant.
В принципе, в VBA можно работать и без объявления переменных. Напри-
мер, такой код
nVar1 = nVar1 + 1
MsgBox nVar1
будет вполне работоспособным. Если мы используем переменную в про-
грамме без ее объявления, то будет автоматически создана новая переменная
типа Variant. Однако объявлять переменные нужно обязательно! И при этом
желательно явно указывать нужный тип данных. Потому что:
сокращается количество ошибок: программа с самого начала откажется
принимать в переменную значение неправильного типа (например, стро-
ковое вместо числового);
при работе с объектами подсказка по свойствам и методам действует
только тогда, когда мы изначально объявили объектную переменную с
нужным типом
Операции
Операция – правило для вычисления одного значения числового или другого типа.
1. Арифметические операции
Применяются для выполнения операций над числовыми значениями и обозначаются: +, – , *, /, ^, \, Mod. Результатом этих операций является числовое значение.
Имеют естественный приоритет, и правила разворачивания (операции одинакового приоритета выполняются слева направо). Приоритет можно изменить применением скобок.
Приоритет операций естественный: старшие, это *, /, Mod, младшие, это + и –.
Операция ^, это возведение в степень, \ – деление нацело, Mod – остаток от деления.
Пример.
(a+b)/(c-d)
a/b/c
2. Операции отношения
Применяются для сравнения как числовых, так и строковых значений, возвращают логическое значение (True или False).
<, >, =, <>, <=, >=.
Пример.
Dim X1 As Integer
Dim X2 As Integer
Dim Res As Boolean
X1 = 10
X2 = 1
Res = X1>X2
Res = X1<=X2
Res = X1 <> X2
Специальные операции отношения (сравнения) Is и Like используются для сравнения объектов.
Is – идентичность объектов.
Like – похожесть объектов.
Is применяется в отношении ссылок на объекты. Результат True, когда оба операнда указывают на один и тот же объект. Вторым объектом может быть имя типа.
Пример.
My_Val Is Boolean
Like применяется для поиска по маске. Результат имеет значение True, когда операнд операции соответствует маске.
Значения символов, используемых для построения шаблонов.
? | Заменяет произвольный символ. Like ″Л-10?″ Маске соответствуют Л-100, Л-101, … Л-109 Like ″Л-?06″ Маске соответствуют Л-006, Л-106, … Л-906 |
* | Произвольное число произвольных символов. Like ″A*″ Like ″*-206″ Маске соответствуют Л-206, ЭиУ-206, ПМФ-206 |
# | Произвольная цифра. ″Год 199#″ – годы с 1990 до 1999 |
[список] | Один из символов, содержащихся в списке. ″П[еи]тер″ = Маске соответствуют Петер или Питер. |
Замечания.
1. Операции сравнения допустимы только для однородных простых данных.
2. Результат сравнения – всегда логическое значение.
3. При сравнении строк сравниваются коды символов, входящих в строку.
4. При сравнении разнотипных числовых значений округление происходит в строну меньшего типа.
5. Для экзотических типов сравнение выполняется корректно (для дат).
3. Логические операции
Логические операции Not, And, Or, Eqv применимы только к логическим данным (например, к тем, которые возвращаются отношениями), и возвращают логическое значение.
Not отрицание, унарная операция (равно True, когда операнд ложен, и наоборот).
Пример.
Not (x>0) равносильно x<= 0.
And логическое умножение (равно True только тогда, когда оба операнда одновременно равны True).
Пример.
(x>0) And (x<10) True для всех xÎ[1..10]
Or логическое сложение (равно True тогда, когда хотя бы один операнд равен True).
Пример.
(Name=″Катя″) Or (Name=″Маша″) True, когда имя Катя или Маша, False для всех остальных имен.
Eq – эквивалентность логических значений.
4. Операция объединения строк
Объединение (конкатенация) означает слияние строк. Используются знаки & или +.
Выполняемое действие: операция получает новую строку, полученную слиянием двух исходных.
Dim Str1 As String
Dim Str1 As String
Str1 = ″Михаил″
Str2 = ″Александр″
…
Str_Cat = Str1 & ″ + ″ & Str2 & ″ = Нежная дружба. ″
Вывод
Операция – это правило для вычисления одного значения (числового или другого типа). Тип результата определяется типом операндов, участвующих в операции.