Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Решение задачи




Алгоритм решения

Постановка задачи

Постановка задачи и составление программы

Организация работы в ИО CLIPS

Интерфейс встроенного редактора

Редактор CLIPS представляет собой встроенный текстовый редактор, предназначенный для написания программ для CLIPS. В табл. 10.2. приведено краткое описание всех пунктов меню GUI-интерфейса редактора.

Таблица 10.2.

Меню Пункт Сочетание клавиш Назначение
File New Ctrl-N Открывает новый файл для редактирования с именем untitled
Open Ctrl-O Открытие текстового файла для редактирования. Открыт может быть только один файл
Save Ctrl-S Сохранение редактируемого файла. Если файл не был назван, диалоговое окно запросит имя файла, чтобы сохранить файл

 

      Окончание таблицы
Меню Пункт Сочетание клавиш Назначение
File Save As   Сохранение редактируемого файла под новым именем
Page Setup   Определение параметров страницы (используется при печати)
Print Ctrl-P Печать активного окна редактирования
Quit Editor Ctrl-Q Выход из редактора
Edit Undo Ctrl-Z Отмена последней операции редактирования
Cut Ctrl-X Удаление выделенного фрагмента в буфер обмена
Copy Ctrl-C Копирование выделенного фрагмента в буфер обмена
Paste Ctrl-V Копирование содержимого буфера обмена в окно редактирования
Clear   Удаление выделенного фрагмента

 

Порядок работы в ИО CLIPS целесообразно рассмотреть на примере решения несложной логической задачи.

1. Дан ребус: GERALD + DONALD = ROBERT.

2. В словах GERALD, DONALD и ROBERT вместо букв необходимо поставить цифры таким образом, чтобы получилось математически правильное выражение. Разным буквам должны соответствовать разные цифры.

3. Требуется написать программу решения ребуса.

 

1. Рассмотрим первые разряды всех трех чисел. Считаем, что первый разряд − это единицы, второй разряд – это десятки, третий – сотни и т.д. Очевидно, что нахождение множества пар (буква–цифра), входящих в решение задачи, должно удовлетворять условию:

(((D + D) mod 10) = Т) & (D? Т). (10.1)

2. Рассмотрим второй разряд совместно с первым. Необходимо подобрать такие числа L и R, чтобы остаток отделения суммы (L*10 + L*10 + D + D) на 100 был равен (R*10 + Т). При этом следует учесть, что L и R не равны между собой и не равны D и Т.

Таким образом, среди множества пар (буква–цифра), удовлетворяющих первому условию, необходимо найти такие, чтобы:

(((L*10 + L*10 + D + D) mod 100) = (R*10 + T))&(D?T?L?R). (10.2)

3. Продолжая действовать подобным образом, можно выписать конечное условие, которому должны удовлетворять пары (буква–цифра), входящие в решение данной задачи.

Сформулируем описанный выше подход к решению в терминах CLIPS.

Представим комбинации из одной буквы и одной цифры в виде фактов:

(combination D 0), (combination D 1), (combination A 1) и т.д.

В первую очередь составим правило для нахождения комбинаций (буква- цифра), удовлетворяющих условию (10.1):

(defrule find_solution

(combination D?d)

(combination T?t&~?d)

(test (= (mod (+?d?d) 10)?t))

=>

(printout t "A solution is:" t t)

(printout t " D = "?d t)

(printout t " T = "?t t))

Данное правило выполнимо только в том случае, если в списке фактов существуют факты, удовлетворяющие условиям:

1) (combination D?d) – все факты, в которых в первой и во второй позициях стоят «combination» и «D» соответственно, а в третьей позиции любое значение, это значение присваивается переменной?d.

2) (combination Т?t&~?d) – все факты, в которых в первой и во второй позициях стоят «combination» и «Т» соответственно, а в третьей позиции − любое значение, только не то, которое было присвоено переменной?d, это значение присваивается переменной?t. Знак «&» означает логическое «и» (and), а знак «~» – логическое «не» (not). Выражение «?t&~?d» означает, что переменная?t может принимать значение, не равное значению переменной?d.

3) (test (= (mod (+?d?d) 10)?t)) – это условие проверяет на равенство два выражения (mod (+?d?d) 10) и (?t)).

Команда (printout t "A solution is:" t t) выводит на экран информацию, которая указывается после команды в полях, разделенных пробелами. Чтобы вывести текст, его необходимо заключить в кавычки, а перед кавычками поставить букву t. Эта буква указывает, что в следующем поле находится текст, взятый в кавычки, и который необходимо напечатать. Если после буквы t нет текста в кавычках, то происходит перевод курсора на новую строку.

Перевести курсор на новую строку можно путем указания комбинации символов «crlf» без кавычек. Для вывода значения переменной необходимо просто указать ее имя.

 




Поделиться с друзьями:


Дата добавления: 2014-12-29; Просмотров: 953; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.