![](/user_photo/2706_HbeT2.jpg)
- •Лабораторна робота № 2
- •1. Загальне завдання:
- •2. Порядок виконання лабораторної роботи:
- •4. Індивідуальне завдання
- •5. Теоретичні відомості
- •5.1. Тип даних «Запис»
- •5.2. Робота з типізованими файлами
- •6. Приклад виконання лабораторної роботи
- •Підпрограма LoadFromFile «Завантажити каталог книг з файлу»
- •Підпрограма SaveToFile «Збереження каталогу у файл»
- •Підпрограма SortCatalog «Сортування книг в каталозі за назвою»
- •Підпрограма PrintCatalog «Друк каталогу книг»
- •Підпрограма AddBook «Додавання книги до каталогу»
- •Var size : integer):boolean;
- •Val(s,year,er);
- •Val(s,number,er);
- •If (LoadFromFile(fname,books,n,size)) then
- •If (SaveToFile(fname,books,size)) then
- •If (AddBook(books,n,size)) then
- •Каталог
- •Каталог (сортування по назві)
- •7. Питання для захисту лабораторної роботи:
-
Підпрограма SaveToFile «Збереження каталогу у файл»
Опис змінних:
fname – назва файлу, в якому зберігається каталог книг;
сatalog – каталог книг;
size – кількість книг у файлі;
f – файлова змінна для роботи з типізованим файлом;
i – номер книги в каталозі.
Початок |
||
Зв’язування f з файлом fname |
||
Відкриття файлу f для запису |
||
Файл f відкрито? + |
- |
|
|
i = від 1 до size |
SaveToFile = False |
|
Запис у файл книги у catalog[i] |
|
Закриття файлу f |
||
SaveToFile = True |
||
Кінець |
-
Підпрограма SortCatalog «Сортування книг в каталозі за назвою»
Опис змінних:
сatalog – каталог книг;
size – кількість книг у файлі;
i, j – номера книги в каталозі;
book – змінна для перестановки двох книг в каталозі.
Початок |
|||
|
i від 2 до size |
||
|
|
j від size до i |
|
|
|
catalog[j-1].name > + |
catalog[j].name - |
|
Поміняти місцями книги з номерами j та j-1 за допомогою змінної book |
|
|
Кінець |
-
Підпрограма PrintCatalog «Друк каталогу книг»
Опис змінних:
сatalog – каталог книг;
size – кількість книг у файлі;
i – номер книги в каталозі.
Початок |
|
Друк заголовку таблиці |
|
|
i від 1 до size |
|
Друк книги catalog[i] |
Кінець |
-
Підпрограма AddBook «Додавання книги до каталогу»
Опис змінних:
сatalog – каталог книг;
max – максимальна можлива кількість книг в каталозі;
size – кількість книг у файлі;
s – рядок для вводу чисел;
er – ознака наявності помилки при перетворенні рядка в число.
Початок |
||
(size + 1) <=max + |
- |
|
size = size + 1 |
AddBook = False |
|
Завдання назви книги catalog[size].name, авторів catalog[size].author, жанру catalog[size].style |
||
|
Завдання року видання книги s |
|
|
Перетворення рядка s у рік видання catalog[size].year |
|
|
er = 0 та catalog[size].year>0 та catalog[size].year<=2008 |
|
|
Завдання кількості томів s |
|
|
Перетворення рядка s у кількість томів catalog[size].tom |
|
|
er = 0 та catalog[size].tom>0 |
|
AddBook = True |
||
Кінець |
6.3. Текст програми
program Catalog;
uses crt;
const n = 20; {максимальна кількість книг в каталозі}
type
TBook = record {Тип для опису книги}
name : string; {назва книги}
author : string; {автори книги}
style : string; {жанр}
year : word; {рік видання}
tom : integer; {кількість томів}
end;
{Тип «Масив записів» – каталог книг}
TCatalog = array [1..n] of TBook;
{Функція LoadFromFile призначена для завантаження каталогу книг з файлу.
Вхідні дані:
fname – назва файлу, в якому зберігається каталог книг;
max – максимальна можлива кількість книг в каталозі;
Вихідні дані:
True – каталог книг завантажено з файлу та
сatalog – каталог книг;
size – кількість книг у файлі;
False – файл не відкрито і каталог книг не завантажено з файлу.}
function LoadFromFile(fname : string;var catalog : TCatalog; max : integer;