50868

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

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

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

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

Русский

2014-01-31

160 KB

1 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ, НАУКИ, МОЛОДЕЖИ И СПОРТА УКРАИНЫ

ОДЕССКИЙ НАЦИОНАЛЬНЫЙ МОРСКОЙ УНИВЕРСИТЕТ

Кафедра «Информационные технологии»

Отчёт о выполнении лабораторной работы №6

 

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

Выполнил:

Студент КСФ 4 к. 4 гр.

Мельников В.Е.

Проверил:

Рудниченко Н.Д.

Одесса 2013

Задание к работе

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

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

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

book(number, name, author, year, publishing, country)– описывает книгу:

 number – порядковый номер книги

 name – название книг

 author – имя автора книги

 year – год печати книги

 publishing – название издательства

 country – название страны издания

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

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

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

search_country(country) – организует поиск книги по ее стране издательства country и выводит результаты поиска на экран.

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

search_publishing(publishing) – организует поиск книги по ее издательству publishing и выводит результаты поиска на экран.

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

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

domains

number = integer

name = string

author = string

year = integer

publishing = string

country = string

 

predicates

nondeterm book(number, name, author, year, publishing, country)

nondeterm start

nondeterm analyze(integer)

nondeterm search_number(number)

nondeterm search_country(country)

nondeterm search_year(year)

nondeterm search_publishing(publishing)

nondeterm exit_program(char)

 

clauses

book(1, "Миг бытия так краток","Роджер Желязны", 1991, "Новелла","США").

 book(2, "Патруль Времени","Пол Андерсон", 1994, "Александрия","США").

 book(3, "Совершенный код","Стив Макконнелл", 2008, "Питер","США").

 book(4, "Заставьте танцевать мертвеца","Джеймс Хэдли Чейз", 1997, "Центрполиграф","Великобритания").

 book(5, "Монах, который продал свой Феррари","Робин Шарма", 2009, "София","Канада").

 book(6, "Одна минута глупости","Энтони де Мелло", 2009, "София","Индия").

 book(7, "Психология влияния","Роберт Чалдини", 2009, "Питер","США").

 book(8, "1984","Джордж Оруэлл", 2005, "София","Индия").

 book(9, "Самый богатый человек в Вавилоне","Джорж Клейсон", 2003, "Эридан","США").

 book(10, "Дверь в лето","Роберт Хайнлайн", 1991, "Лениздат","США").

 

 start if write("Программа 'Топ-10 книг'!\n\n"),

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

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

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

 write("3 - найти все книги,выпущенные в одной стране\n"),

 write("4 - найти все книги одного издательства\n"),

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

 write("\n"),

 readint(X),

 write("\n"),

 analyze(X),

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

 readchar(Yes_No),

 exit_program(Yes_No).

 

analyze(1) if

      write("Вы ввели: 1\n"),

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

      readint(Number),

      search_number(Number).

analyze(2) if

  write("Вы ввели: 2\n"),

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

  readint(Year),

  search_year(Year).

 

analyze(3) if

  write("Вы ввели: 3\n"),

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

  readln(Country),

  search_country(Country).

analyze(4) if

  write("Вы ввели: 4\n"),

  write("Введите название издательства\n"),

  readln(Published),

  search_publishing(Published).

 

analyze(5) if write("You've decided to exit.\nGoodbye!"),

  exit.

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

     writef("\n").

search_publishing(Published) if not(book(_,_,_,_,Published,_)),

  write("Книг данного издательства нет\n"),

  writef("\n").

search_publishing(Published) if book(_,Name,_,_,Published,_),

  writef("Книга - %s\n",Name),

  fail.

search_publishing(_) if writef("\n"),

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

  readchar(Yes_No),

  exit_program(Yes_No).

 

 

search_year(Year) if not(book(_,_,_,Year,_,_)),

  write("Книг данного года печати нет\n"),

  writef("\n").

search_year(Year) if book(_,Name,_,Year,_,_),

  writef("Книга - %s\n",Name),

  fail.

search_year(_) if writef("\n"),

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

  readchar(Yes_No),

  exit_program(Yes_No).

search_country(Country) if not(book(_,_,_,_,_,Country)),

  write("Книг данной страны нет\n"),

  writef("\n").

search_country(Country) if book(_,Name,_,_,_,Country),

  writef("Книга - %s\n",Name),

  fail.

search_country(_) if writef("\n"),

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

  readchar(Yes_No),

  exit_program(Yes_No).

 

search_number(Number) if not(book(Number,_,_,_,_,_)),

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

 search_number(Number) if book(Number,Name,Author,_,_,Country),

 writef("Эта книга - %s\n",Name),

 writef("Автор - %s\n",Author),

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

 writef("\n").

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

goal

start. 

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

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

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

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

При выборе пункта №3 будут найдены все книги, изданные в одной стране:

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

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


 

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

31731. Педагогічні здібності вчителя та їх розвиток 28.5 KB
  Педагогічні здібності - це індивідуальні стійкі властивості особистості, що складаються в специфічної чутливості до об'єкта, засобів, умов педагогічної праці і створенню продуктивних моделей формування шуканих якостей в особистості воспитуемого.
31732. Психологічні передумови взаємин вчителя з учнями та колегами 30 KB
  Психологічні передумови взаємин вчителя з учнями та колегами Професіональне педагогічне спілкування комунікативна взаємодія педагога з учнями батьками колегами спрямована на встановлення сприятливого психологічного клімату психологічну оптимізацію діяльності і стосунків. Непрофесіональне педагогічне спілкування навпаки породжує страх невпевненість спричинює зниження працездатності порушення динаміки мовлення і внаслідок цього появу стереотипних висловлювань у школярів оскільки у них зменшується бажання думати і діяти самостійно....
31733. CASE-технологии 62.5 KB
  02 CSEтехнологии 1. Основные понятия и классификация CSEтехнологий Потребность контролировать процесс разработки ИС прогнозировать и гарантировать стоимость разработки сроки и качество результатов привела в конце 70х гг. Термин CSE означает Computer ided System Softwre Engineering. Под CSE средством понимается программное средство поддерживающее процессы жизненного цикла ИС включая анализ требований к системе проектирование прикладного ПО и баз данных генерацию кода тестирование документирование обеспечение качества...
31734. CASE-средства, практическое внедрение CASE-средств 150.5 KB
  Технология внедрения CSEсредств Процесс внедрения CSEсредств включает следующие этапы: определение потребностей в CSEсредствах; оценка и выбор CSEсредств; выполнение пилотного проекта; практическое внедрение CSEсредств. Несмотря на все потенциальные возможности CSEсредств существует множество примеров их неудачного внедрения в результате чего эти средства становятся полочным ПО shelfwre. В связи с этим необходимо отметить следующее: CSEсредства не обязательно дают немедленный эффект; он может быть получен только спустя...
31735. CASE-средства, реализующие структурный подход 277.5 KB
  В состав этого семейства продуктов входят: llFusion Process Modeler ранее носивший название BPwin средство моделирования бизнеспроцессов; llFusion ERwin Dt Modeler ранее называвшийся ERwin средство моделирования данных являющееся самым популярным в мире в этой категории продуктов; llFusion Dt Model Vlidtor бывший ERwin Exminer средство проверки корректности моделей данных и их соответствия правилам нормализации; llFusion Model Mnger бывший ModelMrt серверный продукт обеспечивающий коллективную работу пользователей ERwin и...
31736. ИС: Основные понятия 78 KB
  Методологические основы проектирования ИС Процесс проектирования ИС это процесс принятия проектноконструкторских решении направленных на получение описания системы проекта ИС удовлетворяющего требования заказчика. Под проектированием ИС понимается процесс преобразования входной информации об объекте проектирования о методах проектирования и об опыте проектирования объектов аналогичного назначения в соответствии с ГОСТом в проект ИС. С этой точки зрения проектирование ИС сводится к последовательной формализации проектных решений на...
31737. Жизненный цикл ИС 92 KB
  Жизненный цикл ИС Потребность в создании ЭИС может обусловливаться либо необходимостью автоматизации или модернизации существующих информационных процессов либо необходимостью коренной реорганизации в деятельности предприятия проведении бизнесреинжиниринга. Потребности создания ЭИС указывают вопервых для достижения каких именно целей необходимо разработать систему; вовторых к какому моменту времени целесообразно осуществить разработку; втретьих какие затраты необходимо осуществить для проектирования системы. Проектирование ЭИС ...
31738. МОДЕЛИ ЖИЗНЕННОГО ЦИКЛА ПО 128.5 KB
  1 МОДЕЛИ И СТАДИИ ЖЦ ПО Под моделью ЖЦ ИС понимается структура определяющая последовательность выполнения и взаимосвязи процессов действий и задач на протяжении ЖЦ. Модель ЖЦ ЭИС определяет характер процесса его создания который представляет собой совокупность упорядоченных во времени взаимосвязанных и объединенных в стадии работ выполнение которых необходимо и достаточно для создания ПО соответствующего заданным требованиям. Под стадией создания ПО понимается часть процесса создания ПО ограниченная некоторыми временными рамками и...