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

Лекция №8. Структурированные типы данных

1. Массив

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

Объявление массива:

{Dim½Private½Public½Static} имяМассива (<размер1> [, <размер2>] …) [As типДанных] [, имяМассива (<размер1> [, <размер2>] …) [As типДанных]]…

Размер массива может объявляться тремя способами:

  1. Объявление только верхней границы, при этом нижняя граница принимается равной нулю (0).

  2. Объявляются верхняя и нижняя граница изменения индекса: нижняяГраница To верхняяГраница

  3. Размер массива вообще не объявляется, размерность массива неизвестна: ( ).

Массивы, размерность которых определена при описании, называются статическими. Если количество элементов при описании не фиксируется – массив называется динамическим. Он может менять количество элементов непосредственно при выполнении программы.

Например:

  1. Объявим одномерный массив, состоящий из десяти целых чисел

Dim D1 (9) As Integer

Dim D2(1 To 10) As Integer

  1. Объявим двумерный целочисленный массив, представляющий собой матрицу размерностью 4 строки, 7 столбцов.

Dim D3 (3, 6) As Long

Dim D4 (1 To 4, 1 To 7) As Long

Обращение к элементу массива осуществляется путем указания имени данного массива и индексов элемента.

Например:

Если необходимо обратиться к третьему элементу массива D1 из предыдущего примера, то следует указать: D1(2) – пересчет элементов в этом случае идет с нуля.

Если необходимо обратиться к элементу массива D4, стоящему во 2-й строке и 5-м столбце, то будет указано D4(2,5).

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

ReDim имяМассива (размер1 [,размер2 …])

Оператор ReDim может быть использован неоднократно для изменения размерности одного и того же массива. Но при изменении размерности под массив будет заново выделяться память, и текущее значение элементов этого массива будут потеряны. Чтобы их не потерять при переопределении размерности, используется ключевое слово Preserve. Но в этом случае можно будет поменять только последний аргумент, определяющий размерность массива.

Например:

Dim D5() As Integer

ReDim D5 (1 To 10)

ReDim Preserve D5 (1 To 14)

2. Перечисляемый тип

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

[Private | Public] Enum имяТипа

имяЗначения [= Константа]

имяЗначения [= Константа]

End Enum

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

Например:

Определим тип Неделя. Элементами данного типа будут являться названия дней недели.

Private Enum Неделя

Понедельник

Вторник

Среда

Четверг

Пятница

Суббота

Воскресенье

End Enum

Теперь в модуле определимо переменную День с типом Неделя.

Dim День As Неделя

День = Суббота