- •Раздел 1 4
- •Раздел 2 7
- •2.1. Теоретическая часть 7
- •Раздел 3 9
- •3.1. Теоретическая часть 9
- •Введение
- •Раздел 1 Алгоритм сопоставления с образцом
- •Теоретическая часть
- •Практическая часть
- •Раздел 2 исследование семантических сетей
- •2.1. Теоретическая часть
- •2.2. Практическая часть
- •Раздел 3 Исследование сети фреймов
- •3.1. Теоретическая часть
- •3.2. Практическая часть
- •Список использованных источников
- •Приложение а
- •Приложение в
- •Приложение с
Приложение с
Листинг задачи №3
(progn
(defclass Helikopt ()
((vid:initform 'air)))
(defclass Udar(Helikopt)
((Shema :initform 'Klassic :accessor get_Shema)
(Ekipag:initform ‘dva :accessor get_Ekipag)
(Gryz:initform ‘dva : accessor get_Gryz)
(Skorost:initform ‘trista : accesor get_Skorost)
))
(defclass AntiTank(Helikopt)
((Shema :initform 'soosn :accessor get_Shema)
(Ekipag:initform ‘dva :accessor get_Ekipag)
(Gryz:initform ‘desyat : accessor get_Gryz)
(Skorost:initform ‘chetirestapiyatdes : accesor get_Skorost)
))
(defclass Transp(Helikopt)
((Shema :initform 'Klassic :accessor get_Shema)
(Ekipag:initform ‘tri :accessor get_Ekipag)
(Gryz:initform ‘vosem : accessor get_Gryz)
(Skorost:initform ‘dvesi : accesor get_Skorost)
))
(setq Mi_24 (make-instance 'Udar))
(setq Mi_8 (make-instance 'Udar))
(setq K_50 (make-instance 'AntiTank))
(setq K_52 (make-instance 'AntiTank))
(setq Mi_6 (make-instance 'Transp))
(setq Mi_10 (make-instance 'Transp))
(defun equip(board)
(cond
((equal board ' Mi_24) (get_Shema Mi_24))
((equal board 'Mi_8) (get_Ekipag Mi_8))
((equal board 'K_50) (get_Gryz K_50))
((equal board 'K_52) (get_Skorost K_52))
((equal board 'Mi_6) (get_Shema Mi_6))
((equal board 'Mi_10) (get_Ekipag Mi_10))
)
)
(defun car-letter(x) (car(coerce(string x) 'list)))
(defun cdr-name(x) (intern(coerce(cdr(coerce(string x) 'list)) 'string)))
(defun match(p d)
(cond
((and (null p)(null d))t)
((or (null p)(null d))nil)
((or(equal (car p) '?)(equal(car p)(car d)))(match (cdr p)(cdr d)))
((eq(car p)'$)(cond ((match(cdr p)d)t)((match p(cdr d))t)))
((and (atom(car p))(eq(car-letter (car p))#\?)(match (cdr p)(cdr d)))(set (cdr-name(car p))(car d)) t)))
(defun zapros(fact)
(cond
((equal fact '())(princ "The End"))
((match '(Kakie bivaut vertoleti ?R)fact)(vid R))
(t (princ "Wrong question")())
))
)
> (zapros '(Kakie bivaut vertoleti))
Udar AntiTank Nransp