ВУЗ:
Составители:
Рубрика:
27
(printout t “Input strait value: “)
(bind ?u (read))
(assert (numbers ?i ?u)))
(defrule take; подобрать резистор из БД
(numbers ?i ?u)
(resistor ?r =(om ?i ?u))
=>
(printout t crlf “You must take resistor « ?r».” crlf crlf)
(reset)
(halt))
(defrule nothing; если в БД нет подходящего резистора
(numbers ?i ?u)
(resistor ?r ~=(om ?i ?u))
=>
(printout t crlf “There is nothing for You in my database!” crlf
crlf)
(reset)
(halt))
Программа состоит из нескольких частей: базы данных с именем
resistors, объявления пользовательской функции om и трех правил с именами
input, take и nothing.
В базе данных содержатся сведения о резисторах. Они представлены в
виде списков, состоящих из трех полей. Первое поле имеет значение resistor,
которое отражает тип радиодетали. Во втором поле списка содержится тип
резистора. Последнее поле хранит значение сопротивления.
О функции om подробно говорилось ранее. В данном случае она
используется для представления процедурного знания – закона Ома. Правило
input предназначено для ввода исходных данных. Оно активизируется
системным начальным фактом и требует от пользователя ввести ток и
напряжение. Встроенная функция read возвращает значение, введенное со
стандартного устройства ввода (клавиатуры), которое сохраняется в
переменных ?i и ?u.
В правой части правила выполняется еще одно действие. Команда
assert добавляет в рабочую память интерпретатора CLIPS факт (numbers ?i ?u)
для того, чтобы можно было обращаться к локальным переменным ?i и ?u,
связанным с правилом input, из других правил программы.
(printout t “Input strait value: “) (bind ?u (read)) (assert (numbers ?i ?u))) (defrule take; подобрать резистор из БД (numbers ?i ?u) (resistor ?r =(om ?i ?u)) => (printout t crlf “You must take resistor « ?r».” crlf crlf) (reset) (halt)) (defrule nothing; если в БД нет подходящего резистора (numbers ?i ?u) (resistor ?r ~=(om ?i ?u)) => (printout t crlf “There is nothing for You in my database!” crlf crlf) (reset) (halt)) Программа состоит из нескольких частей: базы данных с именем resistors, объявления пользовательской функции om и трех правил с именами input, take и nothing. В базе данных содержатся сведения о резисторах. Они представлены в виде списков, состоящих из трех полей. Первое поле имеет значение resistor, которое отражает тип радиодетали. Во втором поле списка содержится тип резистора. Последнее поле хранит значение сопротивления. О функции om подробно говорилось ранее. В данном случае она используется для представления процедурного знания – закона Ома. Правило input предназначено для ввода исходных данных. Оно активизируется системным начальным фактом и требует от пользователя ввести ток и напряжение. Встроенная функция read возвращает значение, введенное со стандартного устройства ввода (клавиатуры), которое сохраняется в переменных ?i и ?u. В правой части правила выполняется еще одно действие. Команда assert добавляет в рабочую память интерпретатора CLIPS факт (numbers ?i ?u) для того, чтобы можно было обращаться к локальным переменным ?i и ?u, связанным с правилом input, из других правил программы. 27
Страницы
- « первая
- ‹ предыдущая
- …
- 25
- 26
- 27
- 28
- 29
- …
- следующая ›
- последняя »