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



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

2.2. Изучите примеры работы со списками.

2.3. Сформируйте произвольный список данных.

2.4. Разработайте ЛИСП-программу создания сформированного списка.

2.5. В среде AutoCAD проведите отладку своей программы.

2.6. Распечатайте полученный список и программу.

ПЛАН ОТЧЕТА

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

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

3. Задание.

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

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

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

СОЗДАНИЕ БАЗ ДАННЫХ СПИСКОВОЙ СТРУКТУРЫ И ИХ ИСПОЛЬЗОВАНИЕ

Цель работы: приобретение навыков в формировании графических баз данных.

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

Основы формирования графических баз данных

Из рассмотренных выше функций работы со списками при программировании на AutoLISP, наверное, чаще всего используются функции LIST (для получения геометрической точки из отдельных координат), а также CAR и CADR (для выделения координат точки). Такое использование иллюстрируется следующей простой программой.

; Программа 6. Получение трехмерной точки

; по заданной двухмерной точке и координате Z

(DEFUN 2d-3d (p z)

(LIST (CAR p) (CADR p) z)

)

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

("фамилия" "имя" "отчество" "год рождения"...)

Программа 7 содержит две функции. Функция «Синтез» позволяет построить на основе схемы описание конкретного объекта, также имеющее форму списка. Каждый элемент этого списка является списком вида:

(ключевое-слово значение-ключевого-слова)

Например, описание объекта может выглядеть так:

(("фамилия" "Попов") ("имя" "Иван")...)

Функция «Анализ» позволяет найти любой элемент описания объекта по ключевому слову и при необходимости изменить значение этого элемента. [2-6]

Алгоритмы формирования списков базы данных

Рассмотрим алгоритм формирования объектов базы данных с помощью функции «Синтез» (SYNTEZ). [4, 6]

Опишем шаги построения функции SYNTEZ.

1) Аргументом функции SYNTEZ должен быть список «Схема».

2) Сформировать пустой список «Объект» с помощью функции (LIST).

3) ПОКА имеются элементы в списке «Схема» работает ЦИКЛ:

Выдать ключевое слово и ввести значение ключевого слова;

Сформировать подсписок из ключевого слова и его значения с помощью функции (LIST);

Добавить подсписок в список «Объект» с помощью функции (CONS);

ВСЕ ЦИКЛ ПОКА.

4) Реверсировать список «Объект».

5) КОНЕЦ.

Рассмотрим алгоритм работы с объектами базы данных с помощью функции «Анализ» (ANALYZ). [4, 6]

Опишем шаги построения функции ANALYZ.

1) Выдать запрос и ввести ключевое слово или «Пусто» (NIL).

2) ЕСЛИ введено не «Пусто» ТО

3) Найти значение по ключу с помощью функции (ASSOC) и выдать его.

4) Выдать запрос и ввести новое значение или «Пусто».

5) ЕСЛИ введено не «Пусто» ТО

Сформировать новый подсписок с помощью функции (LIST);

Подставить новый подсписок в список «Объект» с помощью функции (SUBST);

ВСЕ ЕСЛИ.

6) ВСЕ ЕСЛИ.

7) КОНЕЦ.

Пример программы работы с базой данных

Ниже приведена программа 7, реализующая функции SYNTEZ и ANALYZ. [4, 6]

Программа 7: Пример работы с базой данных

(DEFUN SINTEZ (Схема)

(SETQ Объект ‘())

(FOREACH Ключ Схема

(PRINC (STRCAT "\n Введите значение"

Ключ"="))

(SETQ Значение (GETSTRING))

(SETQ Элемент (LIST Ключ Значение))

(SETQ Объект (CONS Элемент Объект))

);foreach

(SETQ Объект (REVERSE Объект ))

)

;

(DEFUN ANALIZE ()

(SETQ Ключ (GETSTRING "\n Введите ключевое слово ( или Enter)"))

(IF (/= (ASCII Ключ ) 10)

(PROGN

(SETQ Элемент (ASSOC Ключ Объект ))

(SETQ Значение (CADR Элемент ))

(PRINC (STRCAT Ключ "=" Значение ))

(SETQ Новое_значение (GETSTRING

"\n Введите новое значение (или Enter)"))

(IF (/= (ASCII Новое_значение) 10)

(SETQ Новый_элемёнт (LIST Ключ

Новое_значение)

Объект (SUBST Новый_элемент

Элемент Объект))

);if

);progn

);if

)

 


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

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






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