Студопедия — Арифметика
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Арифметика






Простейшими командами являются математические функции. Например:

(+ 1 2) (+ 1 2 3 4) (* 2 3) (- 5 2) (- 5 2 2) (/ 8 3) (/ 8 2) (div 18 7) (mod 18 7) (** 3 2) (min 2 1 4 5 3) (round 6.7)


Параметры математических функций также в свою очередь могут быть заданы математическими функциями. Например:

(* (+ 1 2) 3 (* 4 5))

(sin (/ (pi) 6))

В командах CLIPS могут использоваться переменные. Для присваивания значения переменной используется команда bind. Например:

(bind?x 10)

?x

(**?x 2)

Заметим, что команда bind не только устанавливает значение переменной, но и возвращает установленное значение. При попытке использовать переменную, которой не было присвоено никакого значения, выводится предупреждение, при этом значением такой переменной считается символ FALSE.

Ввод-вывод при работе с консолью

Для вывода в консоль или в файл можно использовать команду printout. Первый параметр этой команды задает логическое имя файла, а остальные — выводимые значения. Для вывода в консоль первым параметром надо задать символ t. Для перевода строки используется символ crlf. Пример:

(printout t "Hello" crlf)

(printout t "2 * 3 = " (* 2 3) crlf)

Для ввода можно использовать команды read и readline. Будучи вызваны без параметров обе команды производят ввод с консоли. Команда read считывает данные до разделителя и может возвратить символ, строку или число; команда readline считывает данные до конца строки и всегда возвращает строку. В случае достижения конца файла обе команды возвращают символ EOF. Пример:

(bind?x (read))

Управление средой

Помимо математических функций в CLIPS другие команды. Перечислим некоторые из них:

· exit — завершение работы с системой CLIPS. В меню соответствует File/Exit;

· batch — выполняет команды, записанные в текстовом файле так, как если бы они были введены непосредственно в консоли. Имя файла задается параметром команды и должно является строкой (т. е. в двойных кавычках). В меню соответствует File/Load Batch…;

· batch* — то же, что batch, но без повтора самих выполняемых команд на экране;

· reset — сброс системы. В меню соответствует Execution/Reset.

Пример:

(batch "C:/Some folder/Some command file.bat")

Факты

Система CLIPS поддерживает два вида фактов: упорядоченные и шаблонные. Для работы с обоими видами фактов используются одни и те же команды; однако использование шаблонных фактов требует предварительного описания шаблона, в то время как для использования упорядоченных фактов ничего такого не надо.

Для ввода в список фактов используется команда assert, параметрами которой должны быть вводимые факты (отметим, что нет разницы, вводить ли несколько фактов одной командой или каждый факт — отдельной). В команде assert каждый факт должен быть задан отдельным списком. Первый элемент этого списка определяет тип факта и должен быть символом; остальные элементы задают параметры факты и могут быть произвольного типа. Если в списке, задающем факт, встречается вложенный список, то он интерпретируется как вызов функции, значение которой определяет значение соответствующего параметра факта. Пример:

(assert (weather fine))

(assert (temperature 5))

(assert (wind 7 north-east))

(assert (autumn))

(assert (location box-1 floor) (size box-1 80 60 40))

(assert (weight part-1 4.5) (weight part-2 8.25))

(assert (weight part-3 (+ 1.5 3.25)))

В списке фактов может одновременно находится несколько фактов одного типа, если эти факты различаются значением хотя бы одного параметра. Команда assert возвращает адрес факта, если он был успешно введен в список фактов или символ FALSE, если факт не был введен из-за того, что точно такой же факт уже находился в списке фактов.

Возвращаемый командой assert адрес факта не является ни числом, ни символом, ни строкой; — это значение специального типа данных. Адрес факта может быть использован, например, для удаления факта из списка фактов. Помимо адреса каждый факт, находящийся в списке фактов, характеризуется номером. Получить этот номер, зная адрес факта можно с помощью функции fact-index.

Отметим, что изначально список фактов не пуст: в нем присутствует факт initial-fact, не имеющий параметров. Номер этого факта — 0.

Просмотреть список фактов можно командой facts. По умолчанию (т. е. без параметров) эта команда выводит на экран весь список фактов; однако с помощью параметров можно задать минимальный и максимальный номер факта, а также максимальное количество выводимых фактов. Пример:

(facts)

(facts 7)

(facts 1 2)

Также для просмотра списка фактов в меню можно выбрать Window/Facts. В этом случае на экране появится окно Facts, отображающее текущее содержимое списка фактов. По мере добавления и удаления фактов содержимое этого окна автоматически обновляется.

Для удаления фактов используется команда retract, параметрами которой являются адреса или номера удаляемых фактов либо символ * (звездочка), предписывающий удаление всех фактов. Команда retract ничего не возвращает. Пример:

(bind?f (assert (weather fair)))

(retract?f)

(retract 0)

Также к удалению всех фактов приводит использование команды reset (ранее упомянутой). После удаления всех фактов команда reset автоматически добавляет в список фактов факт initial-fact.







Дата добавления: 2015-08-30; просмотров: 357. Нарушение авторских прав; Мы поможем в написании вашей работы!



Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Этические проблемы проведения экспериментов на человеке и животных В настоящее время четко определены новые подходы и требования к биомедицинским исследованиям...

Классификация потерь населения в очагах поражения в военное время Ядерное, химическое и бактериологическое (биологическое) оружие является оружием массового поражения...

Факторы, влияющие на степень электролитической диссоциации Степень диссоциации зависит от природы электролита и растворителя, концентрации раствора, температуры, присутствия одноименного иона и других факторов...

Меры безопасности при обращении с оружием и боеприпасами 64. Получение (сдача) оружия и боеприпасов для проведения стрельб осуществляется в установленном порядке[1]. 65. Безопасность при проведении стрельб обеспечивается...

Весы настольные циферблатные Весы настольные циферблатные РН-10Ц13 (рис.3.1) выпускаются с наибольшими пределами взвешивания 2...

Хронометражно-табличная методика определения суточного расхода энергии студента Цель: познакомиться с хронометражно-табличным методом опреде­ления суточного расхода энергии...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия