50319

Построение простейших экспертных систем

Лабораторная работа

Информатика, кибернетика и программирование

Задание к работе: составить программу, содержащую сведения о лучшей десятке фильмов. Данные для построения вывода: название, режиссер, сценарист, год выпуска, киностудия, страна-производитель. В программе должна быть реализована возможность получения следующей информации: по порядковому номеру – фамилия режиссера, название фильма, страны-производителя; все фильмы одного годы выпуска или одной киностудии; все фильмы одной страны.

Русский

2014-01-20

315.5 KB

2 чел.

Лабораторная работа №1

«Построение простейших экспертных систем»

Цель работы: приобретение навыков программирования экспертных систем (ЭС) и информационно-справочных систем (ИСС) на языке Turbo Prolog.

 

Задание к работе: составить программу, содержащую сведения о лучшей десятке фильмов. Данные для построения вывода: название, режиссер, сценарист, год выпуска, киностудия, страна-производитель. В программе должна быть реализована возможность получения следующей информации: по порядковому номеру – фамилия режиссера, название фильма, страны-производителя; все фильмы одного годы выпуска или одной киностудии; все фильмы одной страны.

Выполнение работы:

Описание предикатов:

film(nomer, name, regiss, scenarist, year, kino_studio, strana_proizv) – описывает фильм:

 nomerпорядковый номер фильма

 nameназвание фильма

 regissимя режиссера фильма

 scenaristимя сценариста фильма

 yearгод выпуска фильма

 kino_studioназвание киностудии-производителя

 strana_proizvназвание страны-производителя

start – организует начало работы программы, выводит главное меню.

analiz(integer) – анализирует введенное число, соответствующее пункту меню, запрашивает все необходимые для поиска данные и организует поиск, либо завершает работу программы.

poisk_nomer(nomer) – организует поиск фильма по его порядковому номеру nomer и выводит результаты поиска на экран.

poisk_strana(strana_proizv) – организует поиск фильма по его стране-производителю strana_proizv и выводит результаты поиска на экран.

poisk_year(year) – организует поиск фильма по его году выпуска year и выводит результаты поиска на экран.

poisk_kinostudio(kino_studio)организует поиск фильма по его киностудии-производителю kino_studio и выводит результаты поиска на экран.

exit_program(char) – организует выход из программы при введении с клавиатуры определенного символа .

Листинг программы:

domains

nomer = integer

name = string

regiss = string

scenarist = string

year = integer

kino_studio = string

strana_proizv = string

predicates

film(nomer, name, regiss, scenarist, year, kino_studio, strana_proizv)

start

analiz(integer)

poisk_nomer(nomer)

poisk_strana(strana_proizv)

poisk_year(year)

poisk_kinostudio(kino_studio)

exit_program(char)

clauses

film(1, "Пираты Карибского моря - 3: На краю света","Гор Вербински", "Джерри Брукхаймер", 2007, "Universal","США").

film(2, "Самый лучший фильм","Кирилл Кузин", "Алексей Огурцов", 2007, "Мосфильм","Россия").

film(3, "Ирония судьбы - 2. Продолжение", "Тимур Бекмамбетов","Алексей Слаповский", 2007, "Мосфильм","Россия").

film(4, "Восемнадцать - четырнадцать", "Андрес Пуустусмаа","Иван Мартынов", 2007, "Ленфильм","Россия").

       film(5, "Беовульф", "Роберт Земекис","Рэй Уинстоун", 2007, "Paramount","США").

film(6, "1612: Хроники Смутного времени", "Владимир Хотиненко","Ариф Алиев", 2007, "Тритэ","Россия").

film(7, "Везунчик", "Кертис Хэнсон","Эрик Рот", 2007, "Paramount","США").

film(8, "Вторжение", "Оливер Хиршбигель","Дэниэл Крэйг", 2007, "Universal","США").

film(9, "Зодиак", "Дэвид Финчер","Кевин Лима", 2007, "Universal","США").

film(10, "Королевство", "Стивен Фрирз","Питер Берг", 2007, "Miramax","Франция").

 

 

start if write("Добро пожаловать в программу 'Лучшая десятка фильмов'!\n\n"),

 write("Введите нужный пункт:\n"),

 write("1 - найти фильм по порядковому номеру \n"),

 write("2 - найти все фильмы одного года выпуска\n"),

 write("3 - найти все фильмы одной страны\n"),

 write("4 - найти все фильмы одной киностудии\n"),

 write("5 - выйти из программы\n"),

 readint(X), analiz(X),

 write("Желаете продолжить?(y/n)\n"),

 readchar(Yes_No),

 exit_program(Yes_No).

 

analiz(1) if

      write("Введен 1\n"),

      write("Введите порядковый номер фильма:\n"),

      readint(Nomer),

      poisk_nomer(Nomer).

analiz(2) if

  write("Введен 2\n"),

  write("Введите год выпуска фильма:\n"),

  readint(Year),

  poisk_year(Year).

 

analiz(3) if

  write("Введен 3\n"),

  write("Введите название страны:\n"),

  readln(Strana),

  poisk_strana(Strana).

analiz(4) if

  write("Введен 4\n"),

  write("Введите название киностудии\n"),

  readln(Kinostudio),

  poisk_kinostudio(Kinostudio).

 

analiz(5) if

  exit.

     analiz(_) if  write("Неверно введен номер\n").

poisk_kinostudio(Kinostudio) if not(film(_,_,_,_,_,Kinostudio,_)),

  write("Фильмов данной киностудии нет\n").

poisk_kinostudio(Kinostudio) if film(_,Nazv,_,_,_,Kinostudio,_),

  writef("Фильм - %s\n",Nazv),

  fail.

poisk_kinostudio(_) if write("Желаете продолжить?(y/n)\n"),

  readchar(Yes_No),

  exit_program(Yes_No).

 

 

poisk_year(Year) if not(film(_,_,_,_,Year,_,_)),

  write("Фильмов данного года выпуска нет\n").

poisk_year(Year) if film(_,Nazv,_,_,Year,_,_),

  writef("Фильм - %s\n",Nazv),

  fail.

poisk_year(_) if write("Желаете продолжить?(y/n)\n"),

  readchar(Yes_No),

  exit_program(Yes_No).

poisk_strana(Strana) if not(film(_,_,_,_,_,_,Strana)),

  write("Фильмов данной страны нет\n").

poisk_strana(Strana) if film(_,Nazv,_,_,_,_,Strana),

  writef("Фильм - %s\n",Nazv),

  fail.

poisk_strana(_) if write("Желаете продолжить?(y/n)\n"),

  readchar(Yes_No),

  exit_program(Yes_No).

 

poisk_nomer(Nomer) if not(film(Nomer,_,_,_,_,_,_)),

  write("Неправильно введен номер фильма\n").

poisk_nomer(Nomer) if film(Nomer,Nazv,Regiss,_,_,_,Strana),

 writef("Этот фильм - %s\n",Nazv),

 writef("Режиссер - %s\n",Regiss),

 writef("Страна - %s\n",Strana).

exit_program('y') if nl, start; exit.

goal

start.

Работа программы: 

Для начала работы программы необходимо запустить исполняемый  файл, при этом появится главное меню программы:

Далее нужно выбрать необходимый пункт меню:

При выборе пункта №1 будет найден фильм по порядковому номеру:

При выборе пункта №2 будут найдены все фильмы одного года выпуска:

При выборе пункта №3 будут найдены все фильмы одной страны:

При выборе пункта №4 будут найдены все фильмы одной киностудии:

При выборе пункта №5 произойдет выход из программы.

Вывод: в данной лабораторной работе состоялось знакомство с основами построения экспертных систем и информационно-справочных систем на языке Turbo Prolog. В ходе выполнения работы были получены навыки по созданию внутренней статической базы знаний, а также поиска решений по заданным параметрам.

PAGE  6


 

А также другие работы, которые могут Вас заинтересовать

68197. МЕХАНІЗМ ОПОДАТКУВАННЯ НЕРУХОМОГО МАЙНА В УКРАЇНІ 361.5 KB
  Сьогодні у нашій державі оподаткування нерухомості не відіграє значної фіскальної та соціальної ролі в порівнянні із зарубіжними країнами. Для зміцнення матеріальнофінансової бази місцевого самоврядування та нівелювання значної дохідної і майнової нерівності населення особливої...
68198. ЖИТЛОВО-БУДІВЕЛЬНИЙ КОМПЛЕКС В СИСТЕМІ РОЗВИТКУ РЕГІОНУ 2.24 MB
  Системне дослідження соціально-економічних процесів що відбуваються на рівні регіону передбачає виявлення галузевої структури учасників господарської діяльності визначення всіх структуроутворюючих підсистем та елементів їх аналіз і оцінка взаємного впливу.
68199. ЕКСПЕРИМЕНТАЛЬНЕ ОБГРУНТУВАННЯ ЗАСТОСУВАННЯ ОЛІЇ НАСІННЯ ВИНОГРАДУ В ЯКОСТІ РАНОЗАГОЮВАЛЬНОГО ЗАСОБУ 389 KB
  Олія насіння винограду є діючою речовиною рослинного походження що має бути перспективною у складі препаратів для місцевого лікування ран у 2й та 3й фазах ранового процесу. Вищезазначене обумовлює актуальність вивчення фармакологічних властивостей олії насіння винограду з метою обґрунтування її практичного...
68200. ФОРМУВАННЯ ПРОФЕСІЙНОЇ КОМПЕТЕНТНОСТІ МАЙБУТНІХ ЕКОНОМІСТІВ ЗАСОБАМИ МЕРЕЖЕВИХ ТЕХНОЛОГІЙ 305 KB
  Інтеграція України до європейського економічного й інформаційного простору, поява нових сфер економічної діяльності тісно інтегрованих із інформаційними технологіями, що постійно оновлюються, зумовлюють необхідність у підвищенні якості економічної освіти та супроводжуються зростанням...
68201. ТЕОРІЯ І МЕТОДИКА ПРОЕКТУВАННЯ СИСТЕМИ ПЕДАГОГІЧНОЇ ПІДГОТОВКИ МАЙБУТНІХ ІНЖЕНЕРІВ-ПЕДАГОГІВ 523.5 KB
  Реалізація соціального замовлення суспільства на формування у майбутніх інженерівпедагогів умінь аналізувати прогнозувати та обирати раціональні шляхи й засоби навчання вимагає таких методологічних підходів які б забезпечували оновлення концепцій професійної педагогічної підготовки...
68202. ЗАДАЧІ З РУХОМИМИ МЕЖАМИ ДЛЯ ГІПЕРБОЛІЧНИХ СИСТЕМ КВАЗІЛІНІЙНИХ РІВНЯНЬ 1.29 MB
  Багато математичних моделей природознавства містять задачі з нелокальними нерозділеними або інтегральними крайовими умовами. Крайові задачі з нелокальними умовами для систем гіперболічних рівнянь досліджували...
68203. ЗАСТАВА В СИСТЕМІ МЕНЕДЖМЕНТУ КРЕДИТНОГО РИЗИКУ БАНКУ 283 KB
  У загальній структурі кредитних вкладень банків тільки 29 займає стандартна заборгованість при якій обслуговування боргу позичальником відповідає умовам кредитної угоди вказує на доцільність вивчення причин чому не спрацював механізм застави і банки не змогли відшкодувати належним чином...
68204. ІСТОРИКО-КНИГОЗНАВЧЕ ДОСЛІДЖЕННЯ ВИДАНЬ І. ФЕДОРОВА ТА П. МСТИСЛАВЦЯ: ФІЛІГРАНОЛОГІЧНИЙ АСПЕКТ 152.5 KB
  З цією метою здійснено історикокнигознавче дослідження водяних знаків їхніх спільних та окремих видань насамперед великоформатних для введення у науковий обіг відомостей історії друкування видань почерговості публікації їх частин історії закупівлі паперу виявлення невідомих раніше варіантів...
68205. ВИКОРИСТАННЯ ІМПОРТНОЇ СИРОВИНИ В ПАРФУМЕРНО-КОСМЕТИЧНІЙ ПРОМИСЛОВОСТІ: ОБЛІКОВО-КОНТРОЛЬНІ АСПЕКТИ 272.5 KB
  Для сучасних світових тенденцій економічного розвитку характерне зростання ролі зовнішньоекономічної діяльності. В процесі її здійснення виникають певні проблеми, зумовлені невідповідністю принципів вітчизняних стандартів бухгалтерського обліку вимогам митного та податкового законодавства...