ВУЗ:
Составители:
Рубрика:
24
по команде (reset) до запуска программы на выполнение. Для чего он нужен?
Дело в том, что в CLIPS-программах распространенными правилами
являются такие, которые добавляют факты в базу данных, либо, наоборот,
удаляют их. Типичной является ситуация, когда при старте программы в базе
данных нет фактов, удовлетворяющих хотя бы одному правилу. В этом
случае программа ничего не выполнит. Для того чтобы начать вычисления и
используется системный начальный факт, который, независимо от фактов в
базе данных, активизирует некоторое правило, добавляющее такие факты,
которые, в свою очередь, активизируют правила, условия которых не
выполнялись в начальный момент.
В данной программе (initial-fact) запускает правило start, которое
активизируется независимо от фактов в файле rep и присутствует в
программе только с одной целью – вывести заголовок. Для этого в его правой
части вызывается встроенная функция printout с ключом t, выводящая на
стандартное устройство вывода (монитор) заголовок, заключенный в
кавычки. Комбинация символов crlf является аналогом endl в С++ и служит
для перевода курсора на следующую строку.
Следующие три правила с именами odessa, kiev и lvov можно назвать
ядром программы. В них производится подсчет количества участников –
соответственно, из Одессы, Киева и Львова.
Рассмотрим правило lvov. Оно активизируется в том случае, когда в
базе данных находится факт (rep ? Lvov). Не трудно догадаться, что символ
“ ? “ во втором поле этого списка означает символ универсальной
подстановки и заменяет собой любую фамилию. Отсюда следует, что
правило lvov активизируется столько раз, сколько раз факт (rep ? Lvov)
присутствует в базе данных. При этом столько же раз выполнятся действия,
содержащиеся в правой части правила. Встроенная функция bind – аналог
оператора присваивания. Следовательно, содержимое переменной ?*lvov*
увеличивается на единицу и результат сохраняется в этой же переменной.
Аналогично работают правила odessa и kiev.
по команде (reset) до запуска программы на выполнение. Для чего он нужен? Дело в том, что в CLIPS-программах распространенными правилами являются такие, которые добавляют факты в базу данных, либо, наоборот, удаляют их. Типичной является ситуация, когда при старте программы в базе данных нет фактов, удовлетворяющих хотя бы одному правилу. В этом случае программа ничего не выполнит. Для того чтобы начать вычисления и используется системный начальный факт, который, независимо от фактов в базе данных, активизирует некоторое правило, добавляющее такие факты, которые, в свою очередь, активизируют правила, условия которых не выполнялись в начальный момент. В данной программе (initial-fact) запускает правило start, которое активизируется независимо от фактов в файле rep и присутствует в программе только с одной целью – вывести заголовок. Для этого в его правой части вызывается встроенная функция printout с ключом t, выводящая на стандартное устройство вывода (монитор) заголовок, заключенный в кавычки. Комбинация символов crlf является аналогом endl в С++ и служит для перевода курсора на следующую строку. Следующие три правила с именами odessa, kiev и lvov можно назвать ядром программы. В них производится подсчет количества участников – соответственно, из Одессы, Киева и Львова. Рассмотрим правило lvov. Оно активизируется в том случае, когда в базе данных находится факт (rep ? Lvov). Не трудно догадаться, что символ “ ? “ во втором поле этого списка означает символ универсальной подстановки и заменяет собой любую фамилию. Отсюда следует, что правило lvov активизируется столько раз, сколько раз факт (rep ? Lvov) присутствует в базе данных. При этом столько же раз выполнятся действия, содержащиеся в правой части правила. Встроенная функция bind – аналог оператора присваивания. Следовательно, содержимое переменной ?*lvov* увеличивается на единицу и результат сохраняется в этой же переменной. Аналогично работают правила odessa и kiev. 24
Страницы
- « первая
- ‹ предыдущая
- …
- 22
- 23
- 24
- 25
- 26
- …
- следующая ›
- последняя »