Робота з масивами

Масиви - один з головних засобів зберігання в пам'яті комп'ютера великих об'ємів інформації.

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

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

Сортування - це процес впорядковування елементів масиву. Дуже популярна і поширена задача програмування.

1.2. Змінні з індексами

У основі масивів лежить поняття індексу. У математиці широко застосовуються так звані індексовані змінні. На папері вони записуються так:

x1 x2 b8 yi yi-6 z i j

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

X(1) X(2) B(8) У(i) У(i-6) Z(i,j)

Числа Фібоначчі.Навіщо математикам потрібні індексовані змінні? Ну, їх зручно застосовувати хоча б при операціях над числовими рядами. Числовий ряд - це просто декілька чисел, збудованих по порядку одне за іншим. Чисел в ряду може бути багато і навіть нескінченно багато.Візьмемо, наприклад, нескінченний ряд чисел Фібоначчі:

1 1 2 3 5 8 13 21 34 .....

Кожне з чисел, починаючи з третього, є сумою двох попередніх. А зараз спробуємо записати це твердження за допомогою мови математики. Для цього позначимо кожне з чисел Фібоначчі індексованої змінної таким чином:

Перше число Фібоначчі позначимо так: f(1),

Друге число Фібоначчі позначимо так: f(2) і т.д.

Тоді можна записати, що

f(1)=1 f(2)=1 f(3)=2 f(4)=3 f(5)=5 f(6)=8 ......

Очевидно, що

f(3)=f(1)+f(2),

f(4)=f(2)+f(3),

f(5)=f(3)+f(4) і т.д.

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

f(i)=f(i-2)+f(i-1).

Для пояснення цієї формули підставимо замість i будь-яке число, наприклад, 6. Тоді вийде:

f(6)=f(6-2)+f(6-1)

або спрощуючи:

f(6)=f(4)+f(5),

що відповідає визначенню чисел Фібоначчі.

Яке б i, більше 2, ми не підставляли, виходить правильна рівність. Значить, формула вірна сама по собі.

1.3. Одномірні масиви

Одна з типових задач програмування формулюється приблизно так. Є велика кількість даних, наприклад, тих же температур або висот. З цими даними комп'ютер повинен що-небудь зробити, наприклад, обчислити середньорічну температуру, кількість морозних днів, максимальну узяту висоту і т.п. Раніше ми вже обчислювали подібні речі, і при цьому дані вводили в комп'ютер з клавіатури одне за іншим. При цьому завжди виходило, що вони вводяться в один і той же елемент пам'яті. Проте, практика програміста показує, що зручне, а часто і необхідно мати дані в оперативній пам'яті відразу все, а не по черзі. Тоді для задачі, скажімо, про температуру нам знадобиться 365 осередків. Ці 365 осередків ми і назвемо масивом. Отже, масивом можна назвати ряд елементів пам'яті, відведених для зберігання значень індексованої змінної. На питання про те, як велика кількість значень опиняється в пам'яті, відповімо, що звичайно вони вводяться з файлу.

 

1.4. Основи роботи з одновимірними масивами

Приклад. Розглянемо на прикладі простої задачі, як VB управляється з масивами. Припустимо, в зоопарку живуть три удави. Відома довжина кожного удава в сантиметрах (500, 400 і 600). Яка довжина вийде у трьох удавів, витягнутих в лінію?

Позначимо довжину першого удава - dlina(1), другого - dlina(2), третього - dlina(3). Накажемо VB відвести під цю індексовану змінну масив осередків в пам'яті. Робиться це так: