- •Лекция 5.Массивы. Классы объектов. Характеристики объектов. Объектная модель. Окно просмотра объекта. Комментарии. Управление потоком Массивы
- •Статические массивы
- •Динамические массивы
- •Пример работы с массивом
- •Классы объектов
- •Наследование
- •Полиморфизм
- •Инкапсуляция
- •Семейства объектов
- •Объектная модель
- •Использование Окна просмотра объектов
- •Замечания о комментариях
- •Управление потоком
Лекция 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 – суммирование элементов массива и т. п.