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)


 

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

67052. ПРАВИЛА ГОСТИННОСТІ 33 KB
  Гостинність – уміння так прийняти гостей, щоб їм було добре, приємно, цікаво. Якщо ви запросили свого товариша до себе в гості, повинні подбати про те, щоб гість гарно провів час. До зустрічі слід підготуватися заздалегідь: Прибрати; Самому гарно одягнутися; Бути доброзичливим, до гостя ставитися з повагою...
67053. День цивільної оборони 73.5 KB
  Накласти стерильну повік від вогню то накинути на потерпілого якусь ковдру або покласти його на землю чи пісок. При втраті свідомості треба звільнити потерпілого від тісного одягу дати понюхати нашатир. Рот в рот: Стати на коліно біля голови потерпілого. Той хто надає допомогу робить глибокий вдих...
67054. Мистецтво навколо нас 66 KB
  Запитання для команд по 15 запитань для кожної команди Види образотворчого мистецтва це: Жанри образотворчого мистецтва це: Що ми називаємо лінією горизонту Які фарби використовували первісні люди для виконання наскальних зображень...
67055. Гра «Останній герой» 59.5 KB
  Командам задається запитання роздумувати над яким вони можуть протягом однієї хвилини. Команда яка швидше відповість на запитання перемагає. Готовність до відповіді на запитання характеризується піднятою рукою одного з учнів. Якщо ні одна з команд не відповідає на запитання то вони обидві позбуваються по одному гравцю.
67056. Я – СОЦІАЛЬНИЙ ПРАЦІВНИК 80 KB
  Мета проведення: навчальна: перевірити рівень знань студентів випускних груп зі спец предметів; розвиваюча: розвивати пізнавальні інтереси до предметів професійної спрямованості, логічне мислення, моторику, пам’ять, увагу, повагу до майбутньої професії...
67057. «Квіткова година» (Інтелектуальна гра для дітей 6-7 років) 156.5 KB
  Мета. Активізувати та систематизувати знання учнів, розвивати комунікативні уміння, виховувати вміння працювати в команді, відстоювати свою думку, коректне ставлення до опонентів, розвивати кмітливість, логічне мислення.
67058. А МИ ЦЕ ВИВЧАЛИ! 161 KB
  Обладнання: заготовки питань мовознавчого характеру на три команди по 10 на кожну; ребуси чайнворд речення для редагування і з допущеними орфографічними та пунктуаційними помилками; можна використати комп’ютер і проектор щоб демонструвати деякі завдання на екран.
67059. Інтелектуальна гра «Я люблю Україну» 62 KB
  Багата й різноманітна творчість нашого народу. З вікових глибин зринає перед нами фантастичний світ казок. Загадкам властива насамперед метафоричність, що ґрунтується на спостереженнях над природою та побутом, а також стислість і чіткість викладу. Отже, загадки - це стислі поетичні твори, в основі яких лежить метафоричне запитання...
67060. ІНТЕЛЕКТУАЛЬНА ГРА З УКРАЇНСЬКОЇ МОВИ 51.5 KB
  На дошці відповідне оформлення. Заходячи до класу, учні беруть з коробки по одному жетону червоного, синього або жовтого кольору. Відповідно до кольору жетона, кожен гравець займає своє місце за ігровим столом, на якому розміщені назви команд: «Жовті» «Сині» «Червоні».