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


 

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

68068. Разработка эффективной системы адаптации работников Красноярского информационно-вычислительного центра 387.5 KB
  Исследовать содержание процесса адаптации работников; выполнить анализ основных показателей трудовых ресурсов предприятия; проанализировать нормативно - правовую базу ОАО «РЖД», регламентирующую функционирование системы адаптации; выполнить анализ существующей системы адаптации работников в Красноярском...
68069. Краса українського слова 51.5 KB
  Ведучий 2: Так писав відомий український письменник Тарас Шевченко. Ведучий 1: О місячне сяйво і спів соловя Півонії мальви жоржини Моря брилі антів це мова моя Це мова моєї Вкраїни. Ведучий 2: Мова це неоціненне духовне багатство в якому народ живе передає з покоління в покоління мудрість...
68070. І гукає в віки вічна слава твоя, Краснодоне 149.5 KB
  Це свято духа Вияв сил таких Які плекати може серце чисте Це сталь і ніжність почуттів людських І величі ознака урочиста Учень 2 Це втілення краси людської. Це усе чим людство на землі пишалось Це вміння смерті глянути в лице Та так щоби цього і смерть сама злякалась Учень 3 Це спалах світлий...
68071. ВІКТОРИНА «ЧИ ЗНАЕШ ТИ СВІЙ РІДНИЙ КРАЙ?!» 26 KB
  Приймає участь 2 команди по 5 чоловік. 1/. Конкурс "Адреса" рідного краю". Звучить запитання, яка команда першою відповідає вірно, отримує -1- бал. /за кожне запитання/. 1. В якій частині України знаходиться Вінницька область? /в Правобережній/. Хмельницькою, Житомирською/.
68072. Природні багатства. Корисні копалини. Охтирка – нафтова столиця 34.5 KB
  Корисні копалини. Передбачувані результати: Учні повинні знати: природні багатства рідного краю; Вміти: розрізняти корисні копалини розповідати про них. Що вони означають Так це корисні копалини. На сьогоднішньому уроці ми знову погоримо про корисні копалини саме про ті які є в нашій місцевості.
68073. Крымские горы 59.5 KB
  Продолжать формировать представление о природных зонах Украины о горах. Сформировать понятие Крымские горы. Необходимо назвать горные системы название которых начинается с этой буквы и рассказать какие интересные факты об этой горной системе они знают.
68074. Кримські гори 185.5 KB
  Обладнання: Фізична карта України слайди з виглядом гір тварин і рослин кримських гір картки для опитування тестові завдання картки із словами спостережливі ерудовані старанні дружні уважні матеріали проекту Тваринний світ Кримських гір оформлені у вигляді папки і газети. Як називається карпатська...
68075. «Крок до зірок» Позакласний захід для учнів 5 – 6 класів 73 KB
  Ведучий. Доброго дня, дорогі гості, шановні вболівальники та учасники змагань. Сьогодні ми будемо свідками цікавої боротьби юних математиків. У змаганнях беруть участь дві команди — «Пропорція» та «Діаметр», які матимуть можливість показати свої знання, ерудицію, кмітливість і вміння мислити.
68076. Бій під Крутами (вшанування пам’яті юнаків, які героїчно загинули у бою під Крутами 29 січня 1918 року) 124.5 KB
  Мета заходу: формування в учнів почуття патріотизму, любові до свого народу, його історії та героїчного минулого; формування й розвиток мотивації, спрямованої на підготовку до захисту Вітчизни, на прикладі подвигу однолітків; формування інтересу до літератури про бій під Крутами.