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)


 

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

6693. Эволюция органического мира. Биологический вид, его популяционная структура 28.11 KB
  Эволюция органического мира. Определение эволюции. Теории эволюции. Биологический вид, его популяционная структура. Действие элементарных факторов на популяцию. В основе биологической эволюции лежат процессы самовоспроизведен...
6694. Полиморфизм человеческих популяций. Генетический груз 28.31 KB
  Полиморфизм человеческих популяций. Генетический груз. Классификация полиморфизма. Генетический полиморфизм популяций человека. Генетический груз. Генетические аспекты предрасположенности к заболеваниям. Естественный отбор мо...
6695. Популяционная структура человечества 29.46 KB
  Популяционная структура человечества. Особенности популяционной структуры человечества. Действие факторов эволюции в популяции людей. Популяция человека - группа людей, занимающих одну территорию и свободно вступающих в брак. Демогр...
6696. Эволюция систем органов (пищеварительная, иммунная, эндокринная и дыхательная системы) 28.6 KB
  Эволюция систем органов. Эволюция пищеварительной системы. Эволюция иммунной системы. Эволюция эндокринной системы. Эволюция дыхательной системы. Пищеварительная система. С 1880 по 1950г господствовала теория Мечникова. Она б...
6697. Онтофилогенетическая обусловленность пороков развития 200.23 KB
  Онтофилогенетическая обусловленность пороков развития. Биогенетический закон. Преобразование онтогенезов. Пороки развития. Эволюционные преобразования связаны не только с образованием и вымиранием видов, но и преобразованием онтоге...
6698. Человек как закономерный результат процесса развития органического мира 27.85 KB
  Человек как закономерный результат процесса развития органического мира. Прогрессивный характер эволюции. Проблема происхождения человека. Положение Homosapiens в системе живого мира. Этапы антропогенеза. Происхождение и эвол...
6699. Закономерности антропогенеза. Генетическая программа и программа социальная наследование в развитии современного человека 26.77 KB
  Закономерности антропогенеза Биологические предпосылки. Биосоциальная природа человека и процесс антропогенеза. Генетическая программа и программа социальная наследование в развитии современного человека. Расы современного че...
6700. Биологические основы паразитизма и трансмиссивных заболеваний 25.98 KB
  Биологические основы паразитизма и трансмиссивных заболеваний. Характеристика паразитизма. Взаимодействие паразитов и хозяина. Трансмиссивные и природно-очаговые заболевания. Живые организмы находятся в биотическом окружении, поэто...
6701. Медицинская протозоология. Характерные признаки простейших и их представители 25.22 KB
  Медицинская протозоология. Характерные признаки простейших. Представители. Один из разделов медицинской паразитологии - медицинская протозоология. Она изучает паразитических простейших, вопросы патогенеза, терапии заболеваний, диагн...