Представление знаний в информационных системах

Автор работы: Пользователь скрыл имя, 03 Ноября 2012 в 06:38, контрольная работа

Краткое описание


Работа содержит 4 задания по дисциплине "Информатика" и их решения

Прикрепленные файлы: 1 файл

Представление знанийКонторльная.doc

— 2.15 Мб (Скачать документ)

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное учреждение высшего профессионального образования 

«Дальневосточная социально-гуманитарная академия»

 

 

 

Контрольная работа

Представление знаний в информационных системах

                         

 

 

 

 

 

 

        Выполнил:

                                                                                        Студент: Дивак И.С.                     

                                                                                        гр 1781 ЗО                                                                               

                                                                                                                                                                       Проверил: Баженов Р.И.

 

 

Биробиджан. 2011

 

Задание 1. В соответствии с вариантом записать в формализованном виде предложения из диапазона.

  1. Все антилопы стройные. 
    Стройные животные радуют глаз.
  2. Некоторые дядюшки не отличаются щедростью. 
    Все купцы щедры.
  3. Ни один несчастный человек не хохочет. 
    Ни один счастливый человек не стонет.
  4. Музыка, которую слышно, вызывает колебания воздуха. 
    Музыка, которую не слышно, не стоит того, чтобы платить за нее деньги.
  5. Он дал мне пять фунтов стерлингов. 
    Я был в восторге.

 

Запись в  формализованном виде:

1.Если все  антилопы стройные, то они радуют  глаза.

2.Если ваш  дядюшка не отличается щедростью,  то он не купец.

3.Если человек счастлив – он не стонет, иначе – он не хохочет.

4.Если музыка  вызывает колебания воздуха, то  за неё стоит заплатить деньги.

5.Если мне  дадут пять фунтов стерлингов, то я буду в восторге.

 

 

Задание 2. Запрограммируйте на языке Visual Prolog

  1. Роллик носит синие шорты. У Лялечки розовое платье. Твистик и Вальсик любят белые панамки. Твистик не любит носить панамку, он носит шляпу. Вальсик иногда надевает красную панамку. Тот, кто носит панамку, тот умеет ездить на драндулете. Только у Лялечки и Твистика дома живут мумрики. У остальных же дома живут мымрики. Домашнее животное — зеленого цвета, если его хозяин носит шляпу. Мымрик — цвета хаки, если его хозяин не умеет ездить на драндулете.

 

Код на языке  Пролог:

 

domains

name=string  % имя  - строковый тип

predicates

nosit(name,name) % кто что носит

zivyt(name,name) % кто с кем  живет

ezdit(name) %кто умеет ездить

zivotnoe_zelen(name) %у кого зверёк зеленый

ne_ymeet(name,name) % кто не умеет  ездить

mimrik_xaki(name) % у кого зверек  цвета хаки

clauses

nosit("Rolik","sinii shorti").                      %описание условий задачи

nosit("Lialechka","rozovoe plate").

nosit("Tvistik","shliapa").

nosit("Valsik","krasnai panama").

zivyt("mymrik","Lialechka").

zivyt("mymrik","Tvistik").

zivyt("mimrik","Rolik").

zivyt("mimrik","Valsik").

ne_ymeet("ezdit","Rollik").

ezdit(X):-nosit(X,"krasnai panama").

zivotnoe_zelen(X):-nosit(X,"shliapa").

mimrik_xaki(X):-ne_ymeet("ezdit",X).

Goal mimrik_xaki(X).      

 

Задание 3. Решить задачи на языке Visual Prolog.

  1. Посадил дед репку. Выросла репка большая-пребольшая. Пришло время собирать урожай. Репка-то большая одному деду ее не вытащить, позвал он тогда бабку, внучку, собаку Жучку, кошку Мурку с Мышкой, и они все вместе вытащили репку. Вопрос, тащил ли репку Вася?

 

Код на языке  пролог:

 

domains

name=string % имя - строковая  переменная

predicates

tashil(name) % кто тащил

clauses

tashil("Дед").            % описание условий

tashil("Бабка").

tashil("Внучка").

tashil("Жучка").

tashil("Мурка").

tashil("Мышка").

goal tashil("Вася").

 

  1. Выросла у деда репка, а тянуть ее некому. Внучка с Жучкой на Гавайях отдыхают. Мурка с бабкой в Швейцарии на лыжах катаются, а Мышка покоряет Эверест. Вот задача деду нелегкая: собрать их всех вместе.

 

