понедельник, 2 сентября 2013 г.

Арифметические функции AutoLISP



Рис 1 Все  функции.


Самые простые функции на  любом языке программирования – являются арифметические. И ЛИСП не исключение в данной ситуации.  Результат возвращаемого значения напрямую зависит от зависит от типа аргументов, которыми оперирует функция. Допустим, если все аргумента одного типа, то и функция  вернет значение того же типа.

Давайте рассмотрим все   типы функций по порядку.
И так первая функция сложения +. Синтаксис :  (+ [ число 1] [число 2]  [число 3] …..]). Аргументами для данной функции могут быть,  как целые, так и вещественные  числа.  Если все аргументы целые, то функция вернет целое число. Если хотя бы один аргумент  вещественный, то функция и вернет  вещественное значение.  Если аргументов нет , то функция вернет целое значение.  Если аргумент один, то функция вернет его значение, то есть значение, равное значению это аргумента.
Пример:
(+ 10 20) вернет 30.

(+ 0) вернет 0

(+ -1.3   10. 4) вернет 9.1

(+ 1  4  1.0) вернет 6. 0 Как мы видим  3 и 4 пример имеют в своем составе вещественный аргумент.    

Следующая функция   -.  Вычисляет разность чисел.    Все аналогично с функцией +. Но имеются некоторые особенности.   Если один аргумент, то возвращает значение число с противоположным знаком. А если количество аргументов более двух, то из первого вычитается значение всех остальных.
Примеры:
( -  3) возвращает значение с противоположным  знаком, то есть -3

(-  -5   2.8   2.1) вернет -9.9

(- 5  1  2) вернет 2
Функция *.  Вычисляет произведение чисел.  Синтаксис  такой  же как и у функции + (сложение). И Тип аргументов такой же и возвращает такие же значения.      
Примеры:
(* 7) вернет 7

(*) вернет ноль

(* 3 2 -1.1) вернет  -6.6
Функция / (разделить) синтаксис такой же, как у функции умножить.
Примеры:
( / 10) вернет 10

(/) вернет 0

(/ 4 1.1  -0.2) вернет – 18,1818 Но на самом деле результат будет с максимальной точностью . Просто на экране будет показано 6 цифр.      

Функция 1+ увеличивает число на 1.  Возвращает  либо целое значение, либо вещественное. Все зависит от типа аргумента.
Примеры
(1+ 3) вернет 4 - целое значение, так как  аргумент целое число.

(1+ 3.2) вернет 4.2 – вещественное значение, так как аргумент вещественный

(1+ -4.3) вернет 3.3

Функция 1-  уменьшает аргумент на 1. Синтаксис такой же,  как у 1+.

Примеры:

(1 – 12) вернет 11 целое значение

(1 – 2.16) вернет 1.16 вещественное значение    
Следующая и не маловажная арифметическая функция языка AutoLISP - ~.  Увеличивает сумму на 1 и при этом меняется знак на -.
Тип аргумента только целое число. Тип возвращаемого значения функции то же целое.
Примеры:
(~8) вернет -9

 (~0)  вернет -1

Функция abs . Функция вычисляет абсолютную величину числа. 
Тип аргумента целое или вещественное число. Тип возвращаемого значения: Целое, если аргумент целый и вещественное, если аргумент вещественный.
 Примеры
(abs 4) возвращает 4

(abs -2,2) возвращает 2,2.

На рис. 1 изображены все функции из примеров для наглядности. Синий - это имена арифметических функций. Зеленый - целые числа,  салатовый (или скорее голубой) вещественные значения аргумента.  



Комментариев нет:

Отправить комментарий