Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
18
Добавлен:
02.05.2014
Размер:
108.03 Кб
Скачать

Лекция 3.Требование явного объявления переменных. Область действия переменных. Константы. Правила написания констант. Операции и знаки операций Требование явного объявления переменных

Использование только оператора Dim для объявления переменных не всегда помогает обнаруживать или предотвращать небольшие ошибки, относящиеся к неявному объявлению переменных.

Чтобы легче было в любое время обнаружить ошибки, связанные с неявным объявлением переменных, создан специальный оператор Option Explicit (режим явности). В случае его использования требуется объявление всех переменных с обязательным использованием оператора Dim.

Для установления режима явности нужно добавить команду Option Explicit в область объявлений модуля, т. е., в начало модуля (перед любыми объявлениями переменных или процедур). Например:

Option Explicit

Sub FirstMessage ( )

……

End Sub

Если случайно добавить неявное объявление переменных в этот модуль, то выдается сообщение об ошибке времени исполнения, с утверждением, что эта переменная является необъявленной.

Для того чтобы редактор VB автоматически включал оператор Option Explicit в каждый новый модуль, нужно выполнить настройку:

Tools – Option – Editor – (выбрать флажок Require Variable Declaration (требуемое объявление переменных)) – OK.

После этого VB автоматически вставляет команду Option Explicit в начало каждого нового модуля, который пользователь (или макрорекордер) вставляет в проект. Выбор опции Require Variable Declaration в окне Option влияет только на новые модули. Если необходимо запросить явное объявление переменных в существующем модуле, нужно добавить Option Explicit, редактируя каждый модуль отдельно.

Присваивание переменной (assigning the variable)

После объявления переменой в нее с помощью оператора присваивания (=) помещается какая-то информация.

Эта операция называется инициализацией переменной.

Например, Dim Счетчик As Single = 25

Dim Объявление As String = "Сегодня мы познакомились с переменными".

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

  • строки инициализируются строками нулевой длины (" ");

  • числа инициализируются нулевым значением (0);

  • даты – значением "30 декабря 1899 года". Это значение визуализируется как #12:00:00 AM#;

  • переменные Boolean – значением False.

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

    • переменными;

    • константами;

    • функциями VB;

    • подпрограммами типа Function.

Область действия или видимости (scope - скауп) переменных

Термин "область видимости" относится к области процедуры или модуля VB, где данная переменная, процедура или другой идентификатор являются доступными. Области действия: процедурного уровня и модульного уровня.

Переменная объявляется только один раз:

  • либо в разделе объявлений модуля (модульный уровень);

  • либо в начале процедуры (процедурный уровень).

Область действия процедурного уровня: переменная, объявленная в процедуре, доступна только в этой процедуре. Поэтому говорят, что такая переменная имеет область действия процедурного уровня (procedure-level scope).

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

По умолчанию переменные локальны. При этом слово Private (локальная) работает локально точно также, как и Dim, например, в строках:

Private strProfit

Dim strProfit

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

Для того чтобы переменная была доступна для всех процедур в определенном модуле, нужно поместить оператор Dim в начало модуля (в разделе объявлений), т. е. перед процедурами модуля.

Например:

Dim HelloMsg As String 'используется всеми процедурами в этом модуле

Sub HelloWorld ( )

HelloMsg = "Hello, World!"

MsgBox HelloMsg, , "Окно приветствия"

End Sub

Sub HelloDave ( )

HelloMsg = "Hello, Dave!"

MsgBox HelloMsg, , "Другое окно сообщения"

End Sub

В листинге процедур нет объявлений переменной HelloMsg, т. к. она объявлена в разделе объявлений модуля.

При написании оператора MsgBox в обоих случаях используется несколько аргументов:

  • первый – переменная HelloMsg;

  • второй – указание вида кнопки окна сообщений MsgBox. По умолчанию, если аргумент опускается, т. е., если между запятыми – пробел, то в окно встраивается просто кнопка ОК;

  • третий – заголовок окна сообщения. Он обязательно заключается в кавычки.

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

Соседние файлы в папке Лекции по информатике1