Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОБЩИЙ_файл_ПОСОБИЕ.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
22.69 Mб
Скачать

Питання для самодіагностики

1. Що таке користувацька процедура? Які часткові завдання можна вирішувати із застосуванням користувацьких процедур?

2. Що таке користувацька функція? Які часткові завдання можна вирішувати із застосуванням користувацьких функцій?

3. У чому складається відмінність користувацьких процедур від функцій?

4. Які правила оголошення формальних параметрів цьких процедур і функцій?

5. Який зв'язок формальних і фактичних параметрів у процедурах і функціях?

6. Який порядок використання користувацьких процедур і функцій?

7. Як зберігаються користувацькі функції в документах, створених у додатку MS Excel?

8. Як зберігаються користувацькі процедури, створені в додатку MS Excel?

9. Як зберігаються користувацькі процедури й функції, створені в додатку MS Word?

5.6. Проектування додатків із застосуванням масивів даних

і масивів елементів управління для вирішення економічних задач

Теоретичні відомості

У мовах об’єктно-орієнтованого й візуального програмування, до яких відносяться Visual Basic і Visual Basic for Applications, широко використовуються такі поняття, як масиви змінних і масиви елементів управління.

Масиви даних

Масив даних – це пойменований упорядкований набір елементів одного типу. Наприклад, це може бути набір найменувань товарів або їх цін.

Кожний елемент масиву має свій номер (індекс). Причому таких індексів може бути декілька. Кількість індексів визначає розмірність масиву. Бувають масиви одновимірні (вектори) – A(m), двомірні (матриці) – A(m,n), тривимірні – A(m,n,k) і т.д. Кожний індекс може приймати цілочисельні значення з певного діапазону. Мінімальне й максимальне значення кожного діапазону називається граничною парою Nmin і Nmax. Розмір масиву – це кількість елементів масиву (наприклад, для двовимірного – m × n).

Кількість різних значень індексу визначає кількість k елементів у масиві – це розмір масиву. Так, для одномірного масиву:

k= Nmax – Nmin+1.

Якщо масив багатомірний, то кількість елементів у ньому визначається добутком кількості значень ki по кожному i-му індексу.

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

В VB і VBA масиви можуть бути:

а) статичними – розмірність і розмір масивів визначається на початку програмного коду й не міняється надалі;

б) динамічними – розмірність і розмір масивів можуть багаторазово змінюватися по тексту програми.

Оголошення статичних масивів

Одномірний масив оголошується в такий спосіб:

Dim <Ім‘яМасива>(Nmax) As <ТипЭлементів>.

При цьому за замовчуванням система формує Nmin=0, тобто нумерація індексів починається з нуля. Якщо потрібно, щоб початкове значення індексу рівнялося 1, то перед першою процедурою необхідно використовувати оператор Option Base 1. Якщо буде потреба при оголошенні масиву, може бути зазначений діапазон зміни індексів:

Dim <Ім‘яМасива>(Nmin To Nmax) As < ТипЭлементів >.

Наприклад, якщо передбачається, що масив буде містити ціни 10 товарів, то можливі такі способи оголошення цього масиву:

1. Dim CurZіna(9) As Currency.

2. Dim CurZіna(1 To 10) As Currency.

3. Option Base 1

Dim CurZіna(10) As Currency.

При оголошенні багатомірного масиву діапазони зміни кожного індексу відділяються один від одного комами:

Dim <Ім‘яМасива>(Kmax, Lmax, Mmin To Mmax,…)As< ТипЭлементів >.

Наприклад, якщо потрібно представити ціни десяти товарів за щомісяця другого кварталу (місяці з 4 по 6 включно), те оголосити такий масив можна таким оператором:

Option Base 1

Dim СurZіna1(10, 4 То 6) As Currency.

При оголошенні масиву строкових даних необхідно через знак "*" вказувати очікувану максимальну кількість символів у цих даних. Наприклад, якщо передбачається, що в масиві найменувань 10 товарів буде втримуватися не більше 20 символів для кожного товару, то такий масив повинен бути оголошений у такий спосіб:

Option Base 1

Dim StrNaimTov(10) As String*20.

Доступ до елемента масиву здійснюється за допомогою імені масиву й індексу. При цьому кожний індекс повинен мати цілочисельне значення або представлятися у вигляді виразу, що дає ціле значення.

Дані, які містяться в масивах, можуть використовуватися для виконання різних обчислень, змінюватися відповідно до умов розв'язування задачі й перетворюватися, тобто використовуватися в різних процедурах вирішення часткових задач. У зв'язку цим такі масиви необхідно декларувати як глобальні змінні (порядок оголошення глобальних змінних розглянуто в підрозділі 5.2).

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

У випадку використання набору простих змінних, а не масиву даних для обробки кожної змінної потрібно в коді вказати групу операторів, і таких груп буде стільки, скільки змінних у наборі.

У зв'язку з тим, що кількість елементів у масиві відома, для читання даних з масивів доцільно їх обробку й записи в масиві виконувати за допомогою циклу з лічильником (такій цикл часто називають циклом з параметром).

В VB і VBA синтаксис циклу з параметром має такий вигляд:

For <Ім'яЛічильника> = <ПочЗначення> To <КінЗначення> [Step <Крок зміни лічильника>]

<Оператори тіла циклу> Next [<Ім'яЛічильника>]

<Оператори після циклу>,

де <Ім'яЛічильника> – змінна цілого типу;

<ПочЗначення>, <КінЗначення>, <Крок зміни лічильника> – вираз того ж типу, що і лічильник;

[ ] - необов'язкові елементи.

Якщо передбачається, що крок зміни лічильника дорівнює +1, то конструкція Step може не використовуватися.

В операторах тіла циклу можуть використовуватися елементи масивів, індекси яких відповідають значенням лічильника.

У випадках, коли за результатами деяких перевірок потрібно організувати вихід із циклу з лічильником, може бути застосовано оператор Exit For.

Приклад застосування циклу з лічильником (з параметром) подана нижче при розгляді прикладу обробки масивів даних.