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

Массивы

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

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

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

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

По умолчанию в 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

Оператор Option Base

Начальное число для элементов массива можно задать, также используя, оператор 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 без аргументов для инициализации генератора случайных чисел.

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