Программирование вычислений. Математические функции



МИНИСТЕРСТВО ОБРАЗОВАНИя И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ДИЗАЙНА И ТЕХНОЛОГИИ»

(ФГБОУ ВПО «МГУДТ»)

 

ГРАФИЧЕСКИЕ СИСТЕМЫ И СРЕДСТВА

Методические указания

Учебно-методический комплекс

по направлению подготовки 09.03.01Информатика и вычислительная техника

 

Составитель: Ветрова О.А., доц., к. т. н.

 

 

Москва

МГУДТ 2016


 

УДК 681.3

В 40

 

В 40 Компьютерная графика: методические указания. /Сост. Ветрова О.А. – М.: МГУДТ, 2016. – 64с.

 

 

Рецензенты:

- доц. Беспалов М.Е. (ФГБОУ ВПО «МГУДТ»)

- доц. Кузьмина Т.М. (ФГБОУ ВПО «МГУДТ»)

 

Методические указания предназначены для обучающихся по направлениию подготовки 09.03.01 Информатика и вычислительная техника очной формы обучения и будут использованы при изучении дисциплин «Графические системы и средства в логистике» и «Компьютерная графика».

Методические указания содержат 8 лабораторных работ по основным вопросам, связанным с использованием языков графического программирования при изучении обеих дисциплин. В каждой работе изложены краткие теоретические сведения, цель работы, этапы выполнения работы и план отчета, приведены примеры, дана методика и порядок проведения работы. Для работ №1, №2, №3, №4 и №6 составлены варианты индивидуальных заданий.

 

 

УДК 681.3

 

Подготовлено к печати на кафедре автоматизированных систем обработки информации и управления.

 

 

Печатается в авторской редакции.

 


ЛАБОРАТОРНАЯ РАБОТА 1.

ЗНАКОМСТВО С ГРАФИЧЕСКИМ ЯЗЫКОМ AutoLISP. ПРОГРАММИРОВАНИЕ ВЫЧИСЛЕНИЙ НА AutoLISP

Цель работы: изучение пользовательского интерфейса AutoLISP в графической системе AutoCAD, способов ввода программы на AutoLISP, способов программирования вычислений.

 

ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ

1.1. Основы работы с графическим языком AutoLISP в системе AutoCAD

Система AutoCAD − это наиболее распространенная в настоящее время графическая система для ПЭВМ, ориентированная на автоматизированное проектирование технических систем. [1]

Эта система в настоящее время очень широко используется во всем мире для создания графических документов различных отраслей: строительства, связи, архитектуры, машиностроения, логистики и др. Этому способствует гибкость системы, многочисленные возможности настройки и адаптации, а также инструменты разработки пользовательских приложений. [5]

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

Любой графический редактор позволяет скомпоновать чертеж на экране графического дисплея с помощью устройств ввода ЭВМ и вывести его на бумажный носитель. Однако специалист, освоивший графический редактор, обнаружит, что выигрыш во времени по сравнению с традиционным способом незначителен, а иногда его и вовсе нет. Экспертные оценки дают следующие цифры: от уменьшения времени на 20% до его увеличения в 2-3 раза! В каждом конкретном случае эффект сокращения времени сильно зависит от характера чертежа или документа.

Перечислим возможные источники, обеспечивающие сокращение времени.

1) Полуавтоматическая простановка размеров, штриховки, условных обозначений, построения рамки и штампа.

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

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

3) Суммарное время по всем модификациям может оказаться в несколько раз меньше, чем при ручной разработке.

Инженер, освоивший графический редактор ACAD и убедившийся на практике, что эффект от автоматизации чертежных работ незначителен, может обнаружить, что система AutoCAD предоставляет гораздо более эффективные возможности, чем возможности графического редактора. Оказывается, чертежи можно получать без затрат времени и усилий на «рисование». Чертеж, который в ручном варианте или с помощью графического редактора получается за несколько часов и даже дней, может быть сформирован за минуты (не считая времени автоматического вывода чертежа на принтер). Более того, чертеж может получить специалист, практически ничего не знающий о системе AutoCAD. Но чтобы получить такой эффект, кто-то предварительно должен написать программу для генерации семейства сходных чертежей. Именно этой программой теперь может пользоваться любой пользователь для получения любого чертежа, принадлежащего данному семейству.

