
- •Дані як основа, з якою працює програмне забезпечення. Модифікація даних. Вимоги до даних в частині швидкості пошуку та модифікації. Навести приклади із баз даних різного призначення.
- •Структура даних мови Object Pascal, коротка характеристика складених типів даних, приклади використання.
- •Масиви статичні та динамічні, переваги та недоліки. Використання масивів для організації роботи з даними. Заповнення масивів з файлу.
- •Формування типізованого файлу на базі таблиці Excel. Приклад програми.
- •Масиви статичні та динамічні. Додавання, видалення та модифікація даних (робота із даними). Приклад програмного коду.
- •Стек: призначення, приклади, застосування. Організація та робота стеку на базі масиву. Приклад програмного коду.
- •Черга: призначення, приклади , застосування. Організація та робота черги на базі масиву. Приклад програмного коду.
- •Пошук даних в масиві. Послідовний та бінарний методи пошуку. Переваги та недоліки. Приклад програмного коду.
- •Сортування масивів на місці, прості та складні алгоритми сортування. Приклад програмного коду (але не бульбашкою).
- •Сортування масивів на місці, метод вставок.
- •Сортування масивів на місці, метод простого вибору.
- •Сортування масивів на місці, метод Shaker (одночасний пошук мінімального та максимального елементів.
- •Динамічний список: призначення, організація, формування, ініціалізація, наприклад з файлу. Переваги та недоліки порівняно з масивами. Приклад програмного коду.
- •Лінійний динамічний список: додавання, видалення та модифікація даних (робота з даними, порівняти із масивами). Приклад програмного коду.
- •Кільцевий динамічний список: переваги та недоліки порівняно з лінійним. Додавання, видалення та модифікація даних (робота із даними). Порівняти з лінійним. Приклад програмного коду.
- •Сортування даних у динамічних списках по одному та декільком полях. Приклад програмного коду.
- •Стек: призначення, приклади , застосування. Організація стеку за допомогою лінійного динамічного списку. Приклад програмного коду.
- •Включення/забирання елемента до/з стеку. Приклад програмного коду.
- •Включення/забирання елемента до/з черги. Приклад програмного коду.
- •Черга: призначення, приклади застосування. Організація черги за допомогою лінійного динамічного списку. Приклад програмного коду.
- •Формування черги: принципи вставки заявок у чергу, використання приоритетів при формування черги. Позачерговий пріоритет (0).
- •Визначення характеристик черги: середня довжина черги, середній час виконання заявки.
- •Наведіть алгоритми додавання (insert) заявки у чергу.
- •Наведіть алгоритми обслуговування (service) заявки у черзі.
- •Робота із плоским файлом. Додавання, видалення та модифікація даних (робота із даними). Файли переповнення. Порівняти з масивами та списками. Приклад програмного коду.
- •Пошук даних у плоских файлах (послідовний та бінарний). Сортування файлів по одному та декільком полям. Приклад програмного коду.
- •Пошук даних у плоских декількох логічно зв’язаних файлах. Приклад програмного коду.
- •Індексні файли: призначення, створення та використання. Переваги та недоліки. Приклад програмного коду.
- •Сторінкова організація файлу: переваги та недоліки порівняно з плоским файлом. Файли переповнення.
- •Індексна організація файлу. Одно- та багаторівнева індексація. Переваги та недоліки порівняно з плоским файлом. Ознаки необхідності реорганізації файлу. Навести схему з поясненнями.
- •Динамічна організація при сторінковій організації файлу, організація файлів переповнення. Навести схему з поясненнями.
- •Файли прямого доступу. Визначення адрес в залежності від значення даних. Функції хешування. Файл переповнення. Загальні алгоритми.
- •Функції хешування: алгоритми ділення, складання.
- •Функції хешування: алгоритми зсуву розрядів, .
- •Функції хешування: алгоритми ділення, .
- •Колізії при хешуванні, шляхи (декілько) розв’язання цих проблем.
- •Дерева: загальна характеристика, структура вузла, приклади використання.
- •Бінарні дерева пошуку: приклади призначення, структура вузла, алгоритм формування.
- •Бінарні ідеально сбалансовані дерева: приклади призначення, структура вузла, алгоритм формування.
Сторінкова організація файлу: переваги та недоліки порівняно з плоским файлом. Файли переповнення.
Строрінкова організація файлу
Файл розбивається на сторінки, кожна з яких містить 100 елементів,
кожний елемент заповнюється граничним значенням -1
генерується масив випадкових чисел без повторень
отримані числа записуються у відповідну сторінку файлу згідно їх значень
у випадку, якщо сторінка вже повністю заповнена, елемент записується у
файл переповнення
Пошук елементу у файлі відбувається таким чином: спочатку знаходиться
сторінка, де він повинен бути розташован, після чого на сторінці шукаємо
його значення послідовним методом, якщо значення не знайдено,
проводимо пошук у файлі переповнення теж послідовним методом
Числа -1 в основному файлі після його заповнення означають, що ці місця
не були використані.
Індексна організація файлу. Одно- та багаторівнева індексація. Переваги та недоліки порівняно з плоским файлом. Ознаки необхідності реорганізації файлу. Навести схему з поясненнями.
Індексно-послідовні файли, це такі файли, коли для основного файлу створюється ще додатковий файл, який містить значення поля (сукупності полів), що індексуються, і покажчика на адресу, де знаходиться запис в основному файлі. Приклади індексації як по одному полю, так і по декільком полям наводилися на лекціях раніше, тому вони тут не розглядаються. Нагадаємо тільки, що при індексації індексний файл завжди є упорядкованим з послідовною організацією і пошук по ньому здійснюється описаними вище методами. Оскільки індексний файл набагато менший за основний, то і пошук здійснюється набагато швидше. При цьому треба ще враховувати, що зчитування з зовнішньої пам’яті здійснюється блоками (сторінками), то може так трапитися, що увесь індексний файл одразу розміститься в оперативній пам’яті.
Багаторівнева індексація
У тих випадках, коли індексний файл стає великим за обсягом, встають ті ж самі проблеми, що і при використанні послідовних файлів. В таких випадках індексний файл індексують як послідовний файл. Такий файл по відношенню до основного завжди буде мати нещільні індекси.
При багаторівневій індексації використовується ієрархічність побудови зовнішньої пам’яті ЕОМ : блоки циліндрів, циліндри, доріжки. Так, у при організації індексних файлів типу ISAM (Indexed Storage Access Method), що були запропоновані фірмою IBM для мейнфреймів, використовуються така ієрархія індексів
Головний індекс або індекс областей циліндрів;
Індекс циліндрів; та Індекс доріжок.
Динамічна організація при сторінковій організації файлу, організація файлів переповнення. Навести схему з поясненнями.
Одноуровняя индексация.
Разделение на логические страницы: Допустим есть N=100 елементов, количество страниц определяеться по формуле N/M =10, где М – кол-во елементов на странице.
Каждая запись распределяеться по ключу, 1..1000.
Создаем 3 масива: масив ключей и масив елементов b vfrcbvfkmys[ rk.xtq:
Mas1[] = 100,200,300,400,500,600,700,800,900;
Mas2[] = 1 ,1,1,1,1,1,1,1,1,1;
Mas3[] = 0,10,20,30,40,50,60,70,80,90;
Определение страницы
While i=1 mas1[i]<= key then inc(i)
i->3
if Mas2[i] <= 10 then begin
seek(Ft,Mas3[i]);
write(Ft,element)
inc(Mas3[i]);
inc(Mas2[i]); end;
else write(Ft,extra)
Файл автоматичестки отсортируеться по блокам.