Материал: Освой самостоятельно программирование для MS Access 2002 за 24 часа [П.Киммел]

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
background image

Новый термин

Уравнения —

 это выражения, использующие арифметические и логиче-

ские операторы, а также операторы сравнения и сложения строк.

Операнды уравнений

Каждое уравнение содержит, по меньшей мере, один операнд. Операндами могут

служить объекты данных различных видов — константы-литералы, переменные, име-

нованные константы, глобальные значения и результаты вычисления

В роли операндов могут выступать объекты любого типа, а каждый оператор спо-

собен воздействовать на данные конкретных типов. Другими словами, типы операн-

дов должны соответствовать типу оператора. Подробнее об этом — далее в главе.

Предлагаем рассмотреть операнды различных видов.

Константы-литералы

Литерал —

 это постоянное значение, введенное в текст программы непосредственно,

без объявления и указания имени.

 содержит несколько примеров кон-

стант-литералов.

Листинг

 Примеры констант-литералов

1:

2:
3:
4 :

5 :
6:

5

"Здравствуй,

 347-7170"

10#
"А"
3.14159

7: True

Литерал — это значение, на которое нельзя сослаться по имени.

Литерал 5, заданный в строке

 — это просто число 5. Литералы могут иметь лю-

бой тип — лишь бы он совпадал с типом оператора, к которому относится операнд.

Литералы в строках 2, 3 и 5 — это значения типа string. Значение в строке 4 выгля-
дит несколько необычно. Символ фунта

 после числа 10 указывает компилятору

Access, что значение следует трактовать как число двойной точности (Double), а не

просто как целое (Integer). В строке 6 в виде литерала задано число двойной точно-
сти, равное значению

 п.

 Строка 7 содержит логический литерал True.

Переменные

С переменными вы уже ознакомлены — мы достаточно подробно говорили о них в

главе "3-й час. Как программа работает с данными".

 Переменная —

 это именованный

объект,

 хранить данные определенного типа. Операторы, как правило,

"неравнодушны" к типам данных, которые им предлагаются. Если в уравнении типы

данных не соответствуют тем, которые предусматриваются оператором, компилятор