Текст программы на языке  Пролог:

 

domains

list=string* % списоок строковых  переменных

predicates

nondeterm person(string,string) % персона - кто и где находится. Объъявлена как nondeterm, т.е. предикат может  совершить откат назад и генерировать множественные решения.

clauses

person("Внучка","Гавайи"). % описание условий

person("Жучка","Гавайи").

person("Бабка","Швейцария").

person("Мурка","Швейцария").

person("Мышка","Эверест").

 

goal findall (X, person(X,_), L), write(L). % Задание цели - группировка всех персон в одном списке и вывод списка на экран.

 

  1. Вытянули дед, бабка, внучка, Жучка, Мурка да Мышка репку. Приготовили вкусную кашу, разложили по тарелочкам, только собрались кушать, глядь — друг дедов в гости идет. Собралось их вот сколько: дед с другом, бабка, внучка, Жучка, Мурка да Мышка. Задание: выпроводить дедова дружка, чтобы всем досталось по труду.

 

Код программы  на языке Пролог:

 

domains

clas=string* % список  строковых переменных

predicates

nondeterm delete (string,clas,clas) % удаление элемента из списка

clauses

delete (X,[X|T],T). % если элемент - голова списка, то она удаляется

delete (X,[Y|T],[Y|L]):-delete (X,T,L). %если элемент в хвосте списка, он удаляется оттуда

goal delete (drug,[ded,drug,babka,vnuchka,juchka,murka,mouse],L). %цель - удаление элемента "Друг" из общего списка.

 

  1. Решил дед стать фермером: посадил огурцы, картошку, помидоры, груши, яблоки, сливы. Задание деду: рассортировать урожай на фрукты и овощи.

 

Код программы  на языке Пролог:

 

domains

name=string % строковая переменная

list=string* % список  строковых переменных

predicates

nondeterm fruit(name) % фрукт

nondeterm veg(name) % овощ

clauses

veg("ogurec").       %Описание условия

veg("kartofel").

veg("pomidor").

fruit("grusha").

fruit("yabloko").

fruit("sliva").

goal findall (X, fruit(X), L), write("Fruits: ",L,"     "), %цель - группировка переменных по  разным спискам с выводом каждого  списка на экран.

findall (Y, veg(Y), K), write("Vegetables: ",K).

 

 

Задание 4. Разработать простое приложение, рисующее в окне заданное изображение.

  1. Трехголовый чудо-юдо.

Подготовительный  этап

Создание папки, в котором будет располагаться  проект (c:\temp\tst).

Запуск Visual Prolog.

Выбор нового проекта  через меню: Project ® New Project.

Выбор для какой  платформы разрабатывается программа.

 

Выбор опций VPI, пакетов, которые будут использоваться при разработке программы.

Генерация кода (Create).

Создадим меню &Test для примеров (Text Message — окно с тестовым сообщением, Graphics — окно с графикой) с помощью генератора меню (Menu, Task Menu).

Разработка  окна с текстовым сообщением

Выбрать Code Expert.

Связываем пункт  меню с вызовом окна:

а) Event Type ® Menu, Event or Item ® id_Test_text_message;

б) добавляем код для вызова окна в текст программы (Add Clause, затем Edit Clause).

 

Вызываем контекстное меню  и выбираем Insert ® Predicate Call ® Window, Dialog or Toolbar.

В диалоговом окне используем   для выбора Common dialog  dlg_Note  и печатаем "Текстовое сообщение".

Проверяем выполнение Project ® Run.

Разработка  окна с графикой

Добавляем новый модуль. В окне проекта  выбираем кнопку Module, затем New. Вводим имя модуля Graph.pro. Выбираем инструкции для генерации кода.

Создаем новое окно через окно проекта (Window ®New).

После OK переходим в редактор окон.

Закрываем редактор окон.

Вызываем  Code Expert для генерации кода окна модуля Graph с помощью кнопки Default Code.

Добавляем в  меню вызов окна.

 

 

 

Вызываем Add Clause, Edit Clause.

Затем контекстное меню  Insert ® Predicate Call ® Window, Dialog or Toolbar.

Запрограммируем изображение в созданном окне.

Вызываем  Code Expert.  Добавим код для события e_Update в окне  Graph.

Вызываем Add Clause, Edit Clause.

Дописываем  код для рисования и получаем

Проверяем выполнение программы  Project ® Run. Далее выбираем Test -> Graphics

 

Результат:


Информация о работе Представление знаний в информационных системах