Масиви h2>
Іноді
буває так потрібні десятка два змінних і, якщо б не масив, пріщлось б
писати p>
Dim A As Integer p>
Dim B As Integer p>
....... p>
....... p>
....... p>
Dim X As Integer p>
Dim Y As Integer p>
Але
немає! Для цього є масиви! Але для того, щоб його використовувати сначало треба
його оголосити, наприклад: p>
Dim
A (20) As Integer p>
Це
рівносильно двадцяти змінним! Але по-моєму так зручніше:)? Тобто цим ми
виділили двадцять комірок пам'яті. p>
Масив
являє собою набір значень, пов'язаних з одним ім'ям. Масиви бувають
одновимірними (список значення), двовимірними (таблиця значень), але при
необхідності роботи зі складними математичними моделями, наприклад,
тривимірними фігурами, Ви можете задати і більшу кількість вимірів масиву.
Масиви можуть бути так само динамічний, тобто не містити певний
кількість осередків. Декларуються вони так: p>
Dim
ABC () As ... тобто в дужках нічого не вказується p>
Щоб
встановити розмірність масиву потрібно використовувати ключове слово ReDim, яке
перерозподіляє масив, стираючи старі осередки. p>
Якщо
Вам потрібно перерозподілити масив, залишивши старі осередки треба використовувати
ключове слово Preserve. p>
Наприклад,
у Вас є вісім чисел і для кожного потрібна змінна. Якщо вони однакового
типу, то можна створити масив і привласнити ці значення (
див. примітки
):
p>
Dim ABC (8) As Integer p>
ABC (0) = 123 p>
ABC (1) = 5 p>
ABC (2) = 87 p>
ABC (3) = 4 p>
ABC (4) = 99 p>
ABC (5) = 43 p>
ABC (6)
= 7 p>
ABC (7)
= 21 p>
ABC (8)
= 11 p>
Цей
масив графічно можна представити так: p>
Осередок p>
0 p>
1 p>
2 p>
3 p>
4 p>
5 p>
6 p>
7 p>
8 p>
Значення p>
123 p>
5 p>
87 p>
4 p>
99 p>
43 p>
7 p>
21 p>
11 p>
Припустимо,
що Ви пишете програму, яка створює палітри і вона повинна запитати
кількість квітів, які вона повинна змішати і які (Ви тільки сильно не
радійте наступний приклад нічого заважати не буде, він тільки запросить кольору
;-)): P>
Sub
Main () p>
Dim
MyArray () As Stringоб'являем масив, що містить кольори p>
Dim
x As Integer оголошуємо змінну,
що містить кількість квітів p>
Dim
y As Integer оголошуємо
змінну-лічильник p>
Dim
Msg As String оголошуємо змінну,
що містить всі назви квітів p>
x
= InputBox ( "Введіть число квітів") отримуємо кількість квітів p>
перерозподіляємо
в масиві стільки клітинок, скільки кольорів ми отримали p>
ReDim
MyArray (x) p>
запускаємо
цикл, який повинен повторитися стільки разів скільки всього p>
квітів
p>
For
y = 1 To x p>
прісваеваем кожному осередку колір p>
MyArray (y) = InputBox ( "Ведіть колір
номер "& y) p>
Next
p>
запускаємо
цикл, який збирає всі кольори в одну змінну p>
For
y = 1 To x p>
тепер ми витягуємо всі значення p>
Msg = Msg + MyArray (y) + Chr (13) + Chr (10) p>
Next
p>
MsgBox
Msg виводимо всі кольори, які ввели p>
End
Sub p>
Тут
начебто все просто! Тепер двовимірний масив. Але не лякайтеся, тут не менше
просто, тільки з незвички можна трохи заплутатися :-). p>
Декларуються
вони так: p>
Dim
ABC (1, 8) As String p>
Це
виходить така собі таблиця: два відділення на десять. Приблизно так: p>
0 p>
1 p>
2 p>
3 p>
4 p>
5 p>
6 p>
7 p>
8 p>
0 p>
червоний p>
помаранчевий p>
жовтий p>
зелений p>
блакитний p>
синій p>
фіолетовий p>
бірюзовий p>
пурпурний p>
1 p>
коричневий p>
сірий p>
чорний p>
білий p>
рожевий p>
ліловий p>
вишневий p>
прозорий p>
матовий p>
І
все це привласнити таким чином: p>
ABC (0,
0) = "червоний" p>
ABC (0,
1) = "помаранчевий" p>
ABC (0,
2) = "жовтий" p>
і
т.д. Ну, дуже нагадує систему координат! А щоб викликати, наприклад, ліловий
потрібно написати так: p>
Color
= ABC (1, 5) змінної color прісваеваем рядок "пурпурний" p>
тривимірну
накреслити таблицю я не зможу, але думаю, що і там все зрозуміло. Оголошується він,
наприклад так: p>
Dim
ABC (10, 4, 7) p>
Таким
чином вже создется як би геометричний прямокутник довжиною 10, шириною - 4
і висотою - 7. Всього всередині 440 осередків (11 * 5 * 8). p>
Примітка: Ви повинні пам'ятати, що оголошуючи масив з, наприклад,
трьома осередками, в дужках Ви повинні писати 2, p>
Dim
ABC (2) As Variant p>
тому
Ідекс осередків починається з нуля: 0, 1, 2 - в сумі виходить три. Якщо в дужках
виявиться цифра три, то осередків буде чотири: 0, 1, 2, 3. Якщо Вам здається це
незручним, то рядком (в самому верху форми або модуля): p>
Option
Base 1 p>
Ви
як би зрушимо масив вгору на один, і нижньою межею стане не 0, а 1. Також
є інший спосіб: p>
Dim
ABC (1 To 2) p>
Результат
однаковий! p>
Список літератури h2>
Для
підготовки даної роботи були використані матеріали з сайту http://visualprogs.narod.ru/
p>