Access выдаст сообщение об ошибке (рис.

Используйте переменные в том случае, если, по вашему мнению, объекты данных

могут изменять свои значения. Если же заведомо известно, что содержимое элемента

данных будет оставаться постоянным, уместно определить его в виде константы.

70

Часть I. Азбука программирования в Access

background image

с  о

 PI -

 -

 - PI *

 I

 Если типы данных не соответствуют тем, которые поддерживаются кон-

кретным оператором, появляется окно сообщения об ошибке

Константы

Константы —

 это именованные постоянные значения. Константы, по определе-

нию, не могут изменяться — ни преднамеренно, ни случайно. Используйте констан-
ты, если вам необходимы твердые гарантии целостности постоянных значений, адре-
суемых по имени.

Константы соответствующих типов могут использоваться в качестве операндов для

любых операторов; исключение составляет оператор присваивания — употребление
констант в его левой части не допускается. После начальной инициализации констан-
те не может быть присвоено новое значение. Константа инициализируется в точке ее
первого определения — как в

Const MyConst = 5

Тип данных константы задается неявно — компилятор определяет его автоматиче-

ски в момент инициализации. Выражение Const MyConst = 5 неявно предполагает
использование типа Integer.

Глобальные элементы данных

Определение элемента данных с помощью служебного слова Global оказывает

влияние на возможный контекст его использования, но никак не связано с заданием
типа.

 элементы — переменные и константы — могут относиться к любо-

му типу. Определение элемента данных посредством слова Global просто предостав-
ляет возможность доступа к нему из разных мест кода. В листинге 4.2 приведены
примеры определения глобальных элементов данных.

4-й час. Последовательность действий и выполнение вычислений

71

background image

Листинг 4.2. Примеры определения глобальных элементов данных

Global Const

 =

Global

 As Integer

Новый термин

Контекст —

 это совокупность признаков, определяющих возможности

доступа к объектам программы. Глобальные данные могут адресоваться из
любого места программного кода. Объекты, лишенные признака Global

(т.е. локальные), разрешается использовать только внутри того блока кода,
в котором они определены. Контекст может быть задан самыми разными
конструкциями языка программирования. Поэтому считаем целесообраз-
ным на некоторое время отложить обсуждение вопросов определения кон-

текста. Мы вернемся к ним в главе "8-й час. Декомпозиция задач".

В строке 1 листинга 4.2 определяется глобальная константа

 Обратите

внимание, что единственное отличие локальных констант от глобальных состоит в от-
сутствии служебного слова Global в их определении. Строка 2 содержит определение

глобальной переменной Mylnteger типа Integer. Значение

 постоянно;

напротив, значение переменной Mylnteger легко изменить в любой строке кода.

Результаты вычисления функций

В качестве операндов уравнений могут применяться и значения, возвращаемые

функциями.

 Функция —

 это набор строк кода, адресуемый по имени и возвращающий

значение определенного типа. Мы более подробно поговорим о функциях на 8-ом заня-
тии. Ниже приведем пример, иллюстрирующий использование функций в уравнениях.

Листинг 4.3. Пример использования функций в качестве операндов уравнений

1: Function GetUserName () As String

 GetUserName = InputBox ("Введите имя

"Имя

 "Пол

3 : End Function

4: Sub

5: Dim Greeting As String
6: Greeting =

 + GetUserName

7 : MsgBox Greeting

 End Sub

Строки 1, 2 и З содержат функцию, возвращающую имя пользователя в виде стро-

ки. В строке 4 объявлена переменная Greeting. Строка 5 содержит оператор при-
сваивания, сохраняющий в переменной Greeting результат сложения литерала

"Здравствуйте

 и строки с именем пользователя, возвращенной функцией GetUs-

erName. В строке 6 применена стандартная процедура MsgBox Access, предназначен-

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

Правила „дорожного

В уравнениях, как вам уже известно, могут функционировать самые разные типы

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

граммирования в Access требует времени, причем существенную его часть следует по-
тратить

 изучение соответствий между типами данных и операторами, способными

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

довать, чтобы успешно достичь конечной цели, путешествуя в мире Access.

72

Часть I. Азбука программирования в Access

background image

Во-первых, литералам имеет смысл предпочесть именованные константы и пере-

менные. Если константа определена единожды и применяется во многих местах тек-
ста, при необходимости ее изменения вам потребуется обратиться только к одной
строке кода, в которой выполняется инициализация. Но если вы применяете литера-

лы, вам придется отыскивать и исправлять их по всему тексту программы.

Второе, не менее полезное, правило гласит: избегайте использования глобальных

переменных. Глобальные данные — потенциальный источник недоразумений и оши-
бок. В определенный момент времени все мы — и я в том числе — способны надежно

хранить в памяти только незначительный объем информации. Если переменные ис-
пользуются только тогда и в тех местах кода, когда и где они определены, текущий
контекст их употребления будет понятен и вам, и читателям вашей программы как
сейчас, так и много дней спустя. Кроме

 если объект данных локален, легче из-

бежать случайных ошибок в его применении.

Наконец, старайтесь не создавать чрезмерно сложных выражений. Длинные фразы

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

Классификация операторов по числу

операндов

Операторы, применяемые в языках программирования, можно разделить на три

группы в зависимости от числа используемых ими операндов: унарные, бинарные и
тернарные.

 Унарные

 операторы обращаются с одним, правосторонним, операндом.

Бинарные

 операторы имеют дело с двумя операндами, левым и правым.

 Тернарные

операторы взаимодействуют с тремя аргументами. Единственный известный мне тер-
нарный оператор — это конструкция из служебных символов ? и

 используемая в

языках С и C++. Поскольку в Access VBA тернарные операторы не реализованы, нам
более не стоит о них говорить.

 В Access VBA поддерживаются только два унарных оператора — Not и

 AddressOf. Оба они предполагают использование правосторонних аргу-

ментов. Все

 операторы VBA бинарные. Это означает, что их син-

 таксис можно описать следующим образом:

Подставьте вместо аргументов ЛевыйОперанд и ПравыйОперанд выражения, а вме-

сто словосочетания БинарныйОператор — любой реальный бинарный оператор

(естественно, следуя определенным правилам и ограничениям) — вы получите про-
стое уравнение с одним оператором.

 Аналогичным образом можно представить синтаксис унарного оператора:

 УнарныйОператор ПравыйОперанд

Чтобы получить уравнение с унарным оператором, достаточно заменить

 словосочетание УнарныйОператор одним из допустимых операторов — Not

или AddressOf, а в качестве правого операнда указать соответствующее

 выражение. Оператор Not мы рассмотрим более подробно в разделе

"Логические операторы в истинном свете", а примеры использования опе-
ратора AddressOf приводятся в разделе "Специальные операторы".

4-й час. Последовательность действий и выполнение вычислений 73

background image

Применение арифметических операторов

Говоря об арифметических операторах, я имею в виду те же самые средства вы-

полнения арифметических действий, которые предоставлены любым калькулятором.

Все мы начинали знакомиться с ними еще в начальной школе. (А ну-ка, вспомните,

как звали вашу первую учительницу математики!) Все арифметические операторы
носятся к разряду бинарных. Не будем тратить время на дополнительные разъясне-

ния — они излишни. На мой взгляд, достаточно привести сведения о символах, по-

средством которых обозначаются арифметические операторы, и особо отметить те из

них, которые используются относительно редко. В табл. 4.1 представлены обозначе-

ния, наименования и описания всех арифметических операторов языка

Таблица

 Арифметические операторы

Символ

Наименование

Описание

\

Mod

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

Умножение

Вещественное деление

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

Взятие остатка

Сложение

Вычитание

Формат:

 Y. Результат — X, возведенное в сте-

пень, равную Y
Формат: X * Y. Результат — произведение X и Y
Формат: X / Y. Результат — вещественное частное

от деления X на Y
Формат: X \ Y. Результат — целое частное от деле-

ния

 X на Y

Формат: X Mod Y. Результат — остаток от целочис-

ленного деления X на Y (например, 5 Mod 3 = 2)
Формат: X + Y. Результат — сумма X и Y

Формат: X - Y. Результат — разность X и Y

Символ прямой косой черты (/) — это обозначение оператора вещественного де-

ления. В качестве левого и правого операндов могут использоваться любые числа, и в

результате деления вы получите вещественное число. Например, 5 / 3 = 1.666. Но ес-

ли в том же выражении употребить символ обратной косой черты (\), то 5 \ 3 = 1.

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

Вам наверняка знаком и оператор возведения в степень

 хотя его нельзя причислить

к тем, которыми приходится пользоваться ежедневно. Наиболее часто выполняются опе-

рации возведения числа в квадрат и куб. Оператор возведения в произвольную степень на-

ходит применение в приложениях, связанных с решением научно-технических задач.

Последний из группы наиболее экзотических операторов — это оператор взятия

остатка (деления по модулю) (Mod), который используется для определения признака
целочисленной делимости одной величины на другую и лежит в основе целого разде-

ла математики — теории колец. Чтобы определить, делится ли без остатка одно число

на другое, необходимо проверить выполнение тождества X Mod Y = 0.

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

Операторы сравнения позволяют проверить, каким образом соотносятся значения

левого и правого операндов. Результат сравнения — это булева величина, принимаю-

щая одно из двух значений — True (истина) или False (ложь). В табл. 4.2 приведены

74

Часть I. Азбука программирования в Access

Источник: https://files.student-it.ru/previewfile/12301