Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ Информатика ЛР.doc
Скачиваний:
12
Добавлен:
27.08.2019
Размер:
3.47 Mб
Скачать

Основные положения

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

Одномерный массив аналогичен строке или столбцу таблицы и вектору в математике (рис.1).

Рис. 1. Одномерный массив, где А(1), А(2), …, А(n) – элементы одномерного массива А, состоящего из n элементов

Двумерный массив аналогичен прямоугольному диапазону ячеек таблицы Excel и матрице в математике (рис 2).

Прежде чем использовать массив, его следует описать (объявить). Кроме того, для каждого индекса должны быть определены нижняя и верхняя границы, в пределах которых индекс может меняться. Значения элементам присваивается по порядку. Если элементов в массиве больше, чем инициализаторов, то элементы, для которых значения не указаны обнуляются.

В(1,1)

В(1,2)

В(1,m)

В(2,1)

В(2,2)

В(2,m)

В(n,1)

В(n,2)

В(n,m)

Массив В(n,m)

Рис. 2. Двумерный массив,

где В(1,1), В(1,2), В(n,m) – элементы двумерного массива В размерностью n × m

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

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

Существует два вида массивов – статические и динамические.

Статические массивы.

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

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

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

Описание массивов

Массивы в коде программы объявляются так же, как и переменные. Место, в котором объявляется массив, определяет, где его можно использовать (его область видимости). Если массив объявлен локально для процедуры, то его можно использовать только в этой процедуре. Если массив объявлен в верхней части формы, то его можно использовать во всей форме. Если массив объявлен открытым в стандартном модуле, его можно использовать в любом месте проекта.

Описание статических массивов

Статические массивы на языке программирования Visual Basic for Applications (VBA) описываются в программе при помощи ключевых слов Dim и As. Границами являются целые числа в скобках. Между верхней и нижней границами ставится ключевое слово To.

Одномерные массивы имеют один индекс.

Базовый синтаксис одномерного статического массива следующий:

Dim Имя_массива (граница1 To граница2) As тип_данных.

Здесь важную роль играют следующие аргументы.

  • Dim – это ключевое слово, для объявления массива. Если массив помещается в стандартный модуль, то вместо Dim используется слово Public.

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

  • Граница1 – это нижняя граница массива.

  • Гранца2 – это верхняя граница массива.

  • Тип_данных – это тип данных, хранимых в массиве. В большинстве случаев все переменные в массиве относятся к одному и тому же типу данных. Если в массиве будут храниться данные разных типов, то можно указать тип Object.

Например:

Dim A(1 To 10) As Integer

Dim B(-10 To 10) As String

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

Например:

Dim C(10) As Byte.

Этот оператор эквивалентен оператору Dim C(0 To 10) As Byte.

Если нужно, чтобы нижней границей массива была единица, то перед первой строкой программы необходимо набрать строку Option Base 1.

При этом оператор последнего примера будет эквивалентен следующему:

Dim C(1 To 10) As Byte.

Значения границ не должны выходить за пределы диапазона значений для данных типа Long.

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

Например:

Dim A(4,4) As Byte

Dim B(1 To 5, -5 To -1) As Byte.

В данных примерах объявленные массивы А и В являются двумерными и содержат одинаковое количество элементов, равное 5 × 5 = 25.

Число размерностей массива может достигать 60.