Для создания программ, выпускающих чертежи и документы, в системе AutoCAD имеется мощное средство − язык графического программирования AutoLISP. Но чтобы использовать богатые возможности AutoLISP, нужно научиться программировать на этом языке. Специалисту, ранее не знакомому с программированием, освоить AutoLISP сложнее, чем язык графического редактирования. Однако, практика показывает, что это вполне по силам инженеру.

Язык программирования AutoLISP ‒ это вариант языка LISP, в который добавлены функции доступа к объектам, таблицам и словарям графической системы AutoCAD. Основой языка LISP является работа со списками, которые могут иметь произвольную длину и включать элементы разной природы (числа, текстовые строки, указатели файлов и т.д.). В то же время в языке доступны обычные арифметические вычисления, логические операции, работа с файлами и т.д. С помощью языка AutoLISP можно писать программы или вводить в командной строке выражения, которые затем вычисляет система AutoCAD. За последние годы язык развился за счет новых функций с префиксом v1-, а также функций, предоставляющих доступ к объектной модели AutoCAD и реализующих элементы технологии ActiveX. [5]

Рассмотрим, что такое программа (и, в частности, графическая программа, формирующая изображение), отталкиваясь от графического редактирования − уже знакомого нам способа формирования изображения. Этот способ заключается в следующем: конструктор определяет характер очередного действия; затем вводит соответствующую команду в ЭВМ; система AutoCAD интерпретирует эту команду, т.е. разворачивает ее в последовательность команд процессора ЭВМ; затем эта последовательность команд выполняется; результат выполнения отображается на экране.

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

В AutoCAD имеются средства создания сценариев. Сценарий − это последовательность команд графического редактора, но составленная заранее и записанная в виде файла на магнитном диске. Преимущество сценария в том, что его можно использовать многократно. Однако, составить сценарий значительно сложнее, чем работать на «электронном кульмане», так как он записывается на бумаге без мгновенного отображения на экране. Такая работа «вслепую» приведет к тому, что в сценарии могут остаться ошибки, которые после запуска сценария придется отыскивать в его тексте и исправлять.

Сценарий, написанный на языке команд AutoCAD, можно рассматривать как частный случай программы на графическом языке программирования. Программа − это заранее составленный текст, который хранится на магнитном диске и может быть использован для генерации изображения. Технология составления и использования программы такая же, как и для сценария.

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

Такие возможности характерны для любого языка программирования. К ним относятся: 1) обращение из программы к подпрограммам (в сценарии аналогичный эффект может быть достигнут запуском из сценария других сценариев, а также командой INSERT − ВСТАВЬ); 2) компактная запись повторяющихся последовательностей действий − циклов (в сценарии некоторым подобием цикла может служить команда ARRAY − МАССИВ); 3) ввод данных пользователем в процессе выполнения программы; 4) вывод сообщений из программы; 5) проверка выполнения разного рода условий; 6) выбор направления действий в зависимости от результатов проверки.

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

Технология программирования существенно отличается от технологии создания чертежа с помощью «электронного кульмана» и включает следующие этапы: постановку задачи, разработку алгоритма, написание программы, ввод программы в ЭВМ, отладку программы.

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

1) подбор чертежей всех деталей данного семейства; составление на их основе чертежа комплексной детали;

2) определение условий, которые влияют на выбор конкретной конфигурации детали из комплексной детали; определение постоянных размеров на чертеже;

3) определение параметров, которые должны вводиться конструктором при работе с программой;

4) описание соотношений, позволяющих получить все переменные параметры на основе параметров, вводимых конструктором;

5) разделение текстовой части чертежа на постоянную и переменную части, определение правил ввода переменных частей текста и связывания постоянных и переменных частей;

6) перечисление сообщений, которые программа должна выдавать конструктору.

Таким образом, на этапе постановки задачи точно определяется, что будет делать программа.

При разработке алгоритма решаются два следующих вопроса: как будет устроена программа и как она будет выполняться. На этом этапе определяется состав модулей программы и разрабатываются алгоритмы каждого модуля. Написание программы − это перевод алгоритма на язык программирования. Программа записывается на бумаге и тщательно проверяется. Ввод программы в ЭВМ осуществляется, как правило, с клавиатуры при использовании программы-редактора текста. В результате создается файл на магнитном диске. Если предполагается использование компилятора, то этот файл или набор файлов является исходным модулем или набором исходных модулей программы.

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

После того как программа отлажена, т.е. получены первые результаты, полностью удовлетворяющие пользователя, работа программиста может считаться законченной. Теперь программа, хранящаяся на магнитном диске, в любое время может быть вызвана на выполнение любым пользователем. В процессе выполнения программы пользователь ведет диалог с ЭВМ, принимает сообщения программы и вводит в программу данные. [2]

 

1.2. Назначение и возможности языка AutoLISP

Графический язык программирования AutoLISP является расширением языка программирования LISP. LISP − это язык высокого уровня, ориентированный на обработку списков, который выбран в качестве базового потому, что графические примитивы (начиная, с точки), блоки, наборы примитивов и блоков удобно представляются в виде списков.

В составе системы AutoCAD поставляется интерпретатор с языка AutoLISP. Если при генерации AutoCAD интерпретатор AutoLISP был подключен, то он загружается в оперативную память после запуска графического редактора ACAD и доступен в течение всего сеанса работы с ACAD. Таким образом, графический редактор ACAD и интерпретататор AutoLISP представляют собой единую систему: любая функция AutoLISP может быть вызвана из графического редактора и любая команда редактора может быть использована в программе на AutoLISP. [2]

Возможности применения AutoLISP весьма широки и разнообразны. Наиболее характерны следующие классы применений.

1) Программирование чертежей с параметризацией.

2) Создание и использование графических баз данных. Если накоплено большое количество чертежных файлов, программ на AutoLISP, соответствующих чертежным фрагментам, деталям, узлам, то их можно в некотором смысле считать графической базой данных. Программы на AutoLISP в сочетании с пользовательскими меню могут организовывать просмотр, поиск, подключение к объектам их частей и т.п. Тогда работа специалиста в системе AutoCAD будет сводиться к поиску нужных объектов или частей чертежа, обращению к соответствующим LISP-программам и ответам на вопросы этих программ. Хранение графических данных в виде набора программ на AutoLISP дает возможность в десятки и сотни раз сократить требуемую память на магнитном диске по сравнению с памятью, необходимой для хранения чертежных файлов ACAD, так как, во-первых, одна программа позволяет получить не один, а множество чертежей, во-вторых, текст программы на AutoLISP занимает на порядок меньше памяти, чем DWG-файл, который может быть получен в результате работы этой программы.

3) Анализ и (или) автоматическое преобразование изображений. Программа на AutoLISP может воспринимать документ или чертеж на экране, построенный с помощью графического редактора и обсчитывать его; например, могут быть решены такие задачи: обнаружение пересечений трубопроводов, разведенных в пространстве; подсчет суммарной длины трасс; расчет центра масс и моментов инерции; выдача на печать спецификации по сборочному чертежу и т.п.

4) Программа также может быстро осуществить преобразование изображения, на которое при работе в графическом редакторе пришлось бы затратить значительное время. Например, заменить все вставки одного типа на вставки другого типа из какого-либо чертежного файла; перенести все объекты с одного слоя на другой слой; повернуть все блоки на заданный угол − каждый относительно своей базовой точки и т.п.

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

В языке AutoLISP определены более сотни различных операций, которые называются встроенными функциями:

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

2) для проверки выполнения различных условий: операции сравнения, булевские функции («И», «ИЛИ», «НЕ») и др., а также функции, организующие ветвления по условиям. С помощью этих функций можно, например, получать топологически различные чертежи из одной программы;

