Уроки, Туторіали, Мануали з усього світу! Перегляд теми - Visual Basic - Масиви, записи та

На цьому форумі буде величезна кількість уроків і мануалів, зробіть невеликий внесок, і опублікуйте хоча б один урок.
Cьогодні: 21-04, 04:33

Часовий пояс: UTC + 3 години

Visual Basic - Масиви, записи та перерахування

Сторінка1 із1[ 1 повідомлення ]
Версія для друкуПопер. тема Слід. тема
Автор Повідомлення
Turbo-Dizel
Адміністратор
мануали
Зареєстрований:13-12, 03:24Повідомлення:89Звідки:Українос!

На попередньому уроці ми розглянули з вами таку важливу річ як змінні. А змінні - це ж шматочки пам'яті, де зберігаються дані. Значить, якщо ефективно використовувати змінні – ми ефективно використовуємо пам'ять. А якщо ми ефективно використовуємо пам'ять - то пам'яті для програми потрібно менше і програма працює швидше. Так ось для того, щоб ці дані використовувати з максимальною ефективністю, і в той же час з легкістю, були придумані масиви (Arrays), записи (Types) і перерахування (Enums).

Массиви

Їх ще називають списками. Отже, що ж таке масиви? Масив (вектор) - це набір однотипних змінних, об'єднаних одним ім'ям і доступних через це ім'я та порядковий номер змінної набору. Кількість елементів масиву теоретично може бути нескінченною, обмеження накладаються конкретними мовою програмування та операційною системою. Елементи масиву мають безперервну нумерацію певногодіапазону.

У програмуванні масиви використовуються досить часто. Наприклад, вам потрібно завантажити в програму вміст файлу. Якщо цей рядковий файл, то можна використовувати рядок і обійтися без масиву. А от якщо файл бінарний (двійковий), то тут без масиву просто не обійтися!

У Visual Basic масиви визначаються так:

Як ви могли помітити, визначення масиву відрізняється від визначення звичайної змінної лише індексом, вказаним у дужках. Цей індекс вказує розмірність масиву. У даному випадку масив myArray міститиме 11 елементів. Чому 11? Тому що нижня межа масиву починається з нуля. [0,1,2. 9,10]. Щоб задати певну розмірність, можна використовувати зарезервоване слово To:

Тут визначається масив, розмірність якого 6 елементів (5,6,7,8,9,10).

Загальний синтаксис визначення масиву наступний:

Багатомірні масиви

Масиви можна робити багатовимірними. Наприклад, оголосимо масив - таблицю поля шахівниці:

Цей масив є таблицею з восьми осередками по вертикалі і горизонталі.

Отже, масив визначено. Тепер необхідно дізнатися - як можна дістатися елементів цього масиву. Дуже просто! До елементів масиву слід звертатися за індексом, наприклад, щоб змінити нульовий елемент масиву myArray потрібно написати:

Массиви змінної розмірності (динамічні)

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

Але це якщо файл має довжину 120 байт. А що робити, якщо ми не знаємо довжину файлу, що завантажується? Визначати дуже великий масив, щоб напевно туди міг поміститися великий файл? Ні. Так робити не можна. Ось тут і потрібно використовувати динамічний масив.

Visual Basic надає досить потужні засоби роботи з такими масивами. Виділяється такий масив наступним чином:

Тепер масив myArray має одну розмірність з індексами від 0 до 4 (тобто всього 5 елементів). Тепер до такого масиву можна звертатися так само, як і до статичного. Якщо надалі виникне потреба знову змінити розмір масиву, можна знову використовувати ReDim.

Але! Тут є підводний камінь! Давайте розглянемо маленький приклад:

Dim myLong As Long Dim myArray() As Long 'оголошуємо масив

ReDim myArray (2) ' одна розмірність [0,1,2] myArray (1) = 234 ' привласнюємо другому елементу чило 234 myLong = myArray (1) ' зберігаємо його в змінній myLong

ReDim myArray (3) ' знову змінюємо розмірність-тепер [0,1,2,3] myLong = myArray (1) ' знову намагаємося зберегти другий елемент

На останньому рядку змінної myLong присвоиться 0 замість 234! Це відбувається тому, що оператор ReDim заново ініціалізує (скидає) всі елементи масиву до значення за умовчанням (як пам'ятаєте, для чисел - це 0, для рядків ""). Але як бути, якщо ми хочемо змінити розміри масиву, зберігши всі старі елементи? Для цього потрібно після оператора ReDim встановити слово Preserve. Приблизно так:

Тепер все у порядку.

Корисні поради щодо роботи з масивами в VB

Масиви можуть зберігатися у змінних типу Variant. Іноді це зручно. У деяких випадках без цього простоне обійтись! (Наприклад, коли хочете, щоб ваша функція повертала масив). Щоб зберегти якийсь масив у змінній типу Variant необхідно просто привласнити цій змінній потрібний масив:

Зверніть увагу, жодних індексів вказувати не потрібно!

Тепер можна використовувати копію як звичайний масив:

Ті, хто програмував іншими мовами програмування (таких як C і Pascal), напевно стикалися з поняттям структура (C), і записом (Record у паскалі). У Visual Basic аналогом структури є запис. Запис - це новий, випереджуваний програмістом тип даних, що складається з однієї і більше змінних усередині. Давайте розглянемо це з прикладу. Наприклад, необхідно у програмі зберігати масив студентів. Причому кожен студент має свої характеристики: ПІБ, Вік, Ніличність Грамот. Звичайно, для зберігання таких даних можна використовувати, наприклад масив, що має дві розмірності. Але це не найкращий варіант. Найкраще тут підходять Записи! Потім із запису можна буде зробити масив! Щоб визначити запис у програмі, потрібно використовувати зарезервоване слово Type. Закінчується запис словами End

Private Type Student 'замість Private могло бути і Public &nbspFIO As String &nbspAge As Byte &nbspHasGramot As Boolean End Type

Зауважте, що Dim перед ім'ям змінної вказувати не потрібно. Отже, ми визначили запис у програмі. Тепер можна оголошувати змінні, що має тип - Student (тобто наш новий запис). Наприклад:

Слово Student синім виділятися нічого очікувати, т.к. синє підсвічування мають лише зарезервовані слова, вбудовані в Visual Basic

Тепер, до полів запису можна звертатися за допомогою точки:

Все як у паскалі. (ну, і майже як С).

Visual Basicдозволяє не вказувати щоразу ім'я змінної типу запис, при зверненні до її елементам. Це особливо корисно, коли запис має багато внутрішніх членів. Для цього є слово With:

Настав час оголосити масив елементів типу запис (точніше типу Student):

Тут ми оголосили масив із 21 студента. Тепер можна звертатися до елементів масиву так само, як ми це робили раніше:

Як бачите все геніальне! Особливо у Visual Basic!

Перерахування

Перерахування теж досить важлива та потрібна штука. В принципі ви з ними вже зустрічалися. Де? А згадайте, що відбувалося, коли ви навпроти Boolean змінної ставили знак рівності? Правильно, Visual Basic видавав вам список із двох значень на вибір – True та False. Це і є перерахування. Тобто перерахування - це перелік констант. Перед використанням такого списку його потрібно визначити у програмі. Наприклад, розглянемо перерахування оцінок, які отримують студенти:

Надавати значення константам усередині Enum не обов'язково. Якщо цього зробити, то константи прийматимуть значення 0,1,2. і т.д.

Тепер можна оголосити змінну типу Ocenka:

І, якщо ви тепер спробуєте привласнити таку змінну значення - Visual Basic видасть список (Neud, Horosho і Otlichno) з якого ви зможете вибрати потрібне значення. Також ці константи можна використовувати, наприклад, під час перевірки умов, тобто. If oc1 = Horosho Then. Але про умови пізніше.

Щоб закріпити отримані знання, давайте перевизначимо наш запис Student на який:

Тепер, щоб присвоїти оцінку 5 за матаналізом студента під номером 3, необхідно написати:

Примітка: Ті, хто програмував на паскалі, пам'ятають про безліч. Так ось,можу їх засмутити, множин у Visual Basic немає. Але в принципі ніхто не заважає вам реалізувати їх самостійно, написавши відповідні функції.

Повернутися до початку
Сторінка1 із1[ 1 повідомлення ]

Часовий пояс: UTC + 3 години

Хто зараз на конференції

Зараз цей форум переглядають: немає зареєстрованих користувачів та гості: 0