Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
20
Добавлен:
02.05.2014
Размер:
79.87 Кб
Скачать

Лекция 5.Массивы. Классы объектов. Характеристики объектов. Объектная модель. Окно просмотра объекта. Комментарии. Управление потоком Массивы

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

Массив (arraus- эрейз) – это набор элементов определенного типа, каждый из которых имеет порядковый номер, называемыйиндексом. Различаютсястатические и динамическиемассивы.

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

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

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

Например, нужно хранить фамилии 150 участников конференции. Можно было бы объявить и присвоить значения 150 переменным типа String, что крайне неудобно.

Поэтому объявляется одномерный массив: Dim straФамилия (149) As String

Задается одномерный массив типа Integer. Затем обязательно идет объявление типа данных. Иначе подразумевается тип данных Variant.

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

Нижнюю границу по умолчанию не указывают.

Следует помнить, что элементы массива именуются с 0 (первый индекс в массиве), при этом 10-й элемент имеет индекс – 9. Например, восьмой элемент одномерного массива обозначен:

aФамилия (7) = "Иванов"

Тогда при исполнении команды:

Print aФамилия(7)

будет выведено "Иванов"

Объявление четырехмерного массива типа Integer:

Dim intaКомплектующие (34, 13, 4, 29) As Integer

(Например: Комплектующие – Метизы – Вид – Размер)

В этом случае массив занимает: 35х14х5х30 = 73500 элементов.

Если нужно пронумеровать элементы с 1, то нужно в раздел объявлений (Declarations) модуля поместить оператор

Option Base 1

При этом областью действия данного оператора является только этот модуль.

Статический массив объявляется не локально (внутри процедуры), а только для контейнера (формы, модуля или класса) или глобально.

Полный синтаксис для глобального массива: Static Public Dim [ИмяМассива] (значения измерений)

Массивы могут быть многомерными с размерностью - до 60.

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

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

Объявление динамических массивов:

  • если вы не знаете и не можете узнать размер массива до выполнения программы;

  • если знаете, что размер массива изменяется в ходе выполнения программы;

  • если после завершения использования массива хотите освободить занимаемую им память для других целей.

Чтобы объявить динамический массив, нужно просто не указывать размер массива при его объявлении. Например:

Dim dateДниРождения ( ) As Date

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

ReDim dateДниРождения (intЧислоДнейРождения – 1)

т. е. предполагается, что значение переменной (intЧислоДнейРождения) уже задано ранее, а уменьшение числа элементов на 1 приводит в соответствие число элементов массива в соответствии с его нумерацией от нуля.

Чтобы в программе использовать конкретный элемент динамического массива, необходимо напечатать имя массива, за которым следуют скобки с указанным в них индексом этого элемента (значениями для каждого из измерений массива через запятую), например, datДаты рождения (25, 10).

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

присвоить значение, хранящееся в массиве, некоторой переменной

datДатаРожденияИванова = datДаты рождения (25, 10).

Элементу массива можно присваивать конкретное числовое значение:

curБольшие деньги (5, 8, 19) = 2700

Копирование одного массива в другой, это делается с помощью оператора:

strМассивКопия () = strИсходныйМассив (….)

Массив, которому присваивается значение (копия), должен быть динамическим. Размеры его определяются автоматически после присвоения.

Типы данных исходного массива и нового должны быть совместимы.

Операции, которые производятся с массивами, - статистические (т. е., применительно к Excel, могут вычисляться итоговые функции), например:

  • Count – определение количества чисел в массиве;

  • Sum – суммирование элементов массива и т. п.

Соседние файлы в папке Лекции по информатике1