Завдання № 11 на курсове проектування з дисципліни "Логічне програмування" студенту Пакостіной Олександрі Вікторівні. p>
Група ІР-1-95. p>
1. Тема дослідження: "Розробка інформаційно - довідкової системи".
2. Вихідні дані: База даних BD, що включає запису виду: p>
| Характеристика деталі | | | | | | | | |
| № | Місце | Названо | Ціна | Дата надходження | | | | |
| | Зберігання | чі | | | | | | |
| Артика | № цехи | № склад | деталі | руб | коп | рік | місяць | число |
| ла | | а | | | | | | |
| | | | | | | | | | P>
Мова програмування: Пролог.
3. Перелік питань, що підлягають розробці: p>
4. Розробити меню, що забезпечує взаємодію користувача з системою, відповідно до завдання, передбачивши режими: p>
5. Розробити процедури: p>
. знищення записів за ознаками; p>
. завантаження; p>
. збереження; p>
. перегляду; p>
. знищення;
3.3. Передбачити створення з бази BD нових баз даних B1, B2, якi характеризуються ознаками, які задаються користувачем.
4. Перелік графічних матеріалів: p>
4.1. Структурна схема меню: p>
5. Структурна схема програми: p>
p>
5. Календарний план роботи над курсовою роботою: p>
6. Отримання завдання: 4.10.96. P>
7. Аналіз завдання, постановка завдання, підбір і вивчення літератури: p>
18.10.96. P>
8. Розробка меню і структури програми: 25.10.96. P>
9. Розробка процедур інформаційно-довідкової системи: 15.11.96.
10. Налагодження програми: 29.11.96.
11. Оформлення пояснювальної записки і здача роботи на правку: 13.12.96.
12. Захист курсової роботи: 20.12.96. P>
Керівник: Холкін І.І. ____________ p>
Студент: Пакостіна А.В. ____________< br>Опис p>
1. Поняття про інформаційно-довідкових системах і їх програмна реалізація. P>
Інформаційно-довідкові системи призначені для керування різними інформаційними та довідковими масивами, до числа яких входять і бази даних. Ці системи організовують певний інтерфейс користувача з функціями обробки інформації самої системи. Набір можливостей таких систем звичайно включає в себе корекцію структури використовуваного об'єкта
(інкапсулює інформацію), робота з його складовими - доповнення, редагування, видалення (у випадку, коли роль такого об'єкта виконує база даних, це - записи), простий перегляд, пошук елементів. Також необхідно забезпечити для такої системи і функції постійного надійного зберігання - в простому випадку, це - запис бази з пам'яті у файл на диску і зчитування оного з диска в пам'ять. P>
Програмна реалізація мало відрізняється від такої концепції, але конкретизує абстрактні операції в конкретні процедури і функції (або ж об'єкти) і повністю залежить від можливостей мови, поставленого завдання і мистецтва програміста.
2. Бази даних і способи їх подання. P>
Загальна концепція теорії простих баз даних має на увазі наявність деякого безлічі таблиць і є, власне, базою даних, яка має певний ідентифікатор (ім'я). Кожна таблиця складається з n-го кількості записів (величина n залежить від можливостей конкретної системи), кожна з яких має одну і ту ж структуру (в рамках однієї таблиці) і може поєднувати в собі кілька різнорідних об'єктів (їх кількість також залежить цілком і повністю від можливостей системи). p>
Робота з базою даних припускає в собі можливість працювати з записами
(або змінювати структуру таблиць). p>
У мові програмування Пролог база даних описується в окремому розділі , іменованому database. Таких розділів може бути кілька в одній програмі і кожен з них, якщо вони дійсно являють собою різні БД, повинні мати різні імена. У випадку відсутності імені у бази даних, їй дається ім'я за замовчуванням - dbasedom. P>
Роботу з завантажуваними базами даних в Пролозі реалізують наступні стандартні предикати: assert - додати запис в БД, retract - вилучити вказану запис, save -- зберегти зазначену БД у файлі, consult - завантажити БД з файлу в пам'ять. p>
У даній роботі оголошена головна база даних bd, що має предикат characteristick, і дві тимчасові бази b1, b2 з предикатами table1, table2.
3. Розробка системного меню. P>
Системне меню об'єднує в собі доступ до всіх процедур
інформаційно - довідкової системи. Розробка меню відштовхується від наявних функцій системи (предикатів). Оскільки оголошений предикат do (char), що служить буфером між системним меню та існуючими процедурами, він має на собі або підменю з вибором режимів роботи наявних предикатів, або їх виклик з наступним поверненням в системне меню: p>
+ -- ------------ Системне меню --------------+< br>| Виберіть варіант роботи з базами даних: |
| |
| 1: - Завантажити |
| 2: - Зберегти |
| 3: - Переглянути |
| 4: - Скорегувати |
| 5: - Видалити запис за ознаками |
| 6: - Створити за ознаками |
| 7: - Додати |
| 8: - Вихід у ДГЗ |
| |
| ------------------| |------------------ |
+--------------------------------------------+ p>
4. Розробка структури програми. P>
Системне меню викликає тільки предикати do (), визначені для кожної з необхідних завдань (номер режим повністю збігається з нумерацією в головному меню). Кожна з реалізацій цього предиката виводить меню, або відразу викликає відповідні процедури: open, store, adding, correct, see, del, indication. Процедура Indication виводить додаткове підменю та викликає або IndicationB1, або IndicationB2 в залежності від вибору користувача. Do ('8 ') завершує роботу з системою.
5. Розробка процедур: p>
6. Завантаження бази даних (Open). P>
У do ('1 ') є меню: p>
+--------- Завантажити -------- +
| Куди завантажити? |
| |
| 1: - У bd |
| 2: - У b1 |
| 3: - У b2 |
| 4: - Меню |
| |
| ------| |------ |
+--------------------------- - + p>
процедура Open має чотири реалізації, для кожного з варіантів роботи. Для будь-якого випадку перед завантаженням бази даних перевіряється наявність файлу з введеним іменем (предикат exists). Для завантаження бази даних використовується стандартний предикат consult. Коли Ви робите p>
Open ('1 ') завантаження виробляється в базу bd, виклику Open ('2') в базу b1, виклику Open ('3 ') - в b2. P> < p> 7. Збереження (Store). P>
У do ('2 ') меню:
+--------- Зберегти --------+< br> | Що зберегти ? |
| |
| 1: - bd |
| 2: - b1 |
| 3: - b2 |
| 4: - Меню |
| |
| ------| |------ |
+----------------------------+
Існують предикати для запису головної бази і двох тимчасових. p>
Використовується стандартний предикат save, що записує в текстовий файл факти, пов'язані з цією БД. p>
8. Перегляд (See). P>
У do ('3 ') меню:
+-------- Подивитися -------+< br> | Що переглянути? |
| |
| 1: - bd |
| 2: - b1 |
| 3: - b2 |
| 4: - Меню |
| |
| ------| |------ |
+----------------------------+
Пропозиції See ('1 ') і See ('2') створюють нові вікна та виводять в них знайдені записи. Після кожної виведеної запису запитується натиснення клавіші, потім повторюється пошук за допомогою стандартного предиката Fail або відбувається вихід з предиката в системне меню. P>
9. Додавання (Adding). P>
Даний предикат був доданий до програми через полегшення роботи з нею, хоч і в завданні його не було. P>
У цій процедурі використовується певна в цій же програмі процедура Get, запитуюча з клавіатури значення для нового запису в головній базі даних і стандартна процедура assert, додає новий факт до бази даних.
10. Коригування (Correct). P>
У даній програмі існує два варіанти коригування - редагування запису, знайденої за номером артикулу і знайденої за назвою деталі. У кожній з версій предиката спочатку запитується номер артикулу (або назва) змінною записи, пошук і виведення на екран, потім відбувається введення нових значень полів, підтверджуються зроблені зміни, віддаляється старий факт (retract) і додається знову сформований (assert).
11. Створення бази за ознаками (Indication). P>
Indication ('1 ') створює базу b1, а Indication ('2') - базу b2. Для кожної бази існує окремий предикат - IndicationB1 і p>
IndicationB2. Існують можливості створення таких баз за такими ознаками: за місцем зберігання, за ціною, за датою надходження. У кожному з варіантів здійснюється запит на декілька параметрів відразу і пошук фактів, що відповідають цим вимогам. При успішному пошуку, знайдений факт додається до бази b1 або b2.
12. Видалення запису за ознаками (Del). P>
Ознаками для видаляється записи можуть служити номер артикулу, назва, а також можливо знищити з пам'яті всю базу даних. У всіх варіантах використовується процедура видалення запису retract.
6. Лістинг. P>
%
%
% Пакостіна Олександра.
%
% ІР-1-95.
%
% Завдання 11.
%
%
% p>
p>
domains p>
artikul = integer cex, sklad = integer name = string rubley, kopeek = integer year, month, day = integer placedom = place ( cex, sklad) pricedom = price (rubley, kopeek) datedom = date (year, month, day) p>
database - bd p>
characteristick (artikul, placedom, name, pricedom, datedom ) p>
database - b1 p>
table1 (artikul, placedom, name, pricedom, datedom) p>
database - b2 p>
table2 (artikul , placedom, name, pricedom, datedom) p>
predicates p>
windows go do (char) open (char) store (char) adding correct (char) indication (char) indicationB1 (char ) indicationB2 (char) see (char) del (char) exists (string) show (artikul, placedom, name, pricedom, datedom) get (artikul, placedom, name, pricedom, datedom) p>
goal
windows, go. p>
clauses p>
characteristick (1, place (5,6), "Gayka", price (0,45), date (1996 , 1,4)). characteristick (2, place (6,7), "Vint", price (0,65), date (1996,2,45 )). p>
windows: - makewindow (1,52,0, "", 24,0,1,80), write ( "Пакостіна Олександра."), makewindow (2,52,0, "", 0,0,1,80), write ( "Система управління базою даних" Характеристикадеталі ""), makewindow (3,112,1, "Системне меню", 2,17,14,46), nl, write ( "Виберіть варіант роботи з базами даних:"), nl, nl, write ( "1: -- Завантажити "), nl, write (" 2: - Зберегти "), nl, write (" 3: - Подивитися "), nl, write (" 4: - Скорегувати "), nl, write (" 5: - Видалити запис за ознаками "), nl, write (" 6: - Створити за ознаками "), nl, write (" 7: - Додати "), nl, write (" 8: - Вихід у ДЗГ "), nl, nl, write ( "------------------| |------------------"), framewindow (126). p>
go: - gotowindow (3), cursor (11,21), readchar (X), do (X). p>
%%% p>
correct ('1 '): - makewindow (5,95,1, "Коригування запису, знайденої по артикулу
", 7,10,13,60), framewindow (94), write (" Номер артикулу: "), readint (X), p>
characteristick (X, place (NC, NS), Name, price (Rub, Kop), date (Year, Mon, Day)), nl, write ( "Стара запис:"), nl, nl, show (X, place (NC, NS), Name, price (Rub, Kop ), date (Year, Mon, Day)), nl, nl, write ( "Введіть новий варіант:"), nl, nl, p>
get (ArtD, place (NCD, NSD), NameD, price (RubD, KopD), date (YearD, MonD, DayD)), nl, clearwindow, p>
retract (characteristick (X, place (NC, NS), Name, price (Rub, Kop), date (Year, Mon, Day
))), p>
assert (characteristick (ArtD, place (NCD, NSD), NameD, price (RubD, KopD), date (YearD
, MonD, DayD))), removewindow, removewindow, do ('4 '),!. P>
correct ('1'): - removewindow, removewindow, do ('4 '),!.
correct ('2 '): - makewindow (5,95,1, "Коригування запису, знайденої за назвою
", 7,10,13,60), framewindow (94), write (" Назва: "), readln (X), p>
characteristick (Art, place (NC, NS), X, price (Rub, Kop), date (Year, Mon, Day)), nl, write ( "Стара запис:"), nl, nl, show (Art, place (NC, NS), X, price (Rub, Kop) , date (Year, Mon, Day)), nl, nl, write ( "Введіть новий варіант:"), nl, nl, p>
get (ArtD, place (NCD, NSD), NameD, price (RubD, KopD), date (YearD, MonD, DayD)), nl, clearwindow, p>
retract (characteristick (Art, place (NC, NS), X, price (Rub, Kop), date (Year, Mon, Day)
)), p>
assert (characteristick (ArtD, place (NCD, NSD), NameD, price (RubD, KopD), date (YearD
, MonD, DayD))), removewindow, removewindow, do ('4 '),!. P>
correct ('2'): - removewindow, removewindow, do ('4 '),!.
correct ('3 '): - p>
!. p>
correct (_): - makewindow (5,76,1, "Помилка", 8, 29,5,22), framewindow (75), nl, write ( "Вибрати з меню"), readchar (_), removewindow, removewindow, do ('4'). p>
%%% p>
del ('1 '): - makewindow (5,95,1, "Видалення по артикулу", 7,20,10,40), framewindow (94), write ( "Номер артикулу: "), readint (X), p>
retract (characteristick (X, place (NC, NS), Name, price (Rub, Kop), date (Year, Mon, Day
))), Nl, write ( "Готово."), Readchar (_), removewindow, removewindow, do ('5 '),!. P>
del ('1'): - makewindow (6 , 76,1, "Помилка", 8,29,5,22), framewindow (75), nl, write ( "Запис не знайдено."), readchar (_), removewindow, removewindow, removewindow, do ('5 '). p>
del ('2 '): - makewindow (5,95,1, "Видалення за назвою", 7,20,10,40), framewindow (94), write ( "Назва : "), readln (X), p>
retract (characteristick (Art, place (NC, NS), X, price (Rub, Kop), date (Year, Mon, Day)
)), Nl, write ( "Готово."), Readchar (_), removewindow, removewindow, do ('5 '),!. P>
del ('2'): - makewindow (6, 76,1, "Помилка", 8,29,5,22), framewindow (75), nl, write ( "Запис не знайдено."), readchar (_), removewindow, removewindow, removewindow, do ('5 ' ). p>
del ('3 '): - makewindow (5,95,1, "Видалення всієї бази", 7,20,10,40), framewindow (94), retract (characteristick (_ , place (_,_),_, price (_,_), date (_,_,_))), fail. p>
del ('3 '): - write ( "База відсутній . "), readchar (_), removewindow, removewindow, do ('5 '),!. p>
del ('4'): - p>
!. p>
del ('_'): - makewindow (5,76,1, "Помилка", 8,29,5,22), framewindow (75), nl, write ( "Вибрати з меню"), readchar ( _), removewindow, removewindow, do ('5'). p>
%%% p>
indication ('1 '): - makewindow (5,18,1, "Створити базу B1 за ознакою", 8,25,10,30), framewindow (19), write ( "Введіть ознака:"), nl, nl, write ( "1: - За місцем зберігання"), nl, write ( "2: - За ціною"), nl, write ( "3: - За датою надходження"), nl, write ( "4: - Меню"), nl, nl, write ( "------| |------"), cursor (7,13), readchar (X), indicationB1 ( X), removewindow, removewindow, do ('6 '),!. p>
indication ('2'): - makewindow (5,18,1, "Створити базу B2 за ознакою", 8,25 , 10,30), framewindow (19), write ( "Введіть ознака:"), nl, nl, write ( "1: - За місцем зберігання"), nl, write ( "2: - За ціною"), nl , write ( "3: - За датою надходження"), nl, write ( "4: - Меню"), nl, nl, write ( "------| |------"), cursor (7,13), readchar (X), indicationB2 (X), removewindow, removewindow, do ('6 '),!. p>
indication ('3'): - p>
!. p>
indication (_): - makewindow (5,76,1, "Помилка", 8,29,5,22), framewindow (75), nl, write ( "Вибрати з меню "), readchar (_), removewindow, removewindow, do ('6'). p>
indicationB1 ('1 '): - makewindow (6,95,1," Створення бази B1 за місцем зберігання " , 7,20,10,40), framewindow (94), nl, write ( "Номер цеху:"), readint (X), write ( "Номер складу:"), readint (Y), p> < p> characteristick (Art, place (X, Y), Name, price (Rub, Kop), date (Year, Mon, Day )), p>
assert (table1 (Art, place (X, Y ), Name, price (Rub, Kop), date (Year, Mon, Day))), fail. p>
indicationB1 ('1 '): - removewindow, removewindow, indication ('1'). p>
indicationB1 ('2 '): - makewindow (6,95,1, "Створення бази B1 за ціною", 7,20,10,40), framewindow (94), nl, write ( " Рублів: "), readint (X), write (" Копійок: "), readint (Y), characteristick (Art, place (NC, NS), Name, price (X, Y), date (Year, Mon, Day )), assert (table1 (Art, place (NC, NS), Name, price (X, Y), date (Year, Mon, Day))), fail. p>
indicationB1 ('2 ' ): - removewindow, removewindow, indication ('1'). p>
indicationB1 ('3 '): - makewindow (6,95,1, "Створення бази B1 за датою надходження
", 7,20,10,40), framewindow (94), nl, write (" Рік: "), readint (X), write (" Місяць: "), readint (Y), write (" День: " ), readint (Z), characteristick (Art, place (NC, NS), Name, price (Rub, Kop), date (X, Y, Z)), assert (table1 (Art, place (NC, NS), Name, price (Rub, Kop), date (X, Y, Z))), fail. p>
indicationB1 ('3 '): - removewindow, removewindow, indication ('1'). p>
indicationB1 ('4 '): - p>
!. p>
indicationB1 (_): - makewindow (6,76,1, "Помилка", 8,29 , 5,22), framewindow (75), nl, write ( "Вибрати з меню"), readchar (_), removewindow, removewindow, indication ('1'). p>
indicationB2 ('1 ' ): - makewindow (6,95,1, "Створення бази B2 за місцем зберігання", 7,20,10,40), framewindow (94), nl, write ( "Номер цеху:"), readint (X), write ( "Номер складу:"), readint (Y), p>
characteristick (Art, place (X, Y), Name, price (Rub, Kop), date (Year, Mon, Day)) , p>
assert (table2 (Art, place (X, Y), Name, price (Rub, Kop), date (Year, Mon, Day))), fail. p>
indicationB2 ('1 '): - removewindow, removewindow, indication ('2'). p>
indicationB2 ('2'): - makewindow (6,95,1, "Створення бази B2 із ціною", 7,20,10,40), framewindow (94), nl, write ( "Рублів:"), readint (X), write ( "Копійок:"), readint (Y), characteristick (Art, place (NC, NS), Name, price (X, Y), date (Year, Mon, Day)), assert (table2 (Art, place (NC, NS), Name, price (X, Y), date (Year, Mon, Day))), fail. p>
indicationB2 ('2 '): - removewindow, removewindow, indication ('2'). p>
indicationB2 ('3'): - makewindow ( 6,95,1, "Створення бази B2 за датою надходження
", 7,20,10,40), framewindow (94), nl, write (" Рік: "), readint (X), write (" Місяць: "), readint (Y), write (" День: " ), readint (Z), characteristick (Art, place (NC, NS), Name, price (Rub, Kop), date (X, Y, Z)), assert (table2 (Art, place (NC, NS), Name, price (Rub, Kop), date (X, Y, Z))), fail. p>
indicationB2 ('3 '): - removewindow, removewindow, indication ('2'). p>
indicationB2 ('4 '): - p>
!. p>
indicationB2 (_): - makewindow (6,76,1, "Помилка", 8,29 , 5,22), framewindow (75), nl, write ( "Вибрати з меню"), readchar (_), removewindow, removewindow, indication ('2'). p>
%%% p>
adding: - get (Art, place (NC, NS), Name, price (Rub, Kop), date (Year, Mon, Day)), nl, write ( "Ви ввели : "), nl, show (Art, place (NC, NS), Name, price (Rub, Kop), date (Year, Mon, Day)),nl, nl, write ( "Додати? (Yes/No)"), readchar (A), p>
A = 'y', p>
assert (characteristick (Art, place ( NC, NS), Name, price (Rub, Kop), date (Year, Mon, Day ))); p>
!. p>
%%% p>
exists (FN): - existfile (FN); makewindow (6,76,1, "Помилка", 10,25,5,30), nl, framewindow (75), write ( "Файл", FN, "не знайдено!"), readchar (_), removewindow, removewindow, removewindow, do ('1'). p>
show (Art, place (NC, NS), Name, price (Rub, Kop), date (Year, Mon, Day)): - write ( "Артикул:", Art), nl, write ( "Розташування (Цех, Склад):", NC, ",", NS), nl, write ( "Назва:", Name), nl, write ( "Вартість (Рублів: Копійок):", Rub ,":", Kop), nl, write ( "Дата надходження (Рік-Місяць -День): ", Year ,"-", Mon," -
", Day). P>
get (Art, place (NC, NS), Name, price (Rub, Kop), date (Year, Mon, Day)): - write (" Артикул: ") , readint (Art), write ( "Location:"), nl, write ( "Цех:"), readint (NC), write ( "Склад:"), readint (NS), write ( "Назва:") , readln (Name), write ( "Вартість:"), nl, write ( "Рублів:"), readint (Rub), write ( "Копійок:"), readint (Kop), write ( "Дата надходження:") , nl, write ( "Рік:"), readint (Year), write ( "Місяць:"), readint (Mon), write ( "День:"), readint (Day). p>
< br>7. Налагодження програми. P>
Відкриття БД. P>
+-------------- Системне меню ------------- - +
| Виберіть варіант роботи з базами даних: |
| 1 :-+--------- Завантажити --------+ |
| 2 :-| Куди завантажити? | |
| +-------------- Завантаження bd ------------- + |
| | | |
| | Назва файлу: data | |
| | | |
| | Завантажено | |
+ - | |--+ P>
+---------------------------------- ----+ p>
Збереження БД. p>
+-------------- Системне меню ----------- ---+< br>| Виберіть варіант роботи з базами даних: |
| |
| 1 :-+--------- Зберегти --------+ |
| 2 :-| Що зберегти? | |
| +------------- Збереження b2 ------------ + |
| | | |
| | Назва файлу: data2 | |
| | | |
| | Збережено | |
+ - | |--+ P>
+---------------------------------- ----+ p>
Перегляд. p>
+-------------- Системне меню ------------ --+ p>
| Виберіть варіант роботи з базами даних: | p>
| | p>
| 1 :-+-------- Переглянути -- ------+ | p>
| 2 :-| Що переглянути? | |
+----------------------- Перегляд bd ----------------------+< br>| Артикул: 2 |
| Розташування (Цех, Склад): 6, 7 |
| Назва: Vint |
| Вартість (Рублів: Копійок): 0:65 |
| Дата надходження (Рік-Місяць-День): 1996-2-45 |
| |
| Натисніть ENTER для продовження ... |
+------------------------------------------------- ---------+ p>
Коректування. p>
+-------------- Системне меню ------- -------+ p>
| Виберіть варіант роботи з базами даних: | p>
| | p>
| 1 :-+----- - Коригування ------+ | p>
| 2 :-| Спосіб знаходження запису: | |
+------- Коригування запису, знайденої за назвою ------+< br>| Стара запис: |
| |
| Артикул: 1 |
| Розташування (Цех, Склад): 5, 6 |
| Назва: Gayka |
| Вартість (Рублів: Копійок): 0:45 |
| Дата надходження (Рік-Місяць-День): 1996-1-4 |
| |
| Введіть новий варіант: |
| |
| Артикул: |
+------------------------------------------------- ---------+ p>
Видалення. p>
+-------------- Системне меню ------- -------+< br>| Виберіть варіант роботи з базами даних: |
| |
| 1: - + Видалення запису за ознакою + |
| 2 :-| Введіть ознака: | |
| +-------- Видалення по артикулу --------+ |
| | Номер артикулу: 1 | |
| | | |
| | Готово. | |
+ - | |--+ P>
+---------------------------------- ----+ p>
Створення за ознаками. p>
+-------------- Системне меню ---------- ----+< br>| Виберіть варіант роботи з базами даних: |
| |
| 1: - + - Створити базу за ознакою - + |
| 2 :-| Яку базу створити? | |
| +------?? озданіе бази B1 за ціною ------+ |
| | | |
| | Рублів: 0 | |
| | Копійок: 45 | |
+ - | |--+ P>
+---------------------------------- ----+ p>
+----------------------------+ p>
Додавання . p>
+-------------- Системне меню --------------+ p>
| Виберіть варіант роботи з базами даних: | p>
| | p>
| 1: - Завантажити | p>
| 2: - Зберегти |
+------------- Додати запис до головній базі -------------+< br>| Розташування: |
| Цех: 5 |
| Склад: 6 |
| Назва: Shayba |
| Вартість: |
| Рублів: 1 |
| Копійок: 2 |
| Дата надходження: |
| Рік: 1996 |
| Місяць: 23 |
| День: 3 |
+------------------------------------------------- ---------+< br>8. Інструкція користувача і рішення контрольних прикладів. P>
Рішення контрольних прикладів грунтується на тому, що було зроблено в налагодженні програми і може бути вивчене з вищестоящої частини (7 .). p>
Для роботи з програмою необхідно вибирати з пропонованих меню пункти шляхом натискання на відповідні цифри. З появою підменю повторити операцію, при запиті на ім'я файлу - ввести рядок, що визначає ім'я файлу, при запиті на символ, натиснути відповідну клавішу на клавіатурі (не забувайте, будь ласка про мовної розкладці клавіатури та стан клавіші CAPSLOCK). Також у декількох процедурах проводиться підтвердження (Yes/No - Так/Ні) - необхідно переключитися на англійську розкладку і натиснути відповідну клавішу в нижньому регістрі.
9. Висновок. P>
Мова програмування Пролог безумовно може бути використаний для написання подібних інформаційно-довідкових систем, тому що він дозволяє легко і швидко створювати логічні запити до баз даних, що, безперечно, виділяє його серед інших мов програмування.
10. Список літератури. P>
1. К. Кларк. "Введення в логічне програмування на Micro Prologe". P>
2. К. Хоггер. "Введення в логічне програмування". P>