Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Определение 15.3. Функции сравнения чиселСодержание книги
Поиск на нашем сайте
(<имя-функции> <численное-выражение1> <численное-выражение2>+)
Функции этой группы вычисляют полученные в качестве параметров выражения и проверяют, выполняется ли заданное условие между первым и всеми последующими аргументами. Если соответствующее условие выполняется, функция возвращает значение true, в противном случае — false. Все функции данной группы сравнивают только числовые значения и при необходимости преобразуют значения типа integer в тип float. Список и описание функций, предназначенных для сравнения чисел, приведен в табл. 15.2. Таблица 15.2. Функции сравнения чисел
Описанные выше функции сравнения чисел обладают одной важной особенностью. Благодаря тому, что точность чисел с плавающей точкой изменяется при переходе от одного компьютера к другому, функции сравнения могут получать различные результаты на различных компьютерах. Даже если код программы не переносится на другой ПК, погрешность округления может вызвать различные ошибки. В примере 15.2 функция = ошибочно возвратит значение true, потому что оба числа округлены до 0.6666666666666666667 (рис. 15.2). Пример 15.2. Ошибки округления
(= 0.66666666666666666666 0.66666666666666666667)
Кроме описанных выше функций CLIPS предоставляет также три функции стандартной булевой логики: and, or и not.
Рис. 15.2. Ошибки округления
Определение 15.4. Функции and, or и not (and <выражение>+) (or <выражение>+) (not <выражение>+) Функция and возвращает значение true, если значение каждого из ее аргументов равняется true. В противном случае она возвращает значение false. Каждый аргумент функции проверяется слева направо. Если встречается аргумент со значением false, проверка значений аргументов прекращается, и функция возвращает значение false. Функция or возвращает значение true, если значение хотя бы одного из ее аргументов равняется true. Иначе она возвращает значение false. Как и в случае функции and, аргументы функции проверяются слева направо. При встрече первого аргумента со значением true проверка значений аргументов прекращается, и все выражение получает значение true. Функция not возвращает значение true, если ее аргумент имеет значение, равное false. В противном случае она возвращает значение false.
Математические функции
Богатый набор математических функций, предоставляемый CLIPS, позволяет использовать эту среду не только для решения логических задач, но и для серьезных математических вычислений. Математические функции CLIPS разделены на два пакета: набор стандартных и набор расширенных математических функций. Стандартные математические функции перечислены в табл. 15.3.
Таблица 15.3. Стандартные математические функции
Перечисленные функции могут быть использованы только с числовыми аргументами. Если в математическую функцию будет передан аргумент строкового или другого неподходящего типа, функция вернет сообщение об ошибке. Ниже приведен синтаксис и описаны некоторые особенности стандартных математических функций. Функция + возвращает сумму своих аргументов. Если все аргументы функции принадлежат типу float, возвращаемое функцией значение также будет вещественного типа. Аналогично возвращаемый функцией результат принадлежит типу integer, если все аргументы целые. Сложение невыполнимо, если типы переданных аргументов различаются (integer и float). В этом случае функция возвращает промежуточное значение, полученное при сложении аргументов одинакового типа.
Определение 15.5. Функция +
(+ <выражение!> <выражение2>+)
Функция - возвращает значение ее первого аргумента минус все последующие. Определение 15.6. Функция –
(- <выражение!> <выражение2>+)
Функция * возвращает произведение своих аргументов. Все замечания по поводу типов аргументов, сделанные для функции +, в полной мере применимы к аргументам функций - и *.
Определение 15.7. Функция *
(* <выражение1> <выражение2>+)
Функция / возвращает частное от деления первого аргумента на каждый из последующих. Как и в случаях функций +, - и *, функция / не допускает смешанного набора аргументов. Однако по умолчанию делимое автоматически преобразуется в число с плавающей точкой. Таким образом, все последующие аргументы и результат выполнения функции должны представлять собой числа с плавающей точкой. Функция set-auto-float-dividend позволяет менять подобное поведение системы. Если, например, режим автоматического преобразования чисел при делении отключен, выражение (/ 4 3 4.0) возвратит значение 0.25, в то время как при конфигурации по умолчанию результатом подобного действия является 0.333333333.
Определение 15.8. Функция /
(/ <выражение1> <выражение2>+)
Функция div возвращает частное от деления первого аргумента на каждый из последующих. Все аргументы данной функции автоматически преобразуются в целые для выполнения целочисленного деления. Эта функция возвращает значение типа integer.
|
||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-03-10; просмотров: 109; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.6.122 (0.007 с.) |