ЭТАПЫ ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ



2.1. Изучите способы задания геометрической точки.

2.2. Изучите принцип построения параметризованного изображения.

2.3. Изучите программу 3.

2.4. Напишите ЛИСП-программу вычерчивания квадрата с вписанной окружностью.

2.5. Напишите ЛИСП-программу вычерчивания геометрической фигуры в соответствии с индивидуальным заданием.

2.6. В среде AutoCAD проведите отладку обеих программ.

2.7. Распечатайте полученные изображения и программы.

 

ПЛАН ОТЧЕТА

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

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

3. Задание.

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

5. Полученные распечатки.

 

ВАРИАНТЫ ИНДИВИДУАЛЬНЫХ ЗАДАНИЙ

Таблица 1.

№ п/п

Фигура

Длина стороны

вписанная описанная
1 правильный треугольник окружность 100
2 окружность правильный треугольник 100
3 квадрат окружность 50
4 окружность правильный шестиугольник 50
5 правильный шестиугольник окружность 60
6 правильный пятиугольник окружность 60
7 окружность правильный пятиугольник 60
8 правильный семиугольник окружность 80
9 окружность ромб 70
10 ромб окружность 70
11 окружность правильный семиугольник 100
12 правильный восьмиугольник окружность 120
13 окружность правильный восьмиугольник 130
14 окружность равнобедренный треугольник 40
15 равнобедренный треугольник окружность 50

ЛАБОРАТОРНАЯ РАБОТА 4

ПОСТРОЕНИЕ СОСТАВНЫХ ЛИСП-ПРОГРАММ. ЦИКЛЫ И РАЗВЕТВЛЕНИЯ

Цель работы: изучение методики построения составных ЛИСП-программ в графической системе AutoCAD, операторов цикла и разветвления.

 

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

Подпрограммы и ветвления

В любом языке программирования есть средства для создания подпрограмм, циклов, ветвлений в программах в зависимости от результатов проверки условий. Такие средства есть и в AutoLISP. [4-6]

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

Для этих целей в AutoLISP служит уже известная функция DEFUN. Описание некоторой функции с помощью DEFUN и можно считать подпрограммой, а обращение к описанной ранее функции − вызовом подпрограммы. При обращении на место символических аргументов в описании функции подставляются истинные значения этих переменных. Например, описанная в программе 1 функция SINCOS(A) может рассматриваться как подпрограмма. А строка (SINCOS 0.0), встречающаяся в какой-либо программе, является обращением к этой подпрограмме, причем аргумент А принимает значение 0.

Ветвления в программе организуются с помощью функции IF:

(IF <условие> <функция1> [<функция2>])

Здесь <условие> − такое выражение AutoLISP, которое среди прочих значений может в какой-то ситуации получить значение NIL.

Функция IF вычисляет значение условия и, если оно не NIL, то выполняет <функцию1>, иначе выполняет <функцию2>, если она присутствует. Функция IF возвращает результат выполнения функции. Таким образом, функция IF соответствует управляющей структуре «ЕСЛИ-ТО-ИНАЧЕ».

Логические функции

Для записи условий чаще всего используются функции, которые назовем логическими. [4-6] К ним относятся функции

= (равно), < (меньше), > (больше), /= (не равно), <= (меньше или равно), >= (больше или равно).

Эти функции позволяют выполнять сравнение чисел или текстов. Логические функции AND, OR, NOT обеспечивают возможность строить сложные условия из простых.

Все эти функции могут возвращать одно из двух значений: NIL («нет», условие не выполняется) или Т («да», условие выполняется).

Например, функция «=» имеет вид: (= <атом> <атом>...).

Здесь в качестве атомов могут стоять либо числа (как целые, так и вещественные), либо текстовые данные. Функция «=» возвращает Т, если все атомы равны между собой, иначе ‒ NIL.

Функция «не равно» определена только для двух атомов.

Функция «меньше»: (< <атом> <атом>…) возвращает Т, если каждый предыдущий атом меньше последующего, иначе ‒ NIL.

Аналогично определяются остальные функции сравнения. Для текстовых констант понятие «меньше» означает следующее: сравнение производится по первой несовпадающей букве. «Меньшим» считается тот символ, ASCII-код ко-торого меньше. Для букв алфавита коды нарастают в алфавитном порядке (отдельно для прописных, отдельно для строчных букв).

Функции AND, OR, NOT являются функциями алгебры логики.

Функция (AND < выражение >...) выполняет операцию логического «И» над списком выражений, т.е. функция возвращает NIL, если хотя бы одно выражение имеет значение NIL. Иначе возвращается Т.

Функция (OR < выражение >...) выполняет операцию логического «ИЛИ». Эта функция возвращает Т, если хотя бы одно выражение имеет значение Т, иначе ‒ NIL.

Функция (NOT <выражение>) выполняет логическую функцию «НЕ». Если выражение имеет значение NIL, то возвращается Т, во всех остальных случаях возвращается NIL.

Примеры:

Пусть имеются следующие значения:

А-5, В – “ТЕХТ1”, С-NIL.

Тогда

( = А 5) возвращает Т,

(< В “ТЕХТ2”) – Т,

(AND А В С ) – NIL,

(OR A B C)-T,

( NOT С)-Т.

Рассмотрим еще одну логическую функцию NULL [5]. Эта функция имеет следующий формат:

( NULL <аргумент>) .

Типы аргументов ‒ любые. Тип возвращаемого значения ‒ логическое (T, если значение аргумента равно NIL, и NIL ‒ в противном случае). Фактически идентична функции NOT. Традиционно функция NULL употребляется для проверки непустоты списков.

 


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

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






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