Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Базы і банки знаний

РефератДопомога в написанніДізнатися вартістьмоєї роботи

GLOBAL DATABASE kniga (name, list, izd, god) PREDICATES nondeterm repeat /*повтор*/ nondeterm menu /*основне меню*/ nondeterm menu_modify /*меню модифікації*/ nondeterm process (integer) /*різні операції з переліку меню*/ nondeterm proc (integer) /*різні операції з переліку меню модифікації*/ nondeterm do_dbase /*мета*/ nondeterm dbassert (dbasedom) /*додавання даних*/ nondeterm dbass (dbasedom… Читати ще >

Базы і банки знаний (реферат, курсова, диплом, контрольна)

Санкт-Петербурзький державний технічний университет.

Кафедра системного аналізу та управления.

РОЗРАХУНКОВЕ ЗАДАНИЕ.

Дисципліна: бази й банки знаний.

Тема: мову Пролог.

Выполнил студент групи 3082/2 Торопов. К.Д.

Проверил.

«__"___________2001г.

Санкт-Петербург.

Зміст. 1. Теоретическая часть…3. 2. Постановка завдання… …4. 3. Текст програми… …4. 4. Выводы… …13. 5.

Литература

… …13.

Теоретична часть.

Prolog є компиляторно-ориентированным мовою програмування високого рівня життя та призначений для програмування завдань в галузі штучного интеллекта (ИИ). Як мову програмування ІІ він особливо хороший до створення експертних систем, динамічних баз даних, програм із застосуванням естественно-языковых конструкцій; він він може бути використана й інших завдань загального характеру. Prolog має вікна, кольорову графіку і інтерактивні кошти вводу-виводу, що говорить про його максимальному зручність для користувача прикладних программ.

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

Prolog має внутрішні підпрограми до виконання зіставлення і пов’язаних із нею процесів. Вони є невід'ємною частиною мови та називаються внутрішніми подпрограммами уніфікації. Ці підпрограми виконують зіставлення цілей і подцелей з фактами і головами правил для того, щоб довести (чи обчислити) це ще чи подцели. Ці самі підпрограми визначають, сгенерированы нові подцели правій частині правила. Програміст відповідно до логічним синтаксисом Prolog оголошує, які факти і що правила дають той чи інший результат що за різних подцелях, а внутрішні підпрограми уніфікації виконують решту работы.

Факти і правил є твердженнями, що утворюють дані програми на Prolog. Правила мають ліву частина, й праву частина. Ліва частина правила істинною є, якщо істинною є права частина правила. Правила генерують нові історичні факти, коли всі затвердження у тілі виявляються обчисленими. Prolog використовує відкоти визначення альтернативних шляхів обчислення цілі чи подцели. Якщо подцель виявилася неуспішної, а покажчики відкоту було встановлено, то тут для попередньої подцели буде зроблено спробу домогтися успіху, починаючи з місця отката.

Prolog дозволяє виконувати низку операцій із списками. Їх перелік включає: доступом до об'єктах списку, перевірка на належність до списку, поділ списку на два, злиття двох списків, сортування елементів списку на порядку зростання чи убывания.

Prolog забезпечує змогу зручною й ефективної обробки файлів. Сюди можна включити вбудовані предикати в обробці і закриття файлів, читання з файла і запис в файл, зміни даних в файлі, і навіть дозапись у вже існуючий файл. Дані з файла можуть оброблятися або як безперервний потік символів, або як структуровані об'єкти типу записів бази данных.

У Prolog є спеціальні кошти на організації баз даних. Ці цифри розраховані працювати з реляционными базами даних, так як Prolog особливо хороший для написання діалогової системи саме з реляційної БД: внутрішні унификационные процедури мови здійснюють автоматичну вибірку фактів із «потрібними значеннями відомих параметрів і привласнюють значення не певним. До того ж механізм відкоту дозволяє знаходити усі наявні відповіді зроблений вопрос.

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

Текст программы.

DOMAINS name, izd, aut=string list=aut* god=integer file=datafile; indexfile.

GLOBAL DATABASE kniga (name, list, izd, god) PREDICATES nondeterm repeat /*повтор*/ nondeterm menu /*основне меню*/ nondeterm menu_modify /*меню модифікації*/ nondeterm process (integer) /*різні операції з переліку меню*/ nondeterm proc (integer) /*різні операції з переліку меню модифікації*/ nondeterm do_dbase /*мета*/ nondeterm dbassert (dbasedom) /*додавання даних*/ nondeterm dbass (dbasedom, string, string) /*модуль введення даних*/ nondeterm readlist (list) /*читання списку*/ nondeterm writelist (list) /*висновок списку*/ nondeterm dbretract (dbasedom) /*видалення даних*/ nondeterm dbret (dbasedom, string, string)/*модуль видалення даних*/ nondeterm dbret1(dbasedom, real)/*вспомогательный модуль видалення даних*/ nondeterm dbread (dbasedom)/*чтение даних*/ nondeterm dbrd (dbasedom, string, string) /*модуль для вибірки даних*/ nondeterm dbaaccess (dbasedom, real)/*вспомогательный модуль вибірки і пошуку даних*/ nondeterm append (list, list, list) /*приєднання списку*/ nondeterm delete_it (aut, list, list) /*видалення елемента списка*/.

GOAL do_dbase.

CLAUSES /*Діалог з цим базою даних здійснюється за принципом меню. Базуючись на запиті користувача, СУБД активізує відповідні процеси задоволення цього запроса.*/.

/*задание мети перетвориться на вигляді правила*/ do_dbase : — menu. menu: — repeat,.

nl, write («*********************************** »), nl, write («1.Add a book to database »), nl, write («2.Delete a book from database »), nl, write («3.View a book from database »), nl, write («4.Modify a book in database »), nl, write («5.Quit from this program »), nl, write («*********************************** »), nl, nl, write («Please enter your choice, 1,2,3,4,5: »), readint (Choice), nl,.

Choice>0,Choice0,C=0, filepos (datafile, Datpos, 0), readdevice (datafile), readterm (dbasedom, Term),!, filepos (indexfile,-9,1),.

/*Цей предикат викликає запис на диск вмісту внутрішнього буфера індексного файла. Отже dbret1 запобігає можливість роботи з цими, хто був віддалені доти.*/ flush (indexfile), writedevice (indexfile), writef («%7.0n » ,-1), readdevice (keyboard), writedevice (screen).

/*здійснює пошук потрібного індексу в індексному файлі*/ dbret1(Term,_): — readdevice (indexfile), readreal (Datpos1), dbret1(Term, Datpos1).

/* Правило dbrd дістає інформацію з файла datafile */ dbrd (Term, Indexfile, Datafile): — openread (datafile, Datafile), openread (indexfile, Indexfile),.

/*испльзуется допоміжний модуль dbaaccess, здійснює пошук і освоєння вибірку даних із файла БД*/ dbaaccess (Term,-1), closefile (datafile), closefile (indexfile).

/*Цей предикат читає дані, логічно пов’язані з значенням індексу, заданим перемінної Datapos.*/ dbaaccess (Term, Datpos):;

Datpos>=0, filepos (datafile, Datpos, 0), readdevice (datafile), readterm (dbasedom, Term).

/*Це намагається знайти у базі таку запис, індекс якої є у індексному файлі. Якщо індекс перебуває, то правило успішно; якщо ні, то неуспешно. В разі успіху змінна Term отримує потрібні користувачеві значення*/ dbaaccess (Term,_): — readdevice (indexfile), readreal (Datpos1), dbaaccess (Term, Datpos1).

/* Правила роботи з списками */ /*Читання списку*/ readlist ([H|T]): — write («> «), nl, readln (H),!, readlist (T). readlist ([]). /*Висновок списку*/ writelist ([H|T]): — write (H, «»), writelist (T). writelist ([]). /*Приєднання списку*/ append ([], L, L). append ([N|L1], L2,[N|L3]): — append (L1,L2,L3). /*Видалення елемента списку*/ delete_it (_,[],[]). delete_it (X,[H|T], L):-H=X,!, delete_it (X, T, L). delete_it (X,[H|T],[H|L]):-delete_it (X, T, L).

Выводы.

Была написана програма, реалізує це завдання. Під час написання програми автор ознайомився з основними поняттями, які стосуються баз даних, використанням предикатів і керував до роботи з файлами, списками, елементами списків. Робота над упорядкуванням програми дозволила детально ознайомитися питанням організації даних в БД й виведення з неї необхідної користувачеві информации.

Ц. Ін, Д. Соломон «Використання Турбо-Пролога», Видавництво «Мир».

Показати весь текст
Заповнити форму поточною роботою