
- •Министерство образования и науки Российской Федерации
- •Задание на лабораторную работу
- •Задание на лабораторную работу
- •Задание на лабораторную работу
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Задание на лабораторную работы
- •Дополнительная литература
- •Периодическая литература
- •Интернет-ресурсы
Задание на лабораторную работу
Написать программу, определяющую является ли число n(номер варианта) простым. Для хранения числаnиспользовать глобальную переменную.
Порядок выполнения работы
Представить на естественном языке алгоритм работы программы.
Реализовать алгоритм на языке CLIPS.
Проверить результат работы программы для разных входных данных.
Требования к отчету
Разработанный программный модуль на языке CLIPSс комментариями
Результаты выполнения программного модуля
Выводы.
Контрольные вопросы
Какая конструкция языка CLIPSиспользуется для создания правил?
Как организуется в CLIPSцикл? Приведите пример.
Лабораторная работа №5
Эвристический подход к представлению знаний
Цель: научиться работать с фактами языка CLIPS, закрепить знания по работе с правилами, изучить составные величины
Вопросы для предварительного изучения
1. Изучить материал лекции 5.
2. Ознакомиться с материалом основной литературы.
3. Ознакомиться с материалами дополнительной литературы.
Краткие теоретические сведения
Составные величины или составные поля являются одной из отличительных особенностей среды CLIPS. Для работы с такими величинами предназначена специальная группа функций, краткое описание которых приведено в табл.
Функции работы составными величинами
-
Функция
Описание
create$
Создание составной величины
nth$
Получение конкретного элемента составной величины
member$
Поиск конкретного элемента составной величины
subsetp
Определение, не является ли одна составная величина подмножеством другой составной величины
delete$
Удаление конкретного элемента составной величины
explode$
Создание составной величины из строки
implode$
Создание строки из составной величины
subseq$
Извлечение подпоследовательности из составной величины
replace$
Замена элемента составной величины
insert$
Добавление новых элементов в составную величину
first$
Получение первого элемента составной величины
rest$
Получение остатка составной величины
length$
Определение числа элементов составной величины
delete-member$
Удаление заданных элементов составной величины
replace-member$
Замена заданных элементов составной величины
Функция create$ объединяет заданное количество выражений для создания составной величины. Независимо от количества полей, получившихся в результате, возвращаемое функцией значение всегда является составной величиной. Вызов функции без аргументов возвращает составную величину с нулевой длиной.
(create$ <выражение>*)
Для получения конкретного поля составной величины предназначена функция nth$.
(nth$ <целое> <составная-величина>)
Первый аргумент данной функции должен быть целым числом, большим или равным 1, который определяет индекс поля в составной величине, заданной вторым аргументом. Если заданное число больше количества элементов в составной величине, функция вернет значение nil. Значение, возвращаемое функцией, в любом случае является значением типа symbol.
Функция member$ возвращает индекс поля, если оно содержится в составной величине. Если первый аргумент этой функции — простая величина, которая является каким-либо полем второго аргумента, то функция member$ вернет целое число — индекс соответствующего поля. Если первый аргумент — составная величина, и она представляет собой часть второго аргумента, тогда функция возвращает два индекса — начала и конца первой составной величины во второй величине. В противном случае функция возвращает значение false.
(member$ <выражение> <составная-величина>)
Функция subsetp проверяет, не является ли одна составная величина подмножеством другой, т. е. содержатся ли все поля первой составной величины и во второй составной величине. Если первая составная величина является подмножеством второй, функция возвращает значение true, в противном случае — false. Порядок полей не оказывает влияния на работу функции.