Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Набір таблиць даних



це послідовність таблиць даних з однаковим числом рядків і стовпців.

У першому випадку для збереження даних використовується двовимірний масив, у другому — тривимірний. Використовуються, але вкрай рідко, масиви і більшої розмірності. (У принципі в мові Visual Basic можна використовувати масиви аж до 60-мірних! Звичайну змінну (без індексу) теж можна вважати масивом, що має нульову розмірність.) Їх ми розглядати не будемо.

Проголошуються багатовимірні масиви аналогічно тому, як проголошуються одновимірні масиви. Єдина відмінність — не один, а кілька діапазонів значень індексів, що записуються через кому в дужках після імені масиву.

Приклад 2.7. Код 2.11 демонструє оголошення двох масивів — двовимірного і тривимірного.

Код 2.11
Dim МасивА(1 TO 100, -5 TO 4) ' - проголошення двовимірного масиву ' десяткових чисел подвійної точності, ' кількість чисел <= 1000 Dim МасивБ(19, 49, 99) As Strsng * 10 ' - проголошення тривимірного масиву ' рядків фіксованої довжини, ' кількість рядків <= 100000.

Для розв'язання задачі з прикладу 2.7 можна запропонувати кілька варіантів багатовимірних масивів.

Можна, наприклад, розглянути 3 двовимірних масиви для трьох таблиць, що містять оцінки студентів кожної з трьох груп (кожен рядок таблиці — це оцінки одного студента даної групи, а кожен стовпець — оцінки з одного предмету в даній групі).

Табл.2.2 Оцінки студентів
Предмет Предмет 1 Предмет 2 Предмет 3 Предмет 4 Предмет 5
ФИО
Андрєєва К.И.          
Бородін Д.П.          
Вороніна Л.Ф.          
... ... ... ... ... ...
Яковлєв М.А          

Сумарна кількість рядків у всіх трьох таблицях дорівнює 70 (25 + 25 + 30), а кількість значень оцінок дорівнює 350.

Замість трьох двовимірних можна запропонувати всього один тривимірний масив для набору розглянутих таблиць. При цьому сумарна кількість осередків цих таблиць може виявитися більше загальної кількості оцінок. (У даному випадку, наприклад, кількість осередків дорівнюватиме 450 — на 100 більше, ніж кількість оцінок.)

Приклад 2.8. За допомогою поняття двовимірного масиву запрограмуємо розв'язання задачі, аналогічної до тих, що перераховані в прикладі 2.7. Задача ця така:

Знайти серед студентів першої групи такого, котрий має максимальну середню оцінку зі всіх зданих іспитів.

Р о з в' я з о к. Насамперед оголосимо цей масив (код 2.12):

Код 2.12

Привласнювати значення елементам оголошеного масиву не будемо — будемо виходити з того, що він уже заповнений.

Код 2.13

У результаті роботи цієї програми буде знайдений індекс першого за списком Студента, у якого максимальна середня оцінка (значення змінної ІндексМакс). Нам же потрібно знайти більш повне рішення цієї задачі — вивести прізвища (a не індекси) всіх студентів, у яких максимальна середня оцінка. Адже відмінниць і відмінників може бути небагато в одній групі!

Очевидно, що для зазначеного уточнення рішення задачі нам буде потрібно ще один масив, — цього разу, одномірний: ПрізвищеСтудента(ІндексСтудента). Оголошення і заповнення цього масиву розглядати не будемо, а відразу напишемо продовження нашої програми (код 2.14).

Код 2.14

Коди 2.13 і 2.14 утворять загальну програму, що і вирішить нашу задачу. Однак впадає в око явний недолік такої «склеєної» з двох частин програми — для кожного Студента його середній бал обчислюється двічі! Подумайте самі, як можна уникнути дублювання обчислень.
Вказівка: Використайте ще один одномірний масив — середніх оцінок студентів даної групи. Цей масив варто заповнити при першому перегляді масиву оцінок — у процесі роботи першої частини програми.

Нові поняття:

багатовимірний масив, двовимірний масив, таблиця, тривимірний масив, набір таблиць.

Питання для роздумів

1. Який обсяг пам'яті в байтах буде відведений трьом двовимірним масивам Оцінка(ІндексСтудента, ІндексПредмета) для даних, приведених у прикладі 2.6? (Тип масиву Integer).

2. Як Ви думаєте, чи можна істотно зменшити цей обсяг пам'яті?
Підказка: Змініть тип масиву.

3. А якими будуть відповіді на два попередніх запитання, якщо замість трьох двовимірних скористатися одним тривимірним масивом? (Число студентів у кожній групі наведено у прикладі 2.6.)

Вправи

1. Спроектуйте додаток, за допомогою якого тестується програма, представлена кодами 2.13 і 2.14. Щоб заповнення двовимірного масиву не стало при цьому великою проблемою, уменшіть верхні границі індексів, наприклад, до 3.

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





Дата публикования: 2014-12-28; Прочитано: 156 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...