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


 

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

40737. Постановка цілей в самоменеджменті 122.79 KB
  Охарактеризувати процес знаходження та формулювання цілей. Визначити складові методики застосування ситуаційного аналізу в процесі постановки цілей в самоменеджменті. Сутність та функціональний характер цілей самоменеджменту .
40738. Планування робочого часу 214.18 KB
  Охарактеризувати принципи і правила планування робочого часу визначити складові системи планування робочого часу. Назвати основні методи планування робочого часу. Основи планування робочого часу .
40739. Реалізація та організація діяльності менеджера 107.55 KB
  Графік працездатності . Графік працездатності Працездатність кожної людини піддається визначеним коливанням що відбуваються в рамках природного ритму. Пік працездатності як правило припадає на першу половину дня коли шлунок підшлункова залоза селезінка і серце функціонують найбільш активно.
40740. Контроль як функція самоменеджменту 106.78 KB
  Контроль процесу . Контроль результатів . Самоконтроль .Контроль за результатами праці з погляду досягнення кінцевої мети (цільовий контроль) слід проводити після виконання задачі (підсумковий контроль).
40741. Інформація і комунікація 217.58 KB
  Час: 80 хв. Метод : Лекція Місце: Навчальна аудиторія ПЛАН Навчальні питання: Час викладуВступ .Заключна частина . Прийоми раціонального читання Приблизно 30 свого часу менеджери витрачають на читання.
40742. Організація роботи менеджера 244.83 KB
  Джерело світла повинно розташовуватися так щоб світло не сліпило очі. Найкраще щоб джерело світла знаходилося ліворуч. Джерело світла повинно розташовуватися так щоб світло не сліпило очі відбиваючись від блискучої поверхні стола. Раціональне розміщення робочих місць стосовно джерела світла.
40743. Налично-денежный оборот и денежное обращение 62.13 KB
  Наличный денежный оборот непрерывный процесс движения наличных денег в форме банкнот банковских билетов казначейских билетов металлических монет. Наличный оборот начинается с указания ЦБ о переводе наличных денег которое передается РКЦ из резервных фондов в оборотные кассы из которых наличные деньги направляются в операционные кассы кредитных организаций банков. Эмиссию наличных денег осуществляет ЦБ РФ. Часть этих денег обслуживает межбанковские расчеты часть направляется в качестве кредитов другим банкам но большая часть...
40744. Диагностирование и лечение кожных заболеваний 122.02 KB
  Гигантская крапивница похожа на обычную лихорадку отличие в том что при первой опухлость появляется под кожей а не на поверхности кожи. Гистамин химическое вещество выделяемое определенными клетками которые расположены вдоль кровяных сосудов кожи. Дермографизм: сыпь возникающая после механического повреждения кожи удар царапание. Дерматиты Дерматиты воспалительные реакции кожи в ответ на воздействие раздражителей...
40745. Информация об интеллектуальной собственности 32.3 KB
  Патентные исследования патентные исследования это исследования технического уровня и тенденций развития объектов техники их патентоспособности патентной чистоты конкурентоспособности на основе патентной и другой информации. Патентные исследования проводят при: разработке научнотехнических прогнозов; разработке планов развития науки и техники; создании объектов техники; освоении и производстве продукции; определении целесообразности экспорта промышленной продукции и экспонировании ее образцов на международных выставках и...