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)


 

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

37836. РЕШЕНИЕ СИСТЕМ НЕЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ МЕТОДОМ НЬЮТОНА 247 KB
  Метод Ньютона Многие прикладные задачи радиофизики и электроники требуют решения систем нелинейных алгебраических уравнений СНАУ или в векторной форме 2. Для численного решения таких систем используются итерационные методы. Построение k1го приближения в этой схеме осуществляется посредством решения линейной системы 2.3 при этом вектор поправки находится путем решения системы линейных алгебраических уравнений 2.
37837. Педагогические способности учителя 132 KB
  Способности - индивидуально-психологические особенности человека, проявляющиеся в деятельности и являющиеся условием успешности ее выполнения. От способностей зависит скорость, глубина, легкость и прочность процесса овладения знаниями, умениями и навыками, но сами они к ним не сводятся.
37840. Решение систем обыкновенных дифференциальных уравнений 300 KB
  В классе неявных методов абсолютно устойчивыми являются неявный одношаговый метод Эйлера неявный одношаговый метод трапеций неявный двухшаговый метод Гира и его реализация с переменным шагом метод Шихмана. В данной лабораторной работе изучаются следующие три наиболее часто используемые на практике численные метода: явный метод Эйлера неявный метод Эйлера неявный метод Шихмана. Явный метод Эйлера Формула интегрирования явного метода Эйлера имеет вид: 3.
37841. РАСПРЕДЕЛЕНИЕ ТЕРМОЭЛЕКТРОНОВ ПО СКОРОСТЯМ КОНТАКТНАЯ РАЗНОСТЬ ПОТЕНЦИАЛОВ 186.94 KB
  РТ21 ЛАБОРАТОРНАЯ РАБОТА № 3 РАСПРЕДЕЛЕНИЕ ТЕРМОЭЛЕКТРОНОВ ПО СКОРОСТЯМ КОНТАКТНАЯ РАЗНОСТЬ ПОТЕНЦИАЛОВ ЦЕЛЬ РАБОТЫ: Определить величину и знак контактной разности потенциалов между катодом и анодом при указанных ниже токах накала. Измерить зависимость анодного тока от напряжения изменяя его от 03 до 03 B при напряжениях накала 63; 50; 40 B. Ток накала измеряется амперметром А1. По полученным данным построить график зависимости lnI от U и определить по ним величину и знак контактной разности потенциалов между катодом и...
37842. ИССЛЕДОВАНИЕ ПРОСТЕЙШИХ ФИЛЬТРОВ 132 KB
  Схема полосового фильтра Резонансная частота = 2457 кГц Для определения левой и правой резонансной частоты возьмем максимальную точку на графике и...
37843. ПРИБЛИЖЕНИЕ ФУНКЦИЙ МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ 304 KB
  Метод среднеквадратического приближения функций заданных набором экспериментальных данных называется методом наименьших квадратов МНК. Рассмотрим применение метода наименьших квадратов для среднеквадратического приближения функции полиномом степени . Метод наименьших квадратов наиболее просто применить когда искомые параметры входят в аппроксимирующую зависимость линейно.
37844. Комп’ютерна електроніка та схемотехніка. Лабораторний практикум 1.78 MB
  Цель работы: Приобрести минимально необходимые навыки работы с пакетом EWD 4.0. Исследовать схемы пассивных RС – фильтров в частотной и временной области.