Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ7 - VBA Основы программирования Работа с ячей...doc
Скачиваний:
3
Добавлен:
19.11.2019
Размер:
1.51 Mб
Скачать

7 Константы

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

Существует две разновидности констант – пользовательские и встроенные.

Пользовательские константы требуют объявления. Для этого используется оператор вида

Const константа [As тип] = значение

В этом операторе:

Const – ключевое слово, которое показывает, что объявляется константа;

As – ключевое слово, с которого начинается задание типа данных;

константа – имя объявляемой константы;

тип – тип данных для объявляемой константы или (что то же самое) тип константы;

значение – значение, присваиваемое константе.

Ограничения на имена констант такие же, как на имена переменных.

Встроенные константы не требуют объявления.

Имена встроенных констант VBA начинаются с префикса vb, например, vbSaturday (число 7, Saturday – суббота).

Для имен (в частности имен констант) разработчиками Windows принято следующее соглашение: имена данных, близких по смыслу, начинаются с одного и того же короткого префикса. В частности, встроенные константы VBA имеют префикс vb, встроенные константы Excel имеют префикс xl.

Задание.

Запишите в области объявления переменных процедуры Прямая_Задача оператор с объявлением константы PI

Const PI As Double = 3,1415926534

Замените числовое значение числа Пи в правой части оператора вычисления переменной Rad на константу PI.

8 Оператор присваивания. Арифметические выражения.

Арифметические операции. Функции преобразования типа

Оператор присваивания имеет следующий синтаксис:

переменная = выражение

В нем переменная – имя переменной, выражение - арифметическое или логическое выражение или строка, которую можно рассматривать как выражение.

Знак = в операторе присваивания называется знаком присваивания.

При выполнении оператора присваивания может происходить преобразование типа данных.

Одной из основных конструкций любого алгоритмического языка является арифметическое выражение. Оно содержит постоянные (числа, константы), переменные и/или функции, соединенные между собой знаками арифметических операций.

Отдельно взятое число, константа, переменная или функция также является арифметическим выражением.

Знаки и примеры арифметических операций приведены в табл. 2.

Табл. 2. Обозначения и наименование арифметических операций:

Знак

арифметической

операции

Наименование операции

Пример

+

Сложение

a + b

-

Вычитание, изменение знака

a – b | -b

*

Умножение

a * b

/

Деление

a / b

^

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

3 ^ 3 = 27

\

Целочисленное деление, т.е. деление целых чисел с отбрасыванием остатка

31 \ 4 = 7

Mod

Определение остатка от деления целых чисел, являющихся целым числом

31 Mod 4 = 3

При наличии в выражении нескольких арифметических операций порядок их выполнения определяется правилом приоритетов арифметических операций:

1) в первую очередь выполняется возведение в степень (^);

2) далее выполняется умножение и деление (*, /) в порядке следования;

3) целочисленное деление (\);

4) операция определения остатка от деления целых чисел (Mod);

5) операция изменения знака числа (-);

6) в последнюю очередь выполняются сложение и вычитание (+, -) в порядке следования.

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

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

В арифметических выражениях могут присутствовать величины (переменные и постоянные) разных типов. Если тип, полученный при вычислении значения арифметического выражения в правой части оператора присваивания (справа от знака присваивания =), не совпадает с типом переменной в левой части оператора присваивания (слева от знака =), то при выполнении оператора присваивания производится преобразование типа.

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

- если дробная часть значения равна 0.5, то это значение округляется до четного числа из двух ближайших целых чисел;

- в противном случае значение округляется до ближайшего целого числа.

При выполнении операция \ и Mod над дробными числами происходит округление операндов до целых чисел, т.к. операции \ и Mod применимы только к целым числам. Округление производится согласно сформулированному выше правилу. Результаты выполнения операций \ и Mod являются целыми числами.

Операции, в которых фигурирует один операнд, называются унарными операциями. Из арифметических операций унарной является только операция изменения знака числа (-). Операции над двумя операндами (:, *, /, \, Mod, +, -) называются бинарными.

В VBA предусмотрена возможность «насильственного» преобразования одного типа данных в другой при помощи специальных функций. Указанные функции приведены в табл. 3.

Табл. 3. Функции преобразования типа

Название функции

Получаемый тип данных

CBool

Boolean

CByte

Byte

CCur

Currency

CDate

Date

CDbl

Double

CInt

Integer

CLng

Long

CSng

Single

CStr

String

CVar

Variant

Str

String

Val

Integer, Long, Single, Double, Variant

Задание.

С целью более глубокого понимания как работают операции целочисленного деления (\) и остатка от деления по модулю (Mod) в Модуль 1 добавьте следующую процедуру:

Sub Test1 ()

a = 2838

b = 7

c = a \ b

d = a Mod b

End Sub

Установите на последнем операторе с помощью функциональной клавиши F9 точку прерывания, запустите программу на выполнение и любым известным вам способом посмотрите текущие значения переменных c и d.