Базовые типы данных и операции над ними. Роль типа данного. Объявление данных: назначение и механизм.

Тип данных определяет, каким образом биты данных, представляющие конкретное значение, хранятся в памяти ПК. В каждом языке программирования имеется свой фиксированный набор базовых типов данных.

Тип данного определяет способ хранения данного и его представления в памяти, а значит:

· диапазон значений, которые может принимать это данное;

· операции, которые могут быть выполнены над этим данным.

Фактически, если данное, это объект, то тип данного определяет свойства и методы этого данного.

Приведем некоторые моменты, связанные с выбором типов данных для пере-

менных:

ˆ общий принцип — выбирайте наименьший тип данных, который может

вместить выбранные вами значения. Если есть какие-то сомнения — вы-

бирайте больший тип во избежание возникновения ошибок;

ˆ если есть возможность, лучше не использовать типы данных с плавающей

запятой (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 & ″ = Нежная дружба. ″

Вывод

Операция – это правило для вычисления одного значения (числового или другого типа). Тип результата определяется типом операндов, участвующих в операции.