Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Відповіді до іспиту по СОД.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
191.49 Кб
Скачать
  1. Наведіть алгоритми додавання (insert) заявки у чергу.

Смотри 20 вопрос

  1. Наведіть алгоритми обслуговування (service) заявки у черзі.

Смотри 20 вопрос

  1. Плоскі” файли, призначення, організація на диску. Приклад зберігання таблиці у типізованому файлі (навести програмний код).

Файл – це така іменована структура даних на зовнішній пам’яті, яка складається із записів певного типу. Плоским файлом називають такий файл, структура усіх записів якого є постійною. Запис може складатися із полів та/або із агрегатів полів. Так, в мовах програмування Паскаль и Си агрегати даних можна визначати такою структурною композицією як запис (record), яка складається з кількох полів не обов’язково одного типу. Іменована сукупність файлів, між записами яких існують асоціативні зв’язки, називається базою даних. В сучасних базах даних полю відповідає атрибут таблиці. Він має ім’я та характеризується формою представлення даних, яка відповідаю типу даних атрибута.

Прийнято виділяти три типи файлової організації даних:

  • Послідовні файли (ПФ);

  • Індексно-послідовні файли (ІПФ);

  • Файли прямого (довільного) доступу (ФПД або ФДД).

Відповідно розрізняють такі моделі внутрішньої організації даних: послідовна для ПФ; індексно послідовна, індексно довільна та інвертовані списки для ІПФ; за допомогою хешування.

Прийнято виділяти два критерія ефективності файлової організації даних: ефективність доступу та ефективність зберігання. Ефективність доступу – величина, що є зворотною числу фізичних звернень до зовнішньої пам’яті. Ефективність зберігання – величина, що є зворотною числу середній кількості одиниць пам’яті, яка потрібна для зберігання одиниці логічної одиниці структури даних.

  1. Робота із плоским файлом. Додавання, видалення та модифікація даних (робота із даними). Файли переповнення. Порівняти з масивами та списками. Приклад програмного коду.

У плоскому файлі, як правило зберігається по одному запису у кожному рядку.

Поля повинні мати фіксовану ширину або розділені знаками табуляції, білими символами, комами (CSV) або іншими символами.

Класичним прикладом плоскої бази даних може вважатися телефонний довідник, що містить невеликі записи фіксованої довжини: Імені, Адреси та Номера телефону. Інший дуже поширений, хоча й не традиційний приклад, проста (не складена) HTML таблиця, яка складається із рядків і стовпців.

Реалізації

Телефонний довідник можна написати від руки у звичайній алфавітній книжці, можна на листі паперу і скористатися друкарською машинкою або текстовим редактором на комп'ютері і роздрукувати на принтері.

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

1. INSERT (APPEND) – вставляє (додає) визначений запис у визначений файл.

2. DELETE – видаляє з визначеного файлу всі записи, що містять зазначені значення в зазначених полях.

3. UPDATE (MODIFY) – змінює всі записи у визначеному файлі, задавши зазначені значення визначеним полям у тих записах, які містять зазначені значення в інших полях.

4. SELECT (RETRIEVE) – відшукує всі записи, що містять зазначені значення в зазначених полях.

Пошук запису з зазначеними значеннями у визначених полях здійснюється шляхом повного перегляду файлу та перевірки кожного його запису на наявність у ній заданих значень.

Вставку (додавання) запису у файл можна виконувати шляхом приєднання відповідного запису до кінця файлу.

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

Принцип дії операції видалення майже той же, але коли ми знаходимо запис, поля якої відповідають значенням, заданим в операції видалення, ми повинні знайти спосіб видалити її.

Один з варіантів — зрушити всі послідовні записи у своїх блоках на одну позицію вперед, а перший запис у кожнім наступному блоці перемістити на останню позицію попереднього блоку даного файлу.

Однак такий підхід не годиться, якщо записи є закріпленими, оскільки покажчик на 1-ий запис у файлі після виконання цієї операції буде вказувати на (i + 1)-ий запис.

procedure SortTwo();

var NewP, NewFirst: TNode;

P:Node;

begin

NewFirst:=First;

while NewFirst^.Next<>nil do

begin

NewP:=NewFirst^.Next;

while NewP<>nil do

begin

if NewFirst^.p>NewP^.p then

begin

P.p:=NewP^.p; P.w:=NewP^.w;

NewP^.p:=NewFirst^.p;NewP^.w:=NewFirst^.w; NewFirst^.p:=P.p; NewFirst^.w:=P.w; end

else

if (NewFirst^.p=NewP^.p) and (NewFirst^.w>NewP^.w) then

begin

P.p:=NewP^.p; P.w:=NewP^.w;

NewP^.p:=NewFirst^.p; NewP^.w:=NewFirst^.w; NewFirst^.p:=P.p; NewFirst^.w:=P.w;

end;

NewP:=NewP^.Next;

end;

NewFirst:=NewFirst^.Next;

end;

end;