Информационный портал Media Systems & Bear Corp.

Главная Новости Delphi C&C++ Tеория Графов Web-Design Математика Исходники и Проекты Лисп и Пролог Ссылки

Портал :: Программирование на Лиспе :: Лабораторные работы по ФРЛ
Лабораторная работа № 7( Скачать архив )  

 

Создание фреймов и извлечение информации из них.

Задание 31: Создать фреймы, описывающие фрагмент библиотечной системы (содержащие как декларативную, так и процедуральную (в том числе использующую переменные ФРЛ-среды) составляющие).

Задание 32: Добавить во фреймы, определенные в предыдущем задании, дополнительную информацию всеми возможными способами.

Задание 33: Извлечь из определенных фреймов информацию по заданному множеству запросов.

Задание 34: Реализовать функцию последовательного просмотра на экране фреймов из заданного списка. Предусмотреть запрос о направлении дальнейшего просмотра списка фреймов.

 

(setq time 2001)

(deframeq Card1
(Section ($value ( Roman) ) ($default ( Story) ))
(Popularity ($default (0)))
(Year ($value 1980))
(BookName ($value (Voina_i_Mir)))
(Author ($value (Tolstoi)))
(Age ($value (GetAge (PARM: time ) (STATUS: EVAL) )))
)

(deframeq Card2
(Section ($value ( Roman) ) ($default ( Story) ))
(Popularity ($default (0)))
(Year ($value 1970))
(BookName ($value (Karenina)))
(Author ($value (Tolstoi)))
(Age ($value (GetAge (PARM: time ) (STATUS: EVAL) )))
)

(deframeq Card3
(Section ($default ( Story) ))
(Popularity ($default (0)))
(Year ($value 1965))
(BookName ($value (Sunday)))
(Author ($value (Tolstoi)))
(Age ($value (GetAge (PARM: time ) (STATUS: EVAL) )))
)

(deframeq Card4
(Section ($value ( Roman) ) ($default ( Story) ))
(Popularity ($default (0)))
(Year ($value 1990))
(BookName ($value (Voina_i_Mir)))
(Author ($value (Tolstoi)))
(Age ($value (GetAge (PARM: time ) (STATUS: EVAL) )))
)

(deframeq Card5
(Section ($default ( Story) ))
(Popularity ($default (0)))
(Year ($value 1999))
(BookName ($value ((Hercule Poirot))))
(Author ($value (Kristi)))
(Age ($value (GetAge (PARM: time ) (STATUS: EVAL) )))
)

(passertq GetAge (time3) ( (AddPopularity :Frame) (- time3 (car (fget :FRAME Year )))))

(defun ChangeYear (F Ye)
(fdelete F Year $value)
(fput F Year $value Ye)
)

(defun AddPopularity (F P)
(Setq P (car (fget F Popularity)))
(fdelete F Popularity)
(fput F Popularity $value (+ P 1))
)

(defun RunFView (FL Num Fl2 A)
(loop
(princ "This is Number ")(princ Num)
(princ " Called ")(print (car FL))
(Print "Print it?")
(if (equal (read input) 'y) (FPrint (list (car FL))))
(Princ "That was Number ")(princ Num)
(princ " Called ")(print (car FL))
(print "Show next (n), previous (p) or exit (x) ?")
(setq A (read input))
((or (Equal A 'x) (and (not (Equal A 'p)) (not (Equal A 'n)))) (Print "Good-Bye!!"))
(cond ((and (Equal A 'p)
(not (NULL Fl2))
)
(setq Num (Sub1 Num))
(setq Fl (Cons (car FL2) FL))
(setq FL2 (cdr FL2))
)
((and (Equal A 'n)
(not (Null (cdr FL)))
)
(setq Num(Add1 Num))
(setq Fl2 (Cons (car FL) Fl2))
(setq FL (cdr FL))
)
)
)
)

(defun FView (FL)
(cond ((Null FL) (Print "Nil"))
(T (RunFView FL 1))
)

)

 

©Bear Labs, Inc. 2001, All Rights Reserved.

 
   
  Гостевая книга . Связь с разработчиками: Bear Corporation, Media Studio.  
  Это место для вашей рекламы  

Дизайн: Bear Corner, Inc. & Media Sudio.
Последнее обновление: 10.05.2001.

Rambler's Top100 Rambler's Top100
Hosted by uCoz