Visual Basic Типы переменных Динамические массивы
Динамические массивы
25.10.2011 07:41

Динамические массивы

Нередко размер массива (то есть количество хранящихся в нем элементов) не может быть определен заранее. В таком случае следует объявить пустой массив. Массив, который в начале своего жизненного цикла не содержит ни одного элемента, называется динамическим. Он объявляется почти так же, как и обычный массив, за исключением того, что в процедуре можно использовать как ключевое слово Dim, так и Static:

Dim Y() As Integer

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

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

ReDim Y(5)

Созданным элементам следует присвоить значения. Позднее количество элементов массива снова можно изменить:

ReDim Y(7)

После выполнения этого оператора все значения, хранящиеся в массиве, теряются. Чтобы сохранить их, пользуйтесь ключевым словом Preserve:

ReDim Preserve Y(7)

ВНИМАНИЕ При работе с массивами надо представлять себе, что именно вы делаете. При небрежном обращении массивы поглощают довольно большой объем памяти, так что тщательно планируйте свои действия.

Константы

Константы обладают некоторым сходством с переменными — они тоже объявляются и им присваиваются значения. Тем не менее в отличии от переменных, значения констант остаются неизменными на протяжении всего жизненного цикла приложения. Использование констант обычно упрощает программирование — намного проще понять и отладить программу с переменной vbModal, чем следить за судьбой какой-нибудь безымянной переменной со значением 1. Одновременно с объявлением константы ей присваивается значение. Для этого используется ключевое слово Const:

Const conPi = 3.142

Приведенный ниже фрагмент демонстрирует возможности практического применения констант:

Const conPi = 3.142

Dim Radius As Integer

Dim Area As Double

Option Explicit

Private Sub cmdPrintArea_Click()

Radius = 3

Area.= conPi * (Radius ^ 2)

Print Area

End Sub

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

Рис. 7.10. Результат вычисления площади круга

Константы можно объявлять как в процедурах, так и в секциях объявлений модулей. Чтобы создать константу, доступную на уровне приложения, укажите при ее объявлении ключевое слово Global, — например Global Const Pi = 3.142.

Правильный выбор переменных для поставленной задачи является вопросом первостепенной важности. Он не только экономит время при отладке, но и помогает написать более компактную программу и приучает к дисциплине программирования. Нельзя построить дом, пользуясь одной отверткой, — существует великое множество инструментов, и каждый из них решает свою задачу. To же самое относится и к переменным. Старайтесь правильно подбирать средства для решения конкретной задачи.