Представление знаний в информационных системах
Автор работы: Пользователь скрыл имя, 03 Ноября 2012 в 06:38, контрольная работа
Краткое описание
Работа содержит 4 задания по дисциплине "Информатика" и их решения
Прикрепленные файлы: 1 файл
Представление знанийКонторльная.doc
— 2.15 Мб (Скачать документ)ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное учреждение
высшего профессионального
«Дальневосточная социально-
Контрольная работа
Представление знаний в информационных системах
Выполнил:
Биробиджан. 2011
Задание 1. В соответствии с вариантом записать в формализованном виде предложения из диапазона.
- Все антилопы стройные.
Стройные животные радуют глаз. - Некоторые дядюшки не отличаются щедростью.
Все купцы щедры. - Ни один несчастный человек не хохочет.
Ни один счастливый человек не стонет. - Музыка, которую слышно, вызывает колебания воздуха.
Музыка, которую не слышно, не стоит того, чтобы платить за нее деньги. - Он дал мне пять фунтов стерлингов.
Я был в восторге.
Запись в формализованном виде:
1.Если все антилопы стройные, то они радуют глаза.
2.Если ваш
дядюшка не отличается
3.Если человек счастлив – он не стонет, иначе – он не хохочет.
4.Если музыка
вызывает колебания воздуха,
5.Если мне дадут пять фунтов стерлингов, то я буду в восторге.
Задание 2. Запрограммируйте на языке Visual Prolog
- Роллик носит синие шорты. У Лялечки розовое платье. Твистик и Вальсик любят белые панамки. Твистик не любит носить панамку, он носит шляпу. Вальсик иногда надевает красную панамку. Тот, кто носит панамку, тот умеет ездить на драндулете. Только у Лялечки и Твистика дома живут мумрики. У остальных же дома живут мымрики. Домашнее животное — зеленого цвета, если его хозяин носит шляпу. Мымрик — цвета хаки, если его хозяин не умеет ездить на драндулете.
Код на языке Пролог:
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,"
mimrik_xaki(X):-ne_ymeet("
Goal mimrik_xaki(X).
Задание 3. Решить задачи на языке Visual Prolog.
- Посадил дед репку. Выросла репка большая-пребольшая. Пришло время собирать урожай. Репка-то большая одному деду ее не вытащить, позвал он тогда бабку, внучку, собаку Жучку, кошку Мурку с Мышкой, и они все вместе вытащили репку. Вопрос, тащил ли репку Вася?
Код на языке пролог:
domains
name=string % имя - строковая переменная
predicates
tashil(name) % кто тащил
clauses
tashil("Дед"). % описание условий
tashil("Бабка").
tashil("Внучка").
tashil("Жучка").
tashil("Мурка").
tashil("Мышка").
goal tashil("Вася").
- Выросла у деда репка, а тянуть ее некому. Внучка с Жучкой на Гавайях отдыхают. Мурка с бабкой в Швейцарии на лыжах катаются, а Мышка покоряет Эверест. Вот задача деду нелегкая: собрать их всех вместе.
Текст программы на языке Пролог:
domains
list=string* % списоок строковых переменных
predicates
nondeterm person(string,string) % персона - кто и где находится. Объъявлена как nondeterm, т.е. предикат может совершить откат назад и генерировать множественные решения.
clauses
person("Внучка","Гавайи"). % описание условий
person("Жучка","Гавайи").
person("Бабка","Швейцария").
person("Мурка","Швейцария").
person("Мышка","Эверест").
goal findall (X, person(X,_), L), write(L). % Задание цели - группировка всех персон в одном списке и вывод списка на экран.
- Вытянули дед, бабка, внучка, Жучка, Мурка да Мышка репку. Приготовили вкусную кашу, разложили по тарелочкам, только собрались кушать, глядь — друг дедов в гости идет. Собралось их вот сколько: дед с другом, бабка, внучка, Жучка, Мурка да Мышка. Задание: выпроводить дедова дружка, чтобы всем досталось по труду.
Код программы на языке Пролог:
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,
- Решил дед стать фермером: посадил огурцы, картошку, помидоры, груши, яблоки, сливы. Задание деду: рассортировать урожай на фрукты и овощи.
Код программы на языке Пролог:
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. Разработать простое приложение, рисующее в окне заданное изображение.
- Трехголовый чудо-юдо.
Подготовительный этап
Создание папки, в котором будет располагаться проект (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
Результат: