20975

Ассоциативные списки и списки свойств

Лабораторная работа

Информатика, кибернетика и программирование

DEFUN F27 L COND NULL L NIL T CONS LENGTH CDR CAR L F27 CDR L пример SETQ SCLAD 'PROCESSORS MATHERBOARDS MEMORY PUT ‘PROCESSORS ‘CORE2DUO 5 PUT ‘PROCESSORS ‘CORE2EXTREME 8 PUT ‘MATHERBOARDS ‘ASUSp6t7 1 PUT ‘MATHERBOARDS ‘ASUSp6t6 12 PUT ‘MATHERBOARDS ‘INTELdp55kg 34 PUT ‘MEMORY ‘DDR 23 PUT ‘MEMORY ‘DDR2 34 PUT ‘MEMORY ‘DDR3 15 PUT ‘MEMORY ‘SDRAM 15 F27 SCLAD = 2 3 4 Исходный список содержит имена объектов списки свойств которых содержат некоторую информацию. DEFUN F29 L X COND...

Русский

2013-08-02

23.98 KB

1 чел.

Лабораторная работа № 6.

Ассоциативные списки и списки свойств.

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

; Извлечение из ассоциативного списка (L) всех ключей, удовлетворяющих (F).

(DEFUN F26 (L F)

(COND ((NULL L) NIL)

((FUNCALL F (CAR (CAR L))) (CONS (CDR (CAR L)) (F26 F (CDR L))))

(T (F26 F (CDR L)))

)

)

пример

(F26 ‘((a . 1) (b . 2) (c . 3) (-2 . 4) (3 . 5) (-6 . 6)) ‘MINUSP)  => (4 6)

(F26 ‘((a . 1) (b . 2) (c . 3) (-2 . 4) (3 . 5) (-6 . 6)) ‘SYMBOLP)  => (1 2 3)

  1.  Исходный список содержит имена  объектов,  списки  свойств которых содержат некоторую информацию.  Определить для каждого объекта количество пар <ключ-значение>.

(DEFUN F27 (L)

(COND ((NULL L) NIL)

    (T (CONS (LENGTH (CDR (CAR L))) (F27 (CDR L)) ))

 )

)

пример

(SETQ SCLAD '(PROCESSORS MATHERBOARDS MEMORY))

(PUT ‘PROCESSORS ‘CORE2DUO 5)

(PUT ‘PROCESSORS ‘CORE2EXTREME 8)

(PUT ‘MATHERBOARDS ‘ASUSp6t7 1)

(PUT ‘MATHERBOARDS ‘ASUSp6t6 12)

(PUT ‘MATHERBOARDS ‘INTELdp55kg 34)

(PUT ‘MEMORY ‘DDR 23)

(PUT ‘MEMORY ‘DDR2 34)

(PUT ‘MEMORY ‘DDR3 15)

(PUT ‘MEMORY ‘SDRAM 15)

(F27 SCLAD)  => (2 3 4)

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

; Поиск флага в списке

(DEFUN F28_2 (S F)

(COND ((NULL (FLAGP S F)) 0)

(T 1)

)

)

(DEFUN F28_1 (S L)

(SETQ P 0)

(LOOP

((NULL L) (COND ((> P 1) T) (T NIL)))

(SETQ P (+ P (F28_2 S (CAR L))))

(SETQ L (CDR L))

)

)

(DEFUN F28 (L1 L2)

(SETQ K NIL)

(LOOP

((NULL L1) K)

(IF (F28_1 (CAR L1) L2)

(SETQ K (APPEND K (LIST (CAR L1))))

)

(SETQ L1 (CDR L1))

)

)

пример

(flag S1 'F1)

(flag S1 'F2)

(flag S2 'F3)

(flag S2 'F4)

(flag S2 'F2)

(flag S3 'F3)

(flag S3 'F4)

(flag S4 'F1)

(flag S4 'F2)

(flag S4 'F3)

(F28 ‘(S1 S2 S3 S4) ‘(F1 F2 F3))  => (S1 S2 S4)

  1.  Пусть в списке свойств атома может быть специальное свойство с ключом ISA,  значение которого является именем другого списка свойств, называемого списком-прототипом, из которого могут наследоваться недостающие свойства.  Написать функцию  (GET-ISA  <имя списка свойств>  <имя  свойства>),  которая  в  случае отсутствия искомого свойства в исходном списке выдает значение первого найденного такого же свойства среди всех ISA-прототипов данного списка свойств.

(DEFUN F29 (L X)

(COND ((GET L X) (GET L X))

(T (SETQ LP (GET L 'ISA)) (GET LP X))

)

)

пример

(put Y 's1 1)

(put Y 's2 2)

(put Y 'ISA X)

(put Y 's3 3)

(put Y 's4 4)

(put X 'S5 5)

(put X 'S6 6)

(put X 'S7 7)

(put X 'S8 8)

(put X 'S9 9)

(F29 Y S3)  => 3

(F29 Y S7)  => 7

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

; Определение наличия товара (X) на складе (S)

(DEFUN GETX (S X)

(LOOP

 ((NULL S) TOVAR_NA_SKLADE_OTSUTSVUET)

 ((GET (CAR S) X) (GET (CAR S) X))

 (SETQ S (CDR S))

)

)

; Вывоз товара (X) в количестве (N) со склада (S)

(DEFUN OUTPUTX (S X N)

(LOOP

((NULL S) TOVAR_NA_SKLADE_OTSUTSVUET)

((GET (CAR S) X)

(COND ((< (- (GET (CAR S) X) N) 0) NEDOSTATOCHNO_TOVARA_NA_SCLADE)

(T ((PUT (CAR S) X (- (GET (CAR S) X) N)) TOVAR_USPESHNO_VIVEZEN))                      

)

)

(SETQ S (CDR S))

)

)

; Завоз товара (X) в количестве (N) на склад (S)

(DEFUN INPUTX (S X N)

(LOOP

((NULL S) TOVAR_NA_SKLADE_OTSUTSVUET)

((GET (CAR S) X) (PUT (CAR S) X (+ (GET (CAR S) X) N)) TOVAR_USPESHNO_ZAVEZEN)

(SETQ S (CDR S))

)

)

пример

; Формирование склада комплектующих ПК

(SETQ SCLAD '(PROCESSORS MATHERBOARDS MEMORY))

(PUT ‘PROCESSORS ‘CORE2DUO 5)

(PUT ‘PROCESSORS ‘CORE2EXTREME 8)

(PUT ‘PROCESSORS ‘CORE2QUAD 23)

(PUT ‘PROCESSORS ‘COREi7 2)

(PUT ‘MATHERBOARDS ‘ASUSp6t7 1)

(PUT ‘MATHERBOARDS ‘ASUSp6t6 12)

(PUT ‘MATHERBOARDS ‘INTELdp55kg 34)

(PUT ‘MATHERBOARDS ‘MSIp55 65)

(PUT ‘MEMORY ‘DDR 23)

(PUT ‘MEMORY ‘DDR2 34)

(PUT ‘MEMORY ‘DDR3 15)

(PUT ‘MEMORY ‘SDRAM 15)

(GETX SCLAD ‘DDR2)    => 34

(OUTPUTX SCLAD ‘ASUSp6t6 4)  => TOVAR_USPESHNO_VIVEZEN

(GETX SCLAD ‘ASUSp6t6)   => 8

(INPUTX SCLAD ‘ASUSp6t6 20)  => TOVAR_USPESHNO_ZAVEZEN

(GETX SCLAD ‘ASUSp6t6)   => 28

(OUTPUTX SCLAD ‘ASUSp6t6 40)  => NEDOSTATOCHNO_TOVARA_NA_SCLADE


 

А также другие работы, которые могут Вас заинтересовать

41401. Программирование в Internet Active X Data Objects (ADO.NET) 225.5 KB
  NET модель доступа к данным применяемая приложениями NET. Connection(XXXConnection, установка соединения с источником данных, реализует интерфейс IDbConnection); Command(выполнение sql-команд и хранимых процедур); DataReader(доступ к данным для чтения, извлеченным по запросу); DataAdapter(наполнение DataSet информацией, выполнение изменений в базе данных, выполненных в DataSet).
41402. Базы данных. Нормализация данных 506.5 KB
  Код товара Наименование Цена Количество Стоимость 223 Мяч футбольный 25 3 75 338 Мяч баскетбольный 33 2 66 767 Мяч гандбольный 12 2 24 655 Мяч теннисный 10 10 100 Итого 265 нормальная форма атомарность Счет Дата № Покупателя Фамилия Имя Телефон Адрес Код товара Наименование Цена Количество Стоимость 222333 26. Свердлова 13 223 Мяч футбольный 25 3 75 222333 26. Свердлова 13 338 Мяч баскетбольный 33 2 66 222333 26. Свердлова 13 767 Мяч гандбольный 12 2 24 222333 26.
41404. Разработка программного обеспечения информационных систем 194.5 KB
  Основные причины успеха и провала проектов В отчете группы Стендиша 1994 указано три наиболее часто встречающихся ключевых фактора создающих проблемы в проектах. Некое свойство программного обеспечения необходимое пользователю для решения проблемы при достижении поставленной цели. Подход к управлению требованиями Область проблемы Как правило мы находимся во владениях пользователячужестранца. Таким образом наша задача состоит в том чтобы понять их проблемы в их предметной области и на их языке и построить системы удовлетворяющие их...
41405. Управление требованиями. Объектно-ориентированный анализ и проектирование 240 KB
  Вторую категорию составляют непрямые пользователи а также те на кого воздействуют только бизнес последствия разработки. Этих заинтересованных лиц можно найти в соответствующей бизнес области или в окрестностях среды конкретного приложения. Ограничения налагаемые на систему ввода заказов на покупку Источник Ограничение Объяснение Эксплуатационный Копия данных заказа на покупку должна оставаться в унаследованной базе данных в течение одного года Риск потери данных слишком высок; нам необходимо работать параллельно в течение года...
41406. МЕТОДЫ ВЫЯВЛЕНИЯ ТРЕБОВАНИЙ 85.5 KB
  Пять этапов анализа проблемы Достижение соглашения об определении проблемы Выделение основных причин проблем стоящих за проблемой Выявление заинтересованных лиц и пользователей Определение границ системырешения Выявление ограничений налагаемых на решение 5. Синдром неоткрытых руин Синдром пользователя и разработчика Функции продукта или системы Потребности заинтересованных лиц и пользователей Функции Управление сложностью путем выбора уровня абстракции Атрибуты функций продукта 9. Предельно недорога ...
41407. Обыгрывание ролей 196.5 KB
  Проблема требований Цель Статистика Основные причины успеха и провала проектов Высокая цена ошибок требований 2. Инженерия систем интенсивно использующих программное обеспечение Задача выявления требований 7. Преграды на пути выявления требований Синдром да но. МЕТОДЫ ВЫЯВЛЕНИЯ ТРЕБОВАНИЙ Совещания посвященные требованиям Мозговой штурм и отбор идей Раскадровка Применение прецедентов 9.
41408. Документ Delta Vision 225 KB
  Он представляет собой достаточно подробное описание на естественном языке поэтому основным участникам проекта легко с ним работать. Разработка документаконцепции и работа с ним являясь центром приложения действий многих участников заказчиков пользователей представителей руководства проекта и маркетинга могут играть заметную роль в успехе или неудаче программного проекта. При создании первой версии документа это не так уж сложно так как практически все пункты в перечне будут новыми для данного проекта или по крайней мере должны...
41409. Промышленные технологии проектирования ИС 152.5 KB
  По степени использования типовых проектных решений различают следующие методы проектирования: оригинального индивидуального проектирования когда проектные решения разрабатываются с нуля в соответствии с требованиями к ЭИС; типового проектирования предполагающего конфигурацию ЭИС из готовых типовых проектных решений программных модулей. Итеративному подходу присуща внутренняя гибкость позволяющая включать в бизнесцели новые требования или тактические изменения. Хотя ни один отдельно взятый процесс не способен удовлетворить...