Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по VB.doc
Скачиваний:
23
Добавлен:
12.11.2018
Размер:
2.66 Mб
Скачать
        1. Оператор Option Base

Начальный индекс при описании массива можно задать используя, оператор Option Base. Синтаксис этого оператора:

Option Base 0  1 .

Оператор Option Base помещается в область объявлений перед объявлением любых переменных, констант или процедур. В программе можно написать только один оператор Option Base, он будет влиять на описание всех массивов, объявляемых в программе, независимо от того, являются они локальными в процедуре или объявлены глобально.

При использовании оператора Option Base нижний диапазон в операторе Dim не указывается:

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

Динамические массивы отличаются от обычных статических тем, что для них не объявляется заранее длина массива. Объявление такого массива содержит только имя и тип элементов.

Dim Имя_массива() As Тип_данных .

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

ReDim Имя_массива(Кол-во эл-ов по каждой размерности)

Параметры данной процедуры - количество элементов по каждой размерности. Например, Redim А(10,20) - для двумерного массива A. После этого оператора к элементам динамического массива можно обращаться также как к статическому.

        1. Функции lBound и uBound

Для контроля за размерами массивов переменной размерности в VB есть две функции LBound и UBound, которые возвращают нижнее и верхнее граничные значения индексов соответственно:

Lbound(Имя_массива [,Номер индекса])

Ubound(Имя_массива [,Номер индекса])

Функция Lbound возвращает левую границу изменения индекса массива, Ubound возвращает верхнюю границу изменения индекса массива. Аргумент Номер индекса представляет целое число, определяющее измерение массива, для которого необходимо получить нижний или верхний предел. Если аргумент опущен, возвращается предел для первого измерения массива, например:

Фрагмент программы

Результат

Dim A(3 To 9) As String

For I = Lbound(A) To Ubound(A)

A(I) = 0

Next I

Очистка

одномерного массива А

Dim a_m(1 To 365, 2000 To 2004)

For i= Lbound(a_m, 1) To Ubound(a_m, 1)

For j = LBound(a_m, 2) To Ubound(a_m, 2)

a_m(i,j) = Rnd

Next j

Next i

Заполнение двумерного массива a_m случайными числами

        1. Функция Rnd

При отладке процедур на обработку массивов очень удобно использовать датчик случайных чисел Rnd для заполнения массивов.

Функция Rnd возвращает, случайное число меньшее 1 и большее или равное нулю типа Single.

Если необходимо получить целое случайное число в диапазоне [a, b] следует использовать формулу:

Int((b-a +1) * Rnd +a).

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

        1. Оператор Erase

Оператор Erase позволяет очищать все элементы массива в случае массивов с фиксированным размером.

В случае динамических массивов оператор Erase позволяет полностью очистить массив и его содержимое из оперативной памяти.

Синтаксис оператора:

Erase a1[, a2, …],

т.е. за один раз можно очистить (удалить) несколько массивов.