3) для работы со строками текстов: формирование, сцепление, сравнение строк, выделение символов из строки и т.п. Эти функции позволяют, например, формировать технические требования на чертеже путем совмещения переменной и постоянной частей;

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

5) для создания и чтения текстовых файлов на магнитных дисках, благодаря чему обеспечивается возможность связи по данным между различными программами на AutoLISP, а также между программой на AutoLISP и программами на других языках. Например, в программу на AutoLISP в качестве параметров могут быть введены результаты расчетов из программы на языке С (Си);

6) характерные для всех языков программирования и обеспечивающие компактное описание действий в программе за счет таких конструкций, как циклы и подпрограммы;

7) характерные для языков типа LISP: создание, анализ и преобразование списков. Поскольку данные о графических объектах-примитивах и блоках представляются в виде списков, то эти функции используются для обработки внутри программ описаний графических объектов.

Перечислим функции, определяющие специфику языка AutoLISP, т.е. функции, связанные с графикой и работой в среде графического редактора ACAD:

1) для геометрических построений внутри программы; важнейшая из этих функций − определение точки, заданной через другую точку, угол луча и расстояние по лучу. С помощью этой функции можно формировать из программы опорные точки примитивов чертежа, задавая их параметры с помощью переменных;

2) для приема геометрических данных, т.е. данных, которые могут задаваться перемещением курсора на экране: точки, угла, расстояния;

3) для выделения примитивов построенного на экране чертежа и наборов примитивов, выделения и изменения характеристик примитивов и блоков, анализа и изменения системных переменных и содержимого символьных таблиц ACAD;

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

 

Способы ввода программы

Программа на языке AutoLISP представляет собой построенный с помощью любого редактора текстов с соблюдением правил языка текстовый файл, который хранится на магнитном диске под определенным именем. Он может быть загружен в ОЗУ в ходе сеанса графического диалога в системе ACAD и может быть выполнен путем соответствующего ответа на подсказку ACAD:

COMMAND: (в русской версии – Команда:).

Программа − это последовательность функций AutoLISP и функций, определенных самим программистом.

Помимо функций в тексте программы могут присутствовать комментарии. Комментарий − это любой текст (он может быть и на русском языке), начинающийся со знака «;». Комментарием считается весь текст от знака «;» до конца строки. Комментарии не обрабатываются интерпретатором, а служат только для лучшего понимания текста программы. [2, 3]

 

1.4. Основные понятия языка AutoLISP

Данные в AutoLISP принято называть атомами. Атомы − это элементарные объекты, из которых формируются выражения AutoLISP. Рассмотрим атомы следующих типов: константы целые, действительные, текстовые (строковые), а также переменные (идентификаторы, символические имена).

Рассмотрим соглашения по форме записи правил и выражений языка AutoLISP. Будем описывать эти правила с помощью символов «< >» (угловые скобки), «::=» (двойное двоеточие со знаком равенства), «[ ]» (квадратные скобки), «…» (многоточие). Все эти символы не встречаются в выражениях AutoLISP, и поэтому их можно использовать для записи правил AutoLISP.

Символ «::=» означает «это есть»;

Запись < объект > означает, что на данное место можно подставить любой объект указанного класса.

Запись [< объект >] означает, что объект может присутствовать, а может и не

присутствовать в данном выражении.

Запись < объект >... означает, что объектов данного класса может быть несколько.

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

< целое >::=[-]< цифра >...

Составной элемент программы на AutoLISP, состоящий из атомов или других списков, отделенных друг от друга пробелами, называется списком. Он всегда заключается в скобки, таким образом:

< список> ::=([< элемент >...]), где < элемент >::= < атом >.

Как следует из приведенной записи, возможен список и без элементов, т,е. список вида (). Такой список имеет значение NIL (пусто или пустое множество).

Примеры правильной записи списков:

(Al Bl Cl) − атомами являются переменные;

(“А” “В” “С”) − атомами являются текстовые константы;

(А 10.0 20.0 NIL) – «смешанный» список: второй и третий атомы − действительные числа, последний − пусто.

Примеры неправильной записи списков:

А В С − отсутствуют скобки;

(А (В С) − число закрывающих скобок меньше числа открывающих (наиболее распространенная ошибка при написании программ на AutoLISP).

Частным случаем списка является функция, определяемая следующим образом:

< функция >::=(< имя функции >[< аргумент >...]).

Здесь <имя функции > − это символическое имя. Каждая функция имеет свое, связанное с ней имя.

Аргументы функции − это выражения, построенные по правилам AutoLISP, в том числе другие функции. Для каждой конкретной функции характерны определенное количество, типы и порядок следования аргументов.

Примеры функций:

1) (COS <угол>), где COS − имя функции для вычисления косинуса; <угол> − аргумент, который может быть действительной или целой константой или переменной.

2)(+ <число> <число>…), где знак “+” − имя функции для вычисления суммы; < число > − действительная или целая константа или переменная. Из записи следует, что аргументов этой функции может быть два и более.

Как указывалось, программа на AutoLISP − это последовательность функций. Выполнение программы заключается в том, что интерпретатор читает текст очередной функции и после завершения чтения выполняет ее. В ходе выполнения функции могут происходить какие-то события, видимые пользователем, например, будет появляться или изменяться изображение на экране. Помимо всех видимых и невидимых результатов выполнения функции после ее завершения появляется некоторое новое значение (число, список, NIL и др.), которое может быть использовано программой. В терминологии AutoLISP это называется так: «Функция возвращает значение».

Пример:

(COS(+ABC)).

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

Все функции, которые можно использовать в своей программе, можно разделить на три группы:

первая − встроенные функции AutoLISP, т.е. те функции, имена которых и правила работы с которыми изложены в соответствующем фирменном руководстве по AutoLISP;

вторая − функции, которые придуманы и описаны в своей программе на AutoLISP пользователями или программистами;

третья − функции, описанные в других программах, которые можно подключить при выполнении своей программы.

Описание новой функции в программе должно предшествовать обращению к этой функции. Описание новой функции в AutoLISP − это тоже функция, имени которой предшествует ключевое слово DEFUN:

<описание функции >::=(DEFUN <имя функции>

([ < аргумент >...][/ <локальная переменная >...])

< выражение >).

Здесь <имя функции > − это имя, которое придумано для новой функции. Список аргументов − это список имен, обозначающих те данные, которые будут посылаться в функцию перед ее выполнением. Локальные переменные − это переменные, определение которых действует только внутри описываемой функции. Как аргументы, так и локальные переменные могут и отсутствовать, но скобки () после имени функции обязательны.

< Выражение > − это любая запись, выполненная по правилам AutoLISP. Именно выражение показывает, какие действия должна выполнять описываемая функция.

Значение, возвращаемое функцией DEFUN − это имя описанной функции, т.е. после выполнения функции DEFUN можно в любом месте программы обращаться к описанной новой функции по ее имени. Примером использования функции DEFUN является приведенная ниже простая программа на AutoLISP.

Программа 1. Вычисление суммы SIN(A) + COS(A)

(DEFUN SINCOS (A) ; имя функции и список аргументов

( + (SIN A) (COS А )); выражение : SIN(A) + COS(A)

) ;конец программы.

Программа 1 состоит из единственной функции DEFUN. Эта функция описывает придуманную нами функцию, которую мы назвали SINCOS.

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

Текст программы 1 можно набрать в сеансе работы с ACAD в ответ на приглашение COMMAND:. Этот текст будет обработан интерпретатором AutoLISP. В результате такой обработки, т.е. в результате выполнения функции DEFUN, будет возвращено имя функции SINCOS, а значит эта функция в дальнейшем может быть выполнена.

Для выполнения функции SINCOS можно в ответ на очередное приглашение ACAD набрать строку (SINCOS 0). Тем самым интерпретатору AutoLISP будет задана новая программа, состоящая из одной функции SINCOS с определенным значением аргумента, в нашем случае равным нулю. Эта функция возвращает число, равное SIN(0)+COS(0), в нашем случае 1.0. Это число будет отображено на экране дисплея. [2, 3, 4]

 

Программирование вычислений. Математические функции

Для программирования вычислений можно использовать следующие математические встроенные функции: + (сложение); - (вычитание); * (умножение); /(деление); ЕХРТ (возведение в степень); ABS (определение модуля числа); SIN (синус); COS (косинус); ATAN (арктангенс); S Q RT (квадратный корень); ЕХР (экспонента); LOG (натуральный логарифм) и некоторые другие.

Аргументы этих функций − целые или действительные числа. Углы выражаются в радианах. Функции «+», « - », «*», «/» могут иметь два аргумента и более, при этом у функции « - » первый аргумент обозначает уменьшаемое, остальные аргументы − вычитаемое, у функции «/» первый аргумент − делимое, остальные аргументы − делители. Функция ЕХРТ должна иметь два аргумента (первый − основание, второй − показатель степени), остальные функции должны иметь один аргумент.

Тип возвращаемого значения зависит от функции и типов аргументов. Функции SIN, COS, ATAN, SORT, EXP, LOG всегда возвращают действительные числа. [2, 3, 4]

В AutoCAD входит интерпретатор LISP, который начинает работать, если в командной строке в ответ на стандартную подсказку Command: (Команда:) ввести открывающую круглую скобку ‒ «(». В этот момент AutoCAD настраивается на ввод и вычисление LISP-выражения, которое должно иметь форму списка, т.е. начинаться открывающей скобкой и заканчиваться закрывающей, а элементы списка должны отделяться друг от друга пробелами. Например, для получения суммы трех чисел можно ввести:

(+ 62.8 37.2 1923.5) .

Завершается ввод выражения нажатием клавиши < Enter> или пробела. После этого AutoCAD вычислит указанное выражение и выдаст результат: 2023.5. [5]

В приведенном примере для вычисления было предложено выражение, открывающееся и закрывающееся круглыми скобками и состоящее из четырех элементов: первый ‒ имя функции сложения (+), остальные ‒ аргументы функции, т.е. слагаемые. Это иллюстрирует форму вычисляемых выражений языка AutoLISP:

( <функция> [ <аргумент1> [<аргумент2> …[<аргумент N>]]]) .

Здесь <функция> ‒ это имя функции, <аргумент1>, <аргумент2>, …<аргумент N> ‒ аргументы функции, разделяемые по крайней мере одним пробелом. Квадратные скобки в приведенной форме указывают на возможное отсутствие находящихся между ними аргументов. Количество аргументов зависит от синтаксиса функции. С точки зрения LISP все, что заключено в круглых скобках, является списком, который следует обработать как вычисляемое выражение. Основное правило AutoLISP ‒ баланс скобок, т.е. количество открывающих скобок должно быть равно количеству открывающих. [5]

Выражения AutoLISP могут быть простыми и составными. В составных выражениях могут использоваться другие выражения, причем разделяющими знаками в выражениях являются круглые скобки, пробелы и двойные кавычки. Двойные кавычки должны ограничивать с обеих сторон текстовые константы. [5]

Ввод с клавиатуры выражений LISP не всегда удобен, поэтому можно записать предварительно свои строки на языке LISP в файл с расширением lsp, а затем загрузить этот файл с помощью функции LOAD. Синтаксис этой функции следующий:

( LOAD <файл> [<ошибка>]) .

Здесь <файл> ‒ это строка с именем загружаемого файла а <ошибка> ‒ выражение, которое нужно выполнить или значение, которое нужно вывести, если загружаемый файл не будет обнаружен. Возвращаемое значение в случае удачной загрузки ‒ результат последнего выражения или имя последней функции, если в файле находятся определения функций. В случае если загружаемый файл не найден, то выполняется <ошибка> (оно может быть текстом сообщения об ошибке). Аргумент <ошибка> может быть опущен. Аргумент <файл> обычно содержит имя файла, который ищется в соответствии с настройкой рабочего каталога и путей поиска файлов поддержки. [5]

 

ПЛАН ОТЧЕТА

1. Титульный лист.

2. Цель работы.

3. Задание.

4. Описание программы.

 


Дата добавления: 2019-09-13; просмотров: 265; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!