YourLib.net
Твоя библиотека
Главная arrow Информатика (Под общ. ред. А.Н. Данчула) arrow 4.4.3. Компоненты языка
4.4.3. Компоненты языка

4.4.3. Компоненты языка

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

Таблица 4.1. Типы переменных и их обозначения

Таблица 4.1. Типы переменных и их обозначения

   Любой из ранее указанных типов  Константой называется именованная область памяти, используемая для хранения значений, которые остаются постоянными в течение всей работы приложения. Использование констант может делать код более наглядным, так как с их помощью можно манипулировать не числами, а их мнемоническими именами. В Visual Basic имеется ряд встроенных констант, однако можно создавать и пользовательские константы.
   Выражение — составленная по синтаксическим правилам языка комбинация констант, переменных и функций, соединенных операциями, описывающая правила нахождения значения выражения по значениям входящих в него компонентов.
   Операции обрабатывают отдельные значения — операнды. Выделяют следующие операции: арифметические, логические, сравнения и конкатенации.
   Оператор — специальная последовательность слов или символов языка программирования, предназначенная для задания некоторого завершенного действия в процессе обработки информации. Оператор может содержать операцию с операндами, комментарий, вызов процедуры или некоторые ключевые слова.
   Visual Basic поддерживает два вида встроенных и пользовательских процедур: процедуры Sub (подпрограммы) и Function (функции). При обращении к функции по ее имени (с указанием параметров) в ней выполняются вычисления, а полученный результат возвращается в вызвавшую ее команду. В функ- ции можно выполнять любое количество вычислений с числовыми, текстовыми, логическими значениями и т. п. В отличие от функций Sub-процедуры не возвращают полученные значения и наиболее часто используются для обработки некоторого события. Процедуры обычно работают с одним или несколькими параметрами, которые описываются при вызове процедуры, хотя некоторые процедуры не требуют никаких параметров.
   Рассмотрим более подробно указанные компоненты языка.
   Имеется два вида констант:
   —  встроенные и системные константы, которые обеспечиваются инструментальными приложениями и элементами управления.
   Константы Visual Basic содержатся в объектных библиотеках Visual Basic (VB), Visual Basic для приложений (VBA) и DAO. Просмотреть и выбрать их можно в окне Object Browser. Другие приложения, которые содержат объектные библиотеки, такие, как Microsoft Excel и Microsoft Project, также предоставляют наборы констант, которые можно использовать с объектами, методами и свойствами этих приложений. Константы также определены в библиотеке объектных модулей для каждого элемента управления ActiveX;
   —  пользовательские константы, объявляемые в операторе Const:
   Const имя константы [As тип] = выражение.
   Параметр имя_константы — допустимое символическое имя (правила те же, что и для имен переменных); выражение составляется из числовых или строковых констант и операций. В выражении, однако, нельзя использовать обращения к функциям.
   Оператором Const можно объявлять:
   —  математическое значение, дату/время:
   Const conPi = 3.14159265358979
   Const conPlanets As Integer =9
   Const conDate= #1/1/97#
   —  строковые константы:
   Const conversion = "05.10.A"
   Const conName = "Visual Basic"
   В одном операторе можно объявить несколько констант, отделяя их запятыми:
   Const conPi =3.14, conPlanets = 9, conRussiaPop = 1.7E+08
   Выражение справа от знака равенства (=) — число или символьная строка, но также может быть выражение, значением которого также является число или строка. Определять константы можно даже с привлечением ранее определенных констант:
   Const conPi2 = conPi * 2
   В отличие от констант переменную можно рассматривать как область памяти для первоначально неизвестного значения. Например, представим себе, что создается программа для расчета объема продаж торговой точки. Пока процесс продажи фактически не происходит, рыночная цена или проданное количество неизвестны. Для этих неизвестных значений в программе можно использовать две переменные — Fakt cena и Fakt_kol. При работе программы пользователь вводит фактические значения этих двух переменных. Выражение для вычисления общего объема продаж выглядит следующим образом:
   Fakt_cena * Fakt_kol
   •  Выражение Fakt_cena*Fakt_kol каждый раз возвращает новый итог в зависимости от введенных пользователем значений. Переменные позволяют программировать вычисление, не беспокоясь заранее о фактических значениях. В этом примере тип данных Fakt_cena — Currency; тип данных Fakt_kol — целое число.
   Для выполнения вычислений и сохранения результата в переменной используются операторы присваивания:
   Fakt_kol = 10 ' Значение 10 передано в переменную
   Fakt_kol = Fakt_kol + 1 ' Приращение значения переменной на 1
   Следует отметить, что в этом примере знак равенства — операция присваивания, но не операция равенства; значение 10 присваивается переменной Fakt_kol. В этих операторах текстовые сообщения, начинающиеся с апострофа, являются комментариями.
   Объявить переменную — значит заранее сообщить программе о переменной, указав ее имя. В тексте программы переменные принято объявлять в начале каждой процедуры с использованием оператора Dim (аббревиатура слова Dimension — размер):
   Dim имя_переменной [As тип].
   После того как переменные объявлены, их можно использовать в любом месте процедуры. С целью экономии места можно объявить несколько переменных в одной строке, например:
   Dim Fakt_cena As Currency, Fakt_kol As Integer
   Необязательное предложение [As тип] в операторе Dim позволяет определять тип данных объявляемой переменной.
   Так как программа может состоять из множества модулей и процедур, то для переменных и констант существует зона действия (область видимости). Зона действия переменной (или константы) определяет, какие части кода приложения «знают» о ее существовании. Если переменная объявлена внутри процедуры, обратиться или изменить значение этой переменной может только код данной процедуры; таким образом, в этом случае переменная действует только в этой процедуре. Однако часто переменную требуется использовать с более широкой зоной действия, например чтобы ее значение было доступно всем процедурам модуля или даже всем процедурам приложения. В Visual Basic имеется возможность специфицировать зону действия переменной при ее объявлении.
   В зависимости от того, как и где объявлена переменная (или константа), она будет либо уровня процедуры (локальная), либо уровня модуля, что будет определять зону ее действия (рис. 4.10).
   Переменные, объявленные оператором Dim внутри процедуры, существуют только во время выполнения процедуры. Когда процедура заканчивается, значение переменной становится неопределенным. Кроме того, значение переменной в процедуре локально для данной процедуры, т. е. нельзя обратиться к переменной одной процедуры из другой процедуры. Эти особенности позволяют использовать одинаковые имена для переменных в различных процедурах, не беспокоясь относительно конфликтов или случайных изменений.
   Объявление переменной в разделе Declarations программного модуля, а не внутри процедуры делает переменную доступной всем процедурам модуля.
   Объявление переменной с использованием ключевого слова Public делает ее доступной в любом месте приложения.
   Объявление локальной переменной:
   Static имя_переменной
сохраняет ее значение даже по завершении процедуры.
   Чтобы избежать проблемы ошибок в именах переменных, можно предусмотреть, чтобы Visual Basic выдавал предупреждение всякий раз, когда он сталкивается с именем, не объявленным явно как переменная.
   По умолчанию, переменная уровня модуля доступна всем процедурам этого модуля, но не коду других модулей. Переменные уровня модуля создаются объявлением их оператором Private в разделе Declarations в начале модуля. Например:
   Private intTemp As Integer.

Рис. 4.10. Зоны действия переменных 

Рис. 4.10. Зоны действия переменных

   На уровне модуля не имеется никакого различия между Private и Dim, однако Private предпочтительней, так как это слово контрастирует с Public и упрощает понимание текста кода.
   Как и все переменные уровня модуля, переменные Public объявляются в разделе Declarations в начале модуля. Например:
   Public intTemp As Integer.
   Зоны действия констант определяются аналогично с использованием оператора Const.
   Кроме зоны действия переменные имеют такую характеристику, как период существования — время, в течение которого они сохраняют свои значения. Значения переменных Public и уровня модуля сохраняются в течение всего времени работы приложения. Однако локальные переменные, объявленные с Dim, существуют только в период выполнения процедуры, в которой они объявлены. Обычно, когда выполнение процедуры заканчивается, значения локальных переменных не сохраняются, и память, используемая локальными переменными, освобождается. При следующем запуске процедуры все локальные переменные повторно инициализируются.
   Если переменные Public в различных модулях используют одно и то же имя, их можно отличать в коде, квалифицируя имя переменной именем модуля. Например, если имеются целочисленные (Integer) вида Public переменные intX, объявленные в Forml и Modulei, то, чтобы получать правильные значения, к ним можно обращаться как Module1.intX и Form1.intX.
   Переменные под одним именем могут также существовать в разных зонах действия. Например, можно объявить переменную Public, именованную Temp, и затем, внутри процедуры, объявить локальную переменную подтем же именем. При обращении к имени Temp внутри процедуры Visual Basic выберет локальную переменную; при обращении к Temp снаружи процедуры Visual Basic выбирает переменную Public. Переменная уровня-модуля может быть доступна изнутри процедуры, если ее квалифицировать именем модуля:
   имя_модуля. имя переменной
   Обычно, когда переменные имеют одно и то же имя, но различную зону действия, более локальная переменная имеет приоритет при обращении перед менее локальными переменными (эффект затенения). Так, если имеется переменная Temp уровня процедуры, внутри данного модуля она будет превалировать над Public переменной Temp.

 
< Пред.   След. >