20977

Организация сетей фреймов

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

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

setq TodayYear 2010 deframeq Book1 Nazvanie value Programmirovanie_na_FRL Author value Book2 status: indirect slot: author Year value 2003 PageNum value 672 Popularity value 2000 Quantity value GetQuantity PARM: TodayYear STATUS: EVAL deframeq Book2 Nazvanie value Programmirovanie_na_LISP Author value Chernov_PBajdun_VBunin_A Year value 1993 PageNum value 40 Popularity value 600 Quantity value GetQuantity PARM: TodayYear STATUS:...

Русский

2013-08-02

33.02 KB

2 чел.

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

Организация сетей фреймов.

  1.  С  помощью косвенного наследования задать часть информации во фрагменте библиотечной системы.

(setq TodayYear 2010)

(deframeq Book1

(Nazvanie  ($value (Programmirovanie_na_FRL)))

(Author  ($value (Book2 (status: indirect) (slot: author))))

(Year   ($value (2003)))

(PageNum  ($value (672)))

(Popularity  ($value (2000)))

(Quantity  ($value (GetQuantity (PARM: TodayYear) (STATUS: EVAL))))

)

(deframeq Book2

(Nazvanie  ($value (Programmirovanie_na_LISP)))

(Author  ($value (Chernov_P)(Bajdun_V)(Bunin_A)))

(Year   ($value (1993)))

(PageNum  ($value (40)))

(Popularity  ($value (600)))

(Quantity  ($value (GetQuantity (PARM: TodayYear) (STATUS: EVAL))))

)

(deframeq Book3

(Nazvanie  ($value (C++)))

(Author  ($value (Stroustrup_B)))

(Year   ($value (2008)))

(PageNum  ($value (1104)))

(Popularity  ($value (2500)))

(Quantity  ($value (GetQuantity (PARM: TodayYear) (STATUS: EVAL))))

)

(deframeq Book4

(Nazvanie  ($value (PHP_5/6)))

(Author  ($value (Kuznecov_M)))

(Year   ($value (2010)))

(PageNum  ($value (1024)))

(Popularity  ($value (1800)))

(Quantity  ($value (GetQuantity (PARM: TodayYear) (STATUS: EVAL))))

)

(deframeq Book5

(Nazvanie  ($value (JavaScript)))

(Author  ($value (Flanagan_D)))

(Year   ($value (2009)))

(PageNum  ($value (992)))

(Popularity  ($value (1900)))

(Quantity  ($value (GetQuantity (PARM: TodayYear) (STATUS: EVAL))))

)

(passertq GetQuantity (Y)

(

(setq P (- (car (fget :FRAME Popularity)) (* 200 (- Y (car (fget :FRAME Year))))))

(cond

 ((> P 0) P)

 (T 0)

)

))

пример

(fget book1 author)  =>  (Chernov_P Bajdun_V Bunin_A)

  1.  Задать  информацию  о фрагменте библиотечной системы с помощью AKO-иерархии.

(deframeq Library

(Nazvanie  ($value (Biblioteka_im_Lenina)))

(count   ($value (575)))

(instance  ($value (Programming) (Mathematics)))

)

(deframeq Programming

(Nazvanie ($value (Programming_Languages)))

(count  ($value (554)))

(AKO  ($value (Library)))

(instance  ($value (C++) (LISP) (FRL)))

)

(deframeq Mathematics

(Nazvanie ($value (Mathematics)))

(count  ($value (21)))

(AKO  ($value (Library)))

(instance  ($value (Algebra) (Geometry)))

)

(deframeq C++

(Nazvanie ($value (C++)))

(count  ($value (21)))

(AKO  ($value (Programming)))

(instance  ($value (book_1) (Book_2)))

)

(deframeq Lisp

(Nazvanie ($value (LIST_Processing)))

(count  ($value (320)))

(AKO  ($value (Programming)))

(instance  ($value (book_3)))

)

(deframeq FRL

(Nazvanie ($value (Frame_representative_language)))

(count  ($value (213)))

(AKO  ($value (Programming)))

(instance  ($value (book_4)))

)

(deframeq Algebra

(Nazvanie ($value (Algebra)))

(count  ($value (15)))

(AKO  ($value (Mathematics)))

(instance  ($value (book_5)))

)

(deframeq Geometry

(Nazvanie ($value (Geometry)))

(count  ($value (6)))

(instance  ($value (book_6)))

(AKO  ($value (Mathematics)))

)

(deframeq book_1

(Nazvanie  ($value (C++_Language)))

(count  ($value (18)))

(AKO  ($value (C++)))

)

(deframeq book_2

(Nazvanie  ($value (C++_for_professionals)))

(count  ($value (3)))

(AKO  ($value (C++)))

)

(deframeq book_3

(Nazvanie  ($value (Programmirovanie_na_LISP)))

(count  ($value (320)))

(AKO  ($value (lisp)))

)

(deframeq book_4

(Nazvanie  ($value (Programmirovanie_na_FRL)))

(count  ($value (213)))

(AKO  ($value (frl)))

)

(deframeq book_5

(Nazvanie  ($value (Algebra_and_the_begining_of_analis)))

(count  ($value (15)))

(AKO  ($value (algebra)))

)

(deframeq book_6

(Nazvanie  ($value (Decartovi_ploskosti)))

(count  ($value (6)))

(AKO  ($value (geometry)))

)

пример

(fget book_6 nazvanie) =>(Decartovi_ploskosti Geometry Mathematics Biblioteka_im_Lenina)

  1.  Имеется  система  фреймов,  организованная  в  циклическую (круговую) структуру. Обеспечить проход по циклу заданное количество раз в любую сторону, начиная с любого фрейма.

(deframeq Frame1

(Nazvanie  ($value (Frame_1)))

(nums   ($default (0)))

(Next   ($value (Frame2)))

(pred   ($value (Frame6)))

(Dir   ($value) ($default (1)))

(Ako   ($value (GetNext (status: eval) (parm: 'Frame1))))

)

(deframeq Frame2

(Nazvanie  ($value (Frame_2)))

(nums   ($default (0)))

(Next   ($value (Frame3)))

(pred   ($value (Frame1)))

(Dir   ($default (1)))

(Ako   ($value (GetNext (status: eval) (Parm: 'Frame2))))

)

(deframeq Frame3

(Nazvanie  ($value (Frame_3)))

(nums   ($default (0)))

(Next   ($value (Frame4)))

(pred   ($value (Frame2)))

(Dir   ($default (1)))

(Ako   ($value (GetNext (status: eval) (Parm: 'Frame3))))

)

(deframeq Frame4

(Nazvanie  ($value (Frame_4)))

(nums   ($default (0)))

(Next   ($value (Frame5)))

(pred   ($value (Frame3)))

(Dir   ($default (1)))

(Ako   ($value (GetNext (status: eval) (Parm: 'Frame4))))

)

(deframeq Frame5

(Nazvanie  ($value (Frame_5)))

(nums   ($default (0)))

(Next   ($value (Frame6)))

(pred   ($value (Frame4)))

(Dir   ($default (1)))

(Ako   ($value (GetNext (status: eval) (Parm: 'Frame5))))

)

(deframeq Frame6

(Nazvanie  ($value (Frame_6)))

(nums   ($default (0)))

(Next   ($value (Frame1)))

(pred   ($value (Frame5)))

(Dir   ($default (1)))

(Ako   ($value (GetNext (status: eval) (Parm: 'Frame6))))

)

(passertq GetNext (F nDir nNext Vis)

(setq nDir (car (fget1 F Dir)))

(print (car (fget1 F Nazvanie)))

(IF (equal nDir 1)

 (setq nNext (car (fget1 F Next)))

 (setq nNext (car (fget1 F pred)))

)

(Cond

 ((>= (car (fget1 nNext nums)) MaxVisit) Nil)

 (T

  (Setq Vis (car (fget1 F nums)))

  (fdelete F nums)

  (fput F nums $value (+ Vis 1))

  (fdelete nNext Dir $value)

  (fput nNext Dir $value nDir)

  nNext

 )

)

)

(setq Flist '(frame1 frame2 frame3 frame4 frame5 frame6))

(defun Zicl (FStart N)

(Cond

 ((Null (member FStart (cdr *FRAMES*))) Error!_Wrong_frame_argument!)

 ((Not (IntegerP N)) Error!_Wrong_number_of_cicles!)

 (T

  (if (>= N 0)

   (setq RDir 1)

   (setq RDir 0)

  )

  (setq MaxVisit (abs N))

  (FPut FStart Dir $value RDir)

  (Fgetn FStart nums $value)

  (refresh Flist)

 )

)

)

(defun refresh (fl)

(cond

 ((null fl) Finish)

 (T

  (fdelete (car fl) nums $value)

  (fput (car fl) nums $value 0)

  (refresh (cdr fl))

 )

)

)

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

(deframeq SKLAD

(kolvo   ($value (SKLADkolvo (status: eval))))

(maxkolvo  ($value (500)))

(instance  ($value (processors) (motherboards) (memory)))

)

(deframeq processors

(instance  ($value (CORE2DUO) (CORE2EXTREME) (CORE2QUAD) (COREi7)))

)

(deframeq motherboards

(instance  ($value (ASUSp6t7) (ASUSp6t6) (INTELdp55kg)))

)

(deframeq memory

(instance  ($value (DDR) (DDR2) (DDR3) (SDRAM)))

)

(deframeq CORE2DUO

(kolvo  ($value (45)))

(AKO   ($value (processors)))

)

(deframeq CORE2EXTREME

(kolvo  ($value (23)))

(AKO   ($value (processors)))

)

(deframeq CORE2QUAD

(kolvo  ($value (69)))

(AKO   ($value (processors)))

)

(deframeq COREi7

(kolvo  ($value (84)))

(AKO   ($value (processors)))

)

(deframeq ASUSp6t7

(kolvo  ($value (40)))

(AKO   ($value (motherboards)))

)

(deframeq ASUSp6t6

(kolvo  ($value (0)))

(AKO   ($value (motherboards)))

)

(deframeq INTELdp55kg

(kolvo  ($value (10)))

(AKO   ($value (motherboards)))

)

(deframeq DDR

(kolvo  ($value (18)))

(AKO   ($value (memory)))

)

(deframeq DDR2

(kolvo  ($value (96)))

(AKO   ($value (memory)))

)

(deframeq DDR3

(kolvo  ($value (14)))

(AKO   ($value (memory)))

)

(deframeq SDRAM

(kolvo  ($value (0)))

(AKO   ($value (memory)))

)

(passertq SKLADkolvo ()

(setq Sum 0)

(setq list1 (fget :frame instance))

(loop

 ((null list1) Sum)

 (setq list2 (fget (car list1) instance))

 (loop

  ((null list2) T)

  (setq Sum (+ sum (car (fget (car list2) kolvo))))

  (setq list2 (cdr list2))

 )

 (setq list1 (cdr list1))

)

)

(defun SKLADwatch (FSklad)

(PRINT --------------------)

(setq list1 (fget Fsklad instance))

(loop

 ((null list1) --------------------)

 (PRINT (car list1))

 (setq list2 (fget (car list1) instance))

 (loop

  ((null list2) T)

  (print (list (car list2) (car (fget (car list2) kolvo))))

  (setq list2 (cdr list2))

 )

 (setq list1 (cdr list1))

)

)

(defun inputx (Fsclad TName N)

(cond

 ((Null (member FSclad (cdr *FRAMES*))) Error!_Wrong_sclad_argument!)

 ((Null (member TName (cdr *FRAMES*))) Error!_Wrong_tovar_argument!)

 ((or (not (numberp N)) (< N 0)) Error!_Wrong_kolvo!)

 (T

  (setq S (car (fget TName kolvo)))

  (setq max (car (fget fsclad maxkolvo)))

  (setq K (car (fget fsclad kolvo)))

  (fdelete Tname kolvo)

  (if (> (+ N S K) max)

   (fput Tname kolvo $value (+ S (- max (+ K S))))

   (fput Tname kolvo $value (+ S N))

  )

 )

)   

)

(defun outputx (Fsclad TName N)

(cond

 ((Null (member FSclad (cdr *FRAMES*))) Error!_Wrong_sclad_argument!)

 ((Null (member TName (cdr *FRAMES*))) Error!_Wrong_tovar_argument!)

 ((or (not (numberp N)) (< N 0)) Error!_Wrong_kolvo!)

 (T

  (setq S (car (fget TName kolvo)))

  (fdelete Tname kolvo)

  (if (>= S N)

   (fput Tname kolvo $value (- S N))

   (fput Tname kolvo $value 0)

  )  

 )

)  

)

пример

(fget sdram kolvo)  => (0)

(inputx sklad sdram 10)

(outputx sklad sdram 2)

(fget sdram kolvo)  => (8)


 

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

65810. Система управления охраной труда на предприятии (организации) 29 KB
  Система управления охраной труда состоит из следующих элементов: разработка политики организации в области охраны труда; осуществление аудитов мониторингов проверок по охране труда; планирование работы по охране труда на основании идентификации опасностей оценки связанных с ними рисков и необходимых мер по управлению рисками...
65811. Функции ПР в современном гражданском обществе и рыночной экономике 22.5 KB
  Как функция управления ПР обобщает в себе многочисленные виды деятельности по обеспечению руководства организации информацией об общественном мнении оказанию ему помощи в выработке мер обеспечивающих общественные интересы поддержанию руководства...
65812. Основные методологические принципы естественной науки 26.14 KB
  Следствия принципа рациональности: Противоречие должно восприниматься как проблема аномалия слабое место теории. Разные теории принципиально по-разному объясняющие одно и то же явление не могут быть верными. Но эти теории противоречат друг другу...
65813. Признаки государства, внешние и внутренние функции государства 41 KB
  Признаки государства это его качественные свойства позволяющие отличить его от других явлений и что даже более важно т. Наличие публичной власти определяющий признак государства иногда публичную власть понимают как синоним государства отличающий его от догосударственной...
65816. Недостатки произношения свистящих звуков «С» - «Сь», «З» - «Зь», «Ц» (сигматизм, парасигматизм) 15.74 KB
  Правильная артикуляция: При произнесении свистящих звуков губы имеют тенденцию растягиваться в улыбке зубы сближены широкий кончик языка упирается в нижние резцы. Передняя часть спинки языка выгарбливается к верхним резцам при произнесении звука Ц она в первый момент образует смычку во второй щель.
65817. Государственная антимонопольная политика - ее цели и задачи 14 KB
  Для недопущения таких негативных процессов государственное антимонопольное регулирование осуществляется в двух направлениях: формирование антимонопольного законодательства; создание системы антимонопольных органов призванных осуществлять регулирование и контроль монополистической деятельности.