КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Функции, работающие со списками и точечными парами
Функции вычислений К основным вычислительным функциям относятся следующие функции: - (fix <число>) - усечение числа до целого (отбрасывается дробная часть); - (rem [<число1> [<число2>... [<числоN>]... ]]) - получение остатка от деления аргументов <число1> на <число2>, затем остатка от деления результата на аргумент <число3> и т. д.; - (mах [<число1> [<число2>... [<числоN>]... ]]) - определение максимального из чисел; - (min [<число1> [<число2>... [<число1N>]... ]]) - определение минимального из чисел; - (gcd <число1> <число2>) - вычисление наибольшего общего делителя для двух положительных целых чисел; - (angle <точка1> <точка2>) - вычисление угла, в радианах, между осью Х текущей системы координат и вектором, идущим из точки заданной аргументом <точка1> в точку заданную аргументом <точка2>; - (distance <точка1> <точка2>) - вычисление расстояния между двумя точками, заданными аргументами <точка1> и <точка2>; - (sqrt <число>) - вычисление квадратного корня; - (sin <число>) - вычисление синуса угла; - (cos <число>) - вычисление косинуса угла; - (atan <число1> [<число2>]) - вычисление арктангенса; если второй аргумент опущен, то вычисляется арктангенс от первого аргумента <число1>; если заданы оба аргумента, то вычисляется арктангенс частного от деления первого аргумента на второй <число1>/<число2>; если аргумент <число2> равен нулю, то возвращается угол +pi/2 или -pi/2 (знак выбирается по знаку аргумента <число1>); - (ехр <число>) - вычисление натурального антилогарифма- результата возведения в степень постоянной е (2.71828); - (expt <основание> <степень>) - возведение числа в степень; - (log <число>) - вычисление натурального логарифма. Примеры: (fix -10.083) - возвращает -10; (fix 40.45) - возвращает 40; (rem 14 2) - возвращает о (результат целый, т. к. оба аргумента целые); (rem 12.9 3.5) - возвращает 2.4; (max 7 3.4 2.0092) - возвращает 7.о (результат вещественный, поскольку есть вещественные аргументы); (min 7 3.4 2.0092) - возвращает 2.0092; (gcd 42 12) - возвращает б; (angle ' (0 0) ' (50.0 50.0)) - возвращает 0.785398; (distance ' (0 0) ' (250.0 0.0)) - возвращает 250.0; (sqrt 25) - возвращает 5.0; (sin 0.0) - возвращает 0.0; (cos 0.0) - возвращает 1.0; (atan 1) - возвращает 0. 785398; (atan -1 0) - возвращает -1.5708; (ехр 1) - возвращает 2.71828; (expt 2 2) - возвращает 4 (оба аргумента целые); (expt -2 2.0) - возвращает 4.0; (log 1) - возвращает 0.0.
Следующая группа функций - это функции, работающие со списками и точечными парами. Точечная пара - это двухэлементный список вида (а. b), в котором в качестве особого разделителя выступает точка (точка в такой записи отделяется пробелом как от первого, так и от второго элементов). Точечные пары используются для хранения в файлах системы AutoCAD данных о графических примитивах. Первый элемент точечной пары обычно является целым числом и называется DXF-кодом, а второй - данными этого кода. Основной способ получения точечных пар - функция cons. Есть отличия в работе некоторых функций со списками и с точечными парами. Функция list - это основная функция, позволяющая создать список: (list (<элемент1> [<элемент2>... [<элементN>]... ] ]) В качестве аргументов <элементы>, из которых образуется список, могут выступать любые объекты, которыми оперирует AutoLISP. Самый распространенный список - это список из двух или трех вещественных чисел, представляющий точку. В качестве элементов списка могут выступать другие списки или точечные пары. Примеры: (list 12.12 0.34 5.88) - возвращает (12.12 0.34 5.88); (list 1 "ad2" (list 0 1 2)) - возвращает (1 "ad2" (0 1 2)) (третьим элементом нового списка является список из чисел 0, 1 и 2). Следующие функции выполняют основные операции со списками: - (append [<список1> [<список2>... [<списокN>]... ] ]) - слияние списков в один; - (nth <номер> <список>) - извлечение из списка элемента по порядковому номеру (нумерация элементов списка выполняется слева направо и начинается с нуля); - (reverse <список>) - переворот списка; - (car <список>) - извлечение первого элемента списка или точечной пары; - (cdr <список>) - извлечение из списка подсписка путем удаления первого элемента, если аргумент <список> является простым списком (т. е. не точечной парой), или извлечение второго элемента, если <список> является точечной парой. Примеры: (append '(14 16) '(12.12 0.34 5.88)) - возвращает (14 16 12.12 0.34 5.88); (nth о '(12.12 0.34 5.88)) - возвращает 12.12; (reverse '(12.12 0.34 5.88)) - возвращает (5.88 0.34 12.12); (car '(12.12 0.34 5. 88)) - возвращает 12.12; (car '(62. 1)) - возвращает 62; (cdr '(12.12 0.34 5.88)) - возвращает (0.34 5.88); (cdr ' (62. 1)) - возвращает 1. От функции car и cdr путем их повторения в разных комбинациях от двух до четырех раз в языке AutoLISP образованы следующие функции (их двадцать восемь): - (сааr <список>) -равносильно (car (car <список>)); - (cadr <список>) -равносильно (car (cdr <список>)); - (cdar <список>) -равносильно (cdr (car <список>)); - (cddr <список>) -равносильно (cdr (cdr <список>)); - (саааr <список>) - равносильно (car (car (car <список>))) - (caadr <список>) - равносильно (car (car (cdr <список>))) - (cadar <список>) - равносильно (car (cdr (car <список>))) - (caddr <список>) - равносильно (car (cdr (cdr <список>))) - (cdaar <список>) - равносильно (cdr (car (car <список>))) - (cdadr <список>) -равносильно (cdr (car (cdr <список>))) - (cddar <список>) - равносильно (cdr (cdr (car <список>))) - (cdddr <список>) -равносильно (cdr (cdr (cdr <список>))) - (caaaar <список>) -равносильно (car (car (car (car <список>)))); - (caaadr <список>) -равносильно (car (car (car (cdr <список>)))). Аналогичным методом раскрываются оставшиеся функции (caadar, caaddr, cadaar, cadadr, caddar, cadddr, cdaaar, cdaadr, cdadar, cdaddr, cddaar, cdddar, cddadr, cddddr). Функция cons добавляет к списку первый элемент или создает точечную пару: (cons <аргумент1> <аргумент2>) Если <аргумент2> является списком, то функция cons добавляет в него <аргумент1> в качестве нового первого элемента. Если <аргумент2> является атомом (т. е. не списком), то функция cons создает точечную пару типа (<аргумент1>. <аргумент2>). Примеры: (cons 67.4 '(10.3 12.9 -3.9)) - возвращает (67.4 10.3 12.9 -3.9); (cons "Happy" '("New" "Year")) - возвращает ("Happy" "New" "Year"); (cons 2 4) - возвращает (2. 4); (cons 8 "0") - возвращает (8. "0"); (cons 62 l) - возвращает (62. l). Функция member проверяет принадлежность элемента списку: (member <элемент> <список>) Если функция member обнаруживает <элемент> в аргументе <список>, то возвращает остаток списка, начиная с этого места; если <элемент> в аргументе <список> не обнаруживается, то функция возвращает nil. Примеры: (member 1 '(4 50 1 2)) - возвращает (1 2); (member 4 '(4 50 1 2)) - возвращает (4 50 1 2); (member 0 '(4 50 1 2)) - возвращает nil.
Дата добавления: 2014-01-07; Просмотров: 222; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |