Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Mетодичка_VB_часть1.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
706 Кб
Скачать
☆

6. Масиви

Масив — це змінна, в якій зберігається одночасно декілька значень однакового типа. Формальне визначення масиву таке: він є сукупністю однотипних індексованих змінних.

Кількість індексів, що використовуються у масиві також може бути різною. Найчастіше використовуються масиви з одним або двома індексами, рідше — з трьома, ще більша кількість індексів зустрічається украй рідко. У VB допускається використовувати до 60 індексів. Про кількість індексів масиву зазвичай говорять як про розміри масиву. Масиви з одним індексом називають одновимірними, з двома — двовимірними і так далі. Масиви з великою кількістю вимірів можуть займати дуже великі об'єми пам'яті, тому слід бути обережними в їх вживанні.

Перш ніж використовувати масив, потрібно обов'язково оголосити його за допомогою оператора Dim і вказати при цьому типи значень, що зберігаються в масиві. Всі значення в масиві зобов'язані належати до одного типа даних. Це обмеження на практиці можна обійти, використавши при оголошенні масиву тип Variant — в цьому випадку елементи масиву зможуть набувати значень різних типів. Синтаксис оператора оголошення масиву наступний:

Dim <ім'яМасиву> (<розмір1>, < розмір2>, ...) As <типДаних>,

де вказані в дужках величини < розмір1>, < розмір2> задають розміри масиву — кількість індексів і максимально допустиме значення для кожного конкретного індексу. При цьому індексування елементів масиву за умовчанням починається з нуля. Наприклад,

Dim Array1(9) As Integer ‘ визначає одновимірний масив з 10 елементів,

‘ які є змінними цілого типа

А оголошення:

Dim Array2(4, 9) As Variant ‘ визначає двовимірний масив

‘ із п’ятдесяти (5 x 10) елементів, зі змінними універсального типа variant

( Зауваження )

Як стандартне значення нижньої границі масиву (індексу) може використовуватися не лише нуль. Аби змінити це стандартне значення, потрібно скористатися оператором Option Base. Наприклад, якщо помістити в початок модуля оператора Option Base 1, то індексування елементів масивів за умовчанням починатиметься не з нуля, а з одиниці.

При оголошенні масиву можна вказати не лише верхню границю індексу, а й його нижню границю, тобто явно задати діапазон зміни конкретного індексу масиву, причому нижній може бути будь-яким цілим числом. Ось синтаксис такого визначення:

Dim < ім'яМасиву > (<мін1> То <макс1>, ...) As <типДаних>

Приклади.

Dim Sales(5) As Currency

– за умовчанням індекс починається з 0 до 5 тобто 6 – елементів: Sales(0), Sales(1)…Sales(5) типу Currency.

Dim AS(700 to 799) As Integer

– містить 100 елементів типу Integer (AS(700), AS(701), AS(702),…, AS(799))

Dim CC(4, 1 to 3) As Single

– масив 5 х 3 типа Single

Dim ZZ(3 to 23; 5 to 7) As Date

– масив 21 х 3 типу Date

Якщо збираємося працювати з масивом метеорологічних даних, що є середніми денними температурами за останні два тижні, то може виявитися зручним наступне визначення масиву:

Dim Temperature (-14 То 0) As Single

При цьому, наприклад, Temperature(-2) відповідатиме позавчорашній температурі, а для визначення потрібного індексу для дня, що цікавить, буде достатньо використовувати різницю дат.

У наведених раніше прикладах йшлося про масиви фіксованого розміру, кількість елементів в яких явно вказана під час опису масиву в операторі Dim. Такі масиви називаються статичними. У VB допускається використання і динамічних масивів, розміри яких при опису не фіксуються. Визначення розміру динамічного масиву може бути зроблене безпосередньо під час виконання програми.

При визначенні динамічного масиву в операторові Dim після імені масиву стоять лише порожні дужки і опис типа змінних. Кількість індексів і діапазон їх зміни не задається. Проте перш ніж використовувати масив, потрібно застосувати оператор ReDim, який задасть розмірність і діапазони зміни індексів динамічного масиву.

Синтаксис оголошення і визначення розмірів динамічного масиву такий:

Dim < ім'яМасиву >() As <типДаних>

ReDim < ім'яМасиву > (<розмір1>, <розмір2> ...)

От як може виглядати оголошення, визначення розмірів і використання динамічного масиву, а потім подальша зміна розмірності і розмірів цього ж масиву:

Dim dArray() As Variant

ReDim dArray(1, 2)

dArray(0, 0) = 2

dArray(0, 1) = 3

k = dArray(0, 0) + dArray(0, 1)

ReDim dArray(k)

dArray (0) = "Рядок!."

В даному прикладі масив dArray спочатку визначається як двовимірний масив з шести елементів, а потім — як одновимірний масив, причому верхня границя індексу задається значенням змінної k.

( Зауваження )

Аби визначити поточну нижню або верхню границю масиву, можна використовувати функції LBound і UBound, відповідно.

За умовчанням при зміні розмірів масиву йому заново виділяється пам'ять і поточні значення його елементів втрачаються. Аби не втратити поточні значення масиву при зміні його розмірів, використовується ключове слово Preserve.

Приклад.

Збільшити розмір масиву dArray на один елемент, не втративши значень існуючих елементів, можна таким чином:

ReDim Preserve dArray(UBound(dArray) + 1) ‘збільшити розмір масиву dArray

‘ на один елемент, де UBound(dArray) визначення найбільшого індексу

‘ існуючого масиву dArray()

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]