| Динамические массивы |
| 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 же самое относится и к переменным. Старайтесь правильно подбирать средства для решения конкретной задачи. |

