Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Определение 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. Стандартные математические функции

Функция Описание
+ Сложение
- Вычитание
* Умножение
/ Деление
div Целочисленное деление
max Максимальное числовое значение
min Минимальное числовое значение
abs Абсолютное значение
float Преобразование в тип float
integer Преобразование в тип integer

 

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

Функция + возвращает сумму своих аргументов. Если все аргументы функ­ции принадлежат типу 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 с.)