- •Алгоритми. Алгоритмічна мова
- •1. Алгоритм і його властивості
- •2. Поняття алгоритму
- •3. Схеми алгоритмів
- •4. Графічне зображення різних видів обчислювальних процесів
- •4.1. Графічне зображення лінійних обчислювальних процесів
- •4.2. Графічне зображення розгалужених обчислювальних процесів
- •4.3. Графічне зображення циклічних обчислювальних процесів
- •1. Теоретичні питання
- •2. Тести
- •Контрольні завдання по темі
- •Програма – це:
- •3. Практичні завдання
- •Створення макросів для автоматизації дій, які найбільш часто використовуються (практичне заняття)
- •1. Створення та управління макросами першої групи
- •Запис макросу
- •Зміна макросу
- •Перегляд і зміна макросів
- •Управління макросами
- •Безпека макросів
- •2. Способи виконання макросу
- •Запуск макросу на виконання в Microsoft Excel
- •Запуск макросу на виконання з редактору Visual Basic
- •Контрольні завдання по темі
- •1. Теоретичні питання
- •2. Практичні завдання
- •Основні елементи мови Visual Basic
- •1.Організація програми на мові vb для Excel
- •2. Створення і вживання процедур
- •4. Типи даних
- •5. Зона дії змінних і процедур
- •5.1. Визначення зони дії змінних
- •5.2. Схема видимості змінних відповідно до об'єктно-орієнтованої моделі контейнерів
- •5.3. Зони дії процедур і функцій
- •6. Масиви
- •7. Константи
- •8. Перетворення типів
- •Контрольні завдання по темі
- •1. Теоретичні питання
- •2. Тести
- •Оператори привласнення і вбудовані функції
- •1.Оператори привласнення
- •2. Оператори коментарів
- •3. Оголошення і привласнення об'єктних змінних
- •4. Операції vb
- •5. Використання функцій vb
- •6. Строкові функції
- •7.Функції дати і часу
- •Контрольні завдання по темі
- •1. Теоретичні питання
- •2. Тести
- •3. Практичні завдання
- •Література
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()
