Введение в Автолисп | страница 8




Поскольку Автолисп всегда проверяет, является ли первый элемент выражения функцией, то выражение типа


(setq pt1 (3.0 4.5))


не будет принято; Автолисп выдаст сообщение об ошибке (в данном случае bad function, т.е., неверная функция), так как численный параметр 3.0 представляет собой вещественное число, а не функцию.


2. МАТЕМАТИКА В АВТОЛИСПЕ

2.1. Функции обработки чисел

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

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


C=A+B


или в Паскале


c:=a+b


в Автолиспе выглядит как


(setq с (+ a b)).


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


(+ число число ...). Функция возвращает сумму всех чисел. Числа могут быть как целыми, так и вещественными. Сумма целых чисел есть целое число. Если среди чисел есть хотя бы одно вещественное, результат - вещественное число. Например:


(+ 3 5) возвращает 8,

(+ 1 2 3 4.5) возвращает 10.5,

(+ 1 2.0 3 4 5) возвращает 15.0.


(- число [число] ...). Функция вычитает второе число из первого и возвращает результат. Если чисел несколько, то возвращается результат последовательного вычитания всех последующих чисел из первого. Если число одно, его знак меняется на обратный. Примеры:


(- 5 3) возвращает 2,

(- 18 4.5 6 2) возвращает 5.5,

(- 6) возвращает -6.


(* число [число] ...). Функция возвращает произведение всего рядя чисел. Если введено одно число, возвращается результат его умножения на единицу. Примеры:


(* 5 3) возвращает 15,

(* 2 3.5 4 6) возвращает 168.0,

(* 3) возвращает 3.


(/ число [число] ...). Функция возвращает результат деления первого числа на произведение всех последующих. Единственное введенное число делится на единицу. Примеры:


(/ 8 5) возвращает 1.6,

(/ 720 3 5 2) возвращает 24,

(/ 4) возвращает 4.


(1+ число) возвращает число, увеличенное на единицу,