Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Статический и динамический массив



Читайте также:
  1. int n; //р-ть массив
  2. RAID-массив в персональном компьютере
  3. RAID-массив в персональном компьютере
  4. RAID-массивы и матрицы
  5. А1. Ввод массива с клавиатуры
  6. Анализ элементов массива
  7. Аэродинамический расчет газоотводящего тракта

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

После имени статического массива в скобках задается нижний индекс, ключевое слово To и верхний индекс массива. Например, для хранения числа жильцов по квартирам объявим статический массив с нижней и верхней границей по номерам квартир.

Dim Квартиры(21 To 50) As Integer

Элементы массива заполняются оператором присваивания, например,

Квартиры(25) = 3

В операторе Dim можно задавать только верхний индекс массива. Тогда нижний индекс полагается равным 0. Но многие пользователи не привыкли начинать счет с нуля. Оператор Option Base 1, записанный перед первой программой модуля, устанавливает нижний индекс массивов равным 1.

Для хранения списка студентов группы ЭУП-101 объявим статический массив строк длиной по 120 символов (в расчете на длинные слова) и присвоим значение 15-му элементу массива.

Option Base 1

Dim ЭУП-101(30) As String*120

ЭУП-101(15) = "Николаева Вера Андреевна"

VBA позволяет создавать многомерные массивы до 60 измерений. При объявлении массива границы размерностей разделяются запятыми. Индексы элемента многомерного массива также разделяются запятыми.

Dim W(50,10) As Integer ′оба индекса начинаются с 0

Dim WW(1 To 80,1 To 20) As String

WW(12,3) = "Николаева Вера Андреевна"

Элемент двухмерного массива WW(12,3) можно представить себе так: поезд WW, место 12, вагон 3, содержимое – фамилия, имя, отчество пассажира. У элементов многомерных массивов первым меняется первый индекс, затем второй и так далее. В данном случае в оперативной памяти сначала размещаются 80 мест первого вагона, затем 80 мест второго вагона и так далее. Вагоны в поезде разные: СВ – 16 мест, плацкартный – 48, общий – еще больше. Больше половины элементов массива будут пустыми. Это плата за простоту организации данных.

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

Динамический массив объявляется с пустыми скобками. Во время выполнения программы вычисляются границы индексов массива, и они устанавливаются в операторе ReDim. Далее динамическим массивом можно пользоваться также, как статическим массивом. В программе можно много раз переустанавливать границы динамического массива (отсюда приставка Re). Для сохранения данных в динамическом массиве при переустановке границ используется оператор ReDim Preserve.

В следующем примере приведены только операторы, связанные с динамическим массивом.

Dim MyArray() As Integer, Arr As Long

Arr = Val(Input(″Введите число элементов массива″))

ReDim MyArray(1 To Arr)

Здесь используются две функции VBA. Функция Input создает окно диалога с пользователем и возвращает текстовую строку. Функция Val преобразует строку в число такого типа, как у переменной, записанной слева от оператора присваивания. Функция Val более универсальная, чем функция CLng (преобразование строки в число типа Long).


Дата добавления: 2015-07-11; просмотров: 189 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.006 сек.)