Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Кузьмины по VB.doc
Скачиваний:
47
Добавлен:
25.05.2014
Размер:
911.36 Кб
Скачать

Массивы

Во многих случаях разрозненные переменные удобно объединить в совокупность – массив, именуя все коэффициенты общим именем (именем массива) и индексами (номерами в массиве).

Индекс элемента массива позволяет обратиться к элементу массива «напрямую». По индексу массив строго упорядочен.

Массивом называется конечная упорядоченная совокупность данных одного типа, доступ к каждому осуществляется по его индексу.

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

По умолчанию в VBприменяется так называемая нумерация с нулевой базой, т.е. элементы массива нумеруются, начиная с 0.

Одномерные массивы

Одномерный массив – это просто список элементов данных. Для доступа к данным, хранящимся в определенном элементе массива, следует указать имя массива с последующим числом (индексом), заключенном в круглые скобки.

Элементы массива можно использовать в любом выражении точно также как и значение константы или переменной.

Например, a(0) = 11.2 a(1) = 10.2 a(3) = 22.1 a(4) = 1.1

Y = a(0) * 2 – a(1)

Многомерные массивы

Часто бывает необходимо представить таблицы данных в формате строк и столбцов. Для этого используют многомерные массивы. VBпозволяет создавать массивы, имеющие до 60 измерений.

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

а(1,3) а(0,4) и т.д.

Массивы с фиксированным и переменным числом элементов

Все массивы, которые используются в программе, должны быть описаны. Для этого используется оператор Dim.

Синтаксис Dim Name ([Subscript]) [As type], гдеName- имя массива,Subscript- измерения массива. Для одномерного массива одинSubscript, для двумерного – два, отделенные друг от друга запятой, и так далее.

Можно объявлять также массивы, используя ключевые слова Public,PrivateиStatic– точно так же, как для любой другой переменной и с тем же влиянием на область действия.

Синтаксис Subscrit: [lower To] upper [,[lower To] upper]…

lower- определяет нижний диапазон допустимых индексов массива,upper- верхний предел.

Dim A [0 To 10] As Integer

Dim B [1 To 5, 1 To 5] As Real

ОператорOptionBase

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

Синтаксис Option Base 0  1.

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

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

Примеры объявления массивов:

Dim s(1 To 100) As String

Dim st(0 To 15, 0 To 15) As String

Static Matr_1(2, 2) As Double

Static Matr_2(1 To 3, 1 To 4) As Real

Dim V (1 To 3, 1 To 10,1 To 15)

При объявлении массивов следует помнить, что включение оператора Subscritв объявление массива создает массив с фиксированным числом элементов, пропуск оператораSubscritв объявлении массива создает динамический массив.

Dim Matrix ()

Такие массивы используются, когда заранее неизвестно количество элементов массива. Размерность массива устанавливается позднее с помощью исполняемого оператора Redimвнутри процедуры перед тем как этот массив использовать.

Redim Matrix (X+1)

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

Синтаксис Lbound(A_Name [, dimension])

Ubound(A_Name [, dimension])

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

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случайными числами

Функция Rndвозвращает значение (типSingle), содержащее случайное число меньшее 1 и большее или равное нулю. Если необходимо получить последовательность случайных чисел в некотором диапазоне [a,b] следует использовать формулу

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

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

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