LISP1 (АвтоЛИСП - реализация языка программирования), страница 5

2016-07-31СтудИзба

Описание файла

Документ из архива "АвтоЛИСП - реализация языка программирования", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "LISP1"

Текст 5 страницы из документа "LISP1"

(print a)

(print b)

(print c)

кроме того FOREACH вводит результат только последнего вычисленного выражения.

4.47.(gcd )

Эта функция вводит наибольший общий знаменатель и . и должны быть целыми. Например:

(gcd 81 57) вводит 3

(gcd 12 20) вводит 4

4.48.(getangle [][]

Для пользователя эта функция приостанавливает ввод угла. - произвольная строка, которая появляется на экране в качестве подсказки, а - произвольная базовая точка 2D. Вы можете определить угол, напечатав цифру в текущем формате единиц угла АвтоКАДа. Отметьте, что хотя текущий формат единиц угла может быть выражен в градусах, градах и т.д., эта функция всегда вводит угол в радианах.

Вы можете также "показать" АвтоЛИСПу угол, отмечая точками два 2D расположения на экране графики. АвтоКАД рисует линию резиновой нити от первой точки до позиции текущего перекрестия, что поможет вам при визуализировании угла.

Необязательный параметр функции GETANGLE (если он определен) предполагается быть первой из этих двух точек, позволяя вам "показать" АвтоЛИСПу" угол, отмечая еще одну точку. Вызов GETANGLE демонстрирует следующее:

(setq ang (getangle))

(setq ang (getangle '(1.0 3.5))

(setq ang (getangle "Which way?")

(setq ang (getangle '(1.0 3.5)"Which way?")

Вы не можете ввести другое выражение ЛИСПа в качестве ответа на требование GETANGLE. Попытка сделать это приведет к сообщению "Can't reenter Autolisp" (Не могу повторно ввести АвтоЛИСП"). См. также GETORIENT и INITGET.

4.49. (getcorner [])

Функция GETCORNER вводит точку так же, как и GETPOINT. Однако, GETCORNER требует параметр точки и чертит прямоугольник из точки по мере перемещения пользователем пересечения на экране. Для детального ознакомления см. GETPOINT и INITGET. В качестве ответа на требование GETCORNER, вы не можете ввести другое выражение ЛИСПа.

4.50.(getdist [][])

Для пользователя эта функция приостанавливает ввод расстояния. - произвольная строка, которая появляется на экране в качестве подсказки, а - произвольная базовая точка. Вы можете определить расстояние, напечатав цифру в текущем формате единиц расстояния АвтоКАДа. Отметьте, что хотя текущий формат единиц расстояния может быть выражен в футах, дюймах (архитектурный), эта функция всегда вводит расстояние в действительных числах.

Вы можете "показать" АвтоЛИСПу расстояние, отметив точками два расположения на графическом экране. АвтоКАД рисует линию резиновой нити от первой точки до позиции текущего перекрестия, что поможет вам при визуализировании расстояния. Необязательный параметр функции GETDIST (если он определен) предполагается быть первой из этих двух точек, позволяя вам "показать" АвтоЛИСПу расстояние, отмечая еще одну точку.

Следующие примеры иллюстрируют применение GETDIST.

(setq dist (getdist))

(setq dist (getdist '(1.0 3.5))

(setq dist (getdist "How far?")

(setq dist (getdist '(1.0 3.5)"How far?")

Вы не можете ввести другое выражение ЛИСПа в качестве ответа на требование GETDIST. См. также INITGET.

4.51.(getint[])

Для пользователя эта функция приостанавливает ввод целых чисел и возвращает это целое число. - произвольная строка, которая появляется на экране в качестве подсказки.

Например:

(setq num (getint))

(setq num (getint "Enter a number:")) (Введите число)

Вы не можете ввести другое выражение ЛИСПа в качестве ответа на требование GETINT. См. также INITGET.

4.52.(getkword [])

Функция GETKWORD требует от пользователя ключевого слова. Перед вызовом GETKWORD, устанавливается список действительных ключевых слов, применяя функцию INITGET (описанную ниже). GETWORD вводит ключевое слово, выравнивая в строку ввод пользователя. АвтоКАД повторит попытку, если ввод не соответствует одному из этих ключевых слов. Пустой (нулевой) ввод введет нуль (если это допустимо). Нуль также вводится, если создана строка ключевых слов. Например:

(initgent 1 "Yes Nо")

(setq x (getkword "Are you sure? (Yes or No)"))

подскажет пользователю и установит символ Х как для "Yes", так и для "No", в зависимости от ответа пользователя. Если подсказка не соответствует ни одному из ключевых слов, или если пользователь отвечает нулем, АвтоКАД попросит пользователя повторить процедуру.

Вы не можете ввести другое выражение ЛИСПа в качестве ответа на требование GETKWORD. См. также INITGET.

4.53.(getorient [][])

В АвтоЛИСПе углы всегда представлены в радианах, с направлением в ноль-радиан вправо ( восток) и углом, увеличивающимся в направлении против часовой стрелки. Таким образом, будут иметь место некоторые преобразования, если пользователь выберет различные нуль-градусные базы или различные направления для увеличения угла посредством команды INITS или систем переменных ANGBASE и ANGDIR.

GETORIENT похож на функцию GETANGLE, но находится под влиянием нуль-градусной базы и направления для увеличения угла совсем по-другому, чем GETANGLE. GETANGLE должна применяться в том случае, когда вам необходима величина вращения (относительный угол), тогда как GETORIENT должна применяться для получения ориентации (абсолютный угол).

Представьте, что команда АвтоКАДа INITS применялась для выбора нуль-градусной базы 90 градусов (север) и направления для увеличения угла - по часовой стрелке. В таблице показано, что введут функции GETANGLE и GETORIENT (в радианах) для репрезентивного ввода переменных пользователем (в градусах).

Input (degrees)

GETANGLE

GETORIENT

0

0.000000

1.570796

90

1.570796

3.141593

180

3.141593

4.712389

90 (-90 270?)

4.712389

0.000000

Как показано в таблице, GETANGLE принимает на обработку направление увеличения угла, но игнорирует ноль-градусную базу. Таким образом, вы можете применять GETANGLE для получения величины вращения при вводе/вставке блока, так как ввод нуль-градуса всегда введет ноль радиан. С другой стороны, GETORIENT принимает на обработку как ноль-градусную базу, так и направление увеличения угла. Таким образом, вы должны применять GETORIENT для получения таких углов, как угол базовой линии для Элемента Текста. Например, для заданных выше установок UNITS, ориентация базовой линии для нормальной горизонтальной линии текста будет 90 градусов.

Вы не можете ввести другое выражение ЛИСПа в качестве ответа на требование GETORIENT. См. также GETANGLE и INITGET.

4.54. (getpoint [] [])

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

(setq p (getpoint))

(setq p (getpoint "Where?")) "Где?"

(setq p (getpoint '(1.5 2.0) "Second point:")

Обычно GETPOINT вводит точку 2D (список из двух действительных чисел). Применяя функцию INITGET для установки контрольной отметки "точка.3D", вы можете заставить GETPOINT ввести точку 3D (список из трех действительных чисел).

Вы не можете ввести другое выражение ЛИСПа в качестве ответа на требование GETPOINT. См. также GETCORNER и INITGET.

4.55.(getreal [])

Для пользователя эта функция приостанавливает ввод действительного числа и возвращает это действительное число. - произвольная строка, которая появляется на экране в качестве подсказки. Например:

(setq val (getreal)

(setq val (getreal "фактор шкалы:")

Вы не можете ввести другое выражение ЛИСПа в качестве ответа на требование GETREAL. См. также INITGET.

4.56.(getstring [][])

Для пользователя эта функция приостанавливает ввод строки и вводит эту строку. Если задан и он не равен нулю, вводимая строка может содержать пробелы (и должна поэтому быть завершена нажатием RETURN). В других случаях ввод строки завершается пробелом или RETURN. - произвольная строка, появляющаяся на экране в качестве подсказки. Например:

(setq s (getstring))

(setq s (getstring "What's your first name?"))

(setq s (getstring T "What's your full name?"))

Если ввод пользователя должен быть одной из нескольких опций (ключевых слов), вместо GETSTRING может применяться описанная ранее функция GETKWORD.

Вы не можете ввести другое выражение ЛИСПа в качестве ответа на требование GETSTRING.

4.57.(getvar )

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

(getvar "FILLETRAD") введет 0.250000

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

4.58.(graphscr)

Функция GRAPHSCR переключается с текстового экрана на графический в одно-экранных системах (типа функциональной клавиши "Flip screen" в АвтоКАДе). GRAPHSCR всегда вводит ноль. См. также функцию TEXTSCR.

4.59.(if )

Эта функция условно вычисляет выражения. Если не ноль, тогда она вычисляет , в противном случае она вычисляет . Последнее выражение () - необязательное. IF вводит значение выбранного выражения; если пропущено, а равно нулю, IF вводит ноль. Например:

(if (=1 3)"Yes!!" "No") вводит "No"

(if (=2 (+1 1)) "Yes!!") вводит "Yes!!"

(if (=2 (+3 4)) "Yes!!") вводит nil

4.60.(initget [][])

Эта функция создает различные опции для дальнейшего использования их функцией GETxxx (кроме GETSTRING и GETVAR). INTGET всегда вводит ноль. Необязательный параметр - целое число со следующими значениями:

INITGET Bits

Значение

1

не допускает нулевой ввод

2

не допускает нулевые значения

4

не допускает отрицательных значений

8

не проверяет границы,даже если действует limcheck

16

вводит точки 3D раньше,чем точки 2D

Биты могут складываться вместе в любой комбинации для создания значений от 0 до 31. Если пользователь при вводе определенных режимов ошибается (например, вводит нулевое значение, когда оно не допускается), АвтоКАД выдаст на экран сообщение и попросит пользователя повторить попытку. Например:

(initget (+ 1 2 4))

(setq age (getint "How old are you?") : возраст "Сколько вам лет?"

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

Функция

INITGET control bits honored (принимаемые на обработку контрольные байты функции INITGET)

No null

No zerro

No neg.

No limits

3D hoints

GETINT

·

·

·

GETREAL

·

·

·

GETDIST

·

·

·

GETANGLE

·

·

·

GETORIENT

·

·

·

GETPOINT

·

·

·

GETCORNER

·

·

·

GETKWORD

·

GETSTRING

GETVAR

Необязательный параметр функции INITGET определяет список ключевых слов опции, которые будут проверены следующими требованиями GETxxx, если пользователь не ввел ожидаемый тип данных ввода (например, точку для GETPOINT). Если ввод пользователя соответствует одному из ключевых слов этого списка, это ключевое слово вводится с помощью функции GETxxx как результат функции STRING. Программа пользователя может контролировать ключевые слова и выполнять желаемые действия для каждого из них. Если ввод пользователя не ожидаемого типа и не соответствует ни одному из ключевых слов, АвтоКАД попросит повторить попытку. Список ключевых слов должен быть следующей формы: "KEY1 KEY2 KEY3 ABBREV3". Отдельные ключевые слова определены пробелами. Сокращения (аббривиатура) необязательны, есть два метода их определения.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее