Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Вещественные числа.  К вещественным относятся числа, содержащие символ десятичной точки. Числа, лежащие в интервале -1...+1 должны обязательно сопровождаться предваряющим нулем. Вещественные числа, не имеющие десятичных долей, должны содержать ноль после десятичной точки.  Вследствие этого правильным является представление  0.245  и  34.0 ,  а записи  .245  и  34.  не всегда будут приняты Автолиспом. Точность вычислений Автолиспа − 14 значащих цифр, хотя в поле командной строки выводится не более 6 знаков.

Строки.  Любая последовательность символов, заключенная в кавычки, рассматривается Автолиспом как строковая переменная. Длина одной строки не должна превышать 132 символов, однако использование функции  strcat позволяет объединить несколько строк в одну.

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

                       (3.62  4.12  2.85).

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

Дескрипторы файлов являются строковыми метками, присваиваемыми файлам, открываемым Автолиспом. В следующем примере открывается файл  mycalc. res, он становится доступным для чтения функциями Автолиспа, и значение дескриптора файла присваивается переменной  file1:

НЕ нашли? Не то? Что вы ищете?

       (setq file1 (open “mycalc. res” “r”)).

Термин “дескриптор” в общем случае понимается как некоторый признак, выделяющий объект из множества себе подобных (вспомните, например, дескрипторы атрибутов). Поэтому в дальнейшем параллельно с этим термином может употребляться термин “имя файла”. И хотя эти термины определяют несколько отличающиеся понятия, при оценке их содержания следует руковод­ствоваться контекстом.

Имена примитивов.  Имя примитива представляет собой числовую метку, присваиваемую примитиву в рисунке. Извлекая примитив по имени, его можно обрабатывать всеми доступными способами.

В следующем примере имени примитива, введенного в чертеж последним, присваивается идентификатор  e1:

               (setq e1 (entlast)).

Ввод этого выражения в командную строку возвращает имя примитива в следующей форме:

  <Entity name:  23c0508>.

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

               (setq ss2 (ssget “p”)).

Встроенные и внешние функции − это функции, посредством которых осуществляется обработка данных. Встроенные функции являются средствами самого Автолиспа, внешние представляют собой программы, определенные приложениями.

1.2. Лексические соглашения

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

  Имена переменных могут содержать любые символы, за исключением  ( ,  ) − левой и правой скобок,  . − точки,  ‘ − апострофа,  “ − кавычек,  ; − точки с запятой.   Следующие символы заканчивают имя переменной или цифровую константу :  ( ,  ) ,  ‘,  ; ,  space (символ пробела), end of file (символ конца файла).   Выражение может занимать несколько строк.   Множество пробелов между символами эквивалентно одному пробелу.  Пустые строки не обрабатываются Автолиспом, но иногда их целесообразно вставлять для облегчения чтения программ. Табуляция рассматривается Автолиспом как пробел.   В Автолиспе не имеет значения регистр символов. Для англоязычной версии Автокада имена функций, переменных и параметров можно записывать как в верхнем, так и в нижнем регистре. Целочисленные константы могут начинаться со знаков  плюс или минус. Автолисп оперирует 32-битовыми числами, т. е. ему доступны целые числа от -2 147 483 648 до +2 147 483 647. Однако, как упоминалось выше, обмен с Автокадом возможен лишь на 16-битовом уровне.

●  Вещественные константы также могут начинаться со знаков  плюс или минус и должны обязательно содержать цифры, предшествующие десятичной точке и следующие за ней. Вещественные константы могут записываться в экспоненциальной форме. Например, записи  0.00032  и  3.2е-4 являются идентичными.

Текст программ может содержать строки комментариев, предваряемых точкой с запятой  ( ; ) , например:

; переход в слой CENTER.


Если комментарий включается в строку программы, он должен выделяться символами  ;| .... |;  .

(setq omode  ;| здесь начинается комментарий,

здесь он продолжается,

здесь заканчивается |; (getvar “osmode”))


  Текстовые строки должны заключаться в двойные кавычки. Включение в текстовую строку обратной косой черты  ( \ ), иногда называемой обратным слэшем, позволяет ввести управляющие символы, перечисленные в табл. 2.

Т а б  л  и ц а  2

Значение  некоторых управляющих  символов


        Символ  Значение

  \ \  Символ  \

  \ ”  Символ  “

  \ e  Символ Escape-последлвательности

  \ n  Символ перехода на следующую строку

  \ r  Символ возврата каретки

        \ t  Символ табуляции

        \ nnn  Произвольный символ в восьмиричном коде

1.3.  Выражения и переменные Автолиспа

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

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

При вводе некорректного выражения Автолисп может выдать указание  n>,  где  n  указывает количество незакрытых левых скобок. Довольно частой ошибкой является пропуск правых кавычек (“) в текстовых строках. При этом правые скобки интерпретируются как кавычки, и простой ввод дополнительных скобок не исправляет положения. В таких случаях следует прекратить вычисления командой отказа  Ctrl + C  в DOS или  Esc в Windows и заново ввести выражение.

Обработанное интерпретатором Автолиспа выражение может быть далее использовано окружающими выражениями. Если такого окружения нет, Автолисп передает значение выражения Автокаду.

В распространяемый с 1999 года пакет AutoCAD 2000 в качестве составной части включен пакет Visual LISP, обладающий отладчиком программ. Возможности работы в среде Visual LISP описаны в публикации [1].

Выражения Автолиспа записываются в формате

       (function_name [arguments] ...)

       (имя_функции [аргументы] ...).

В дальнейшем, как это принято в литературе по программированию, аргументы, которые не являются обязательными и могут быть опущены, в описании формата выражений заключаются в квадратные скобки. Многоточие, заключающее выражение перед закрывающей круглой скобкой, указывает на то, что список аргументов может быть продолжен.

Существует четыре типа переменных Автолиспа: целые, вещественные, точки и строки. Тип переменной автоматически определяется Автолиспом и должен соответствовать типу, воспринимаемому конкретной функцией.  Значение переменной сохраняется до конца сеанса или до замены его другим значением. Имя переменной должно начинаться с алфавитного символа. Запрещенные символы перечислены выше.

1.4.  Основная  функция  присвоения  в  Автолиспе

Любой язык программирования, встречая некоторую именованную переменную, сопоставляет ей ее значение. Это значение в операторных языках обычно вычисляется и присваивается переменной с помощью оператора присвоения. Особенностью Автолиспа является то, что в переменной может храниться не только вычисленное значение, но и целое выражение. Этот язык содержит в своем составе функцию quote,  позволяющую сохранить выражение без его оценки. Формат функции:

(quote выражение),

например:

               

(quote a)                возвращает  A,

               (quote (a b c))                возвращает  (А  В  С),

               (quote (+ 1 4))                возвращает  (+  1  4).

В практике создания программ слово  quote заменяется апострофом. Автолисп совершенно одинаково воспринимает и обрабатывает записи:

        (quote (a b c))  и  ‘(a b c).

Основной функцией присвоения переменной ее значения является функция

(setq  перем1  выраж1  [перем2  выраж2  ...]).

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14