ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Бази і банки знань
         

     

    Інформатика, програмування

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

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

    РОЗРАХУНКОВО ЗАВДАННЯ

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

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

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

    Перевірив


    "__"___________ 2001р.

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

    2001

    Зміст.
    1.Теоретіческая частина ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 3.
    2.Постановказадачі ................................................. .....................< br>..................... ... 4.
    3.Текстпрограми ................................................. ..................< br>............................... 4.
    4.Виводи ............................................... .....................< br>............................................. 13.
    5.Література ............................................... .................< br>............................................ 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. < p> 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 ([]).< br>/* Висновок списку */writelist ([H | T]): - write (H, ""), writelist (T). writelist ([]).< br>/* Приєднання списку */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).

    Висновки.

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

    Література.

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


         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status