Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > ПОМОЩЬ СТУДЕНТАМ > Помогите найти ошибку в CLIPS в небольшом коде программы.


Автор: yuliyasheyn 01.02.18, 07:39
Здравствуйте,помогите пожалуйста выявить ошибку в коде, когда отвечаю в вопросе про студента,пишет,что студент не найден,а когда пишу имя преподавателя,то код не идет...
задачка вот такая :
На факультете работает много профессоров, читаю-
щих различные курсы. Курс может иметь несколько разделов. Профес-
сор может вести несколько курсов, а также отдельные разделы неко-
торых курсов.
Однако, каждый раздел любого курса читается только одним
профессором. Следовательно, курс, состоящий из нескольких разде-
лов может преподаваться различными профессорами.
Студент может посещать разные курсы, но он может не изучать
отдельные разделы курса.
Профессор занимает должность, не разделяемую с другими про-
фессорами.
Пара значений Имя Студента и Год уникальна.
Может быть уникальна оценка студента по данному курсу.
Информация может быть представлена отношениями:
Курсы(название,раздел,имя профессора,должность)
А 1 ЕО 281
А 3 ВК Н45
В 1 КЕ 281
и т.д.
Студенты(Имя, Год, Название курса, Раздел, Оценка)
Возможны другие форматы отношений.
Реализовать запросы:
1.О всех функциональных зависимостях между атрибутами отношений;
2.Сформировать окно, включающее список(Студент, Курс, Раздел, Преподаватель).
Запросы: 1) студент- на какие курсы он ходит
2) профессор- какие курсы он ведет


Сам код вот такой :


<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    (assert(kurs c++ 1 Ivanov dotsent))
    (assert(kurs c++ 2 Abdulaev professor))
    (assert(kurs c++ 3 Shvetsov k.t.n))
    (assert(kurs python 1 Gorohov st.prep))
    (assert(kurs python 2 Abdulaev professor))
    (assert(kurs python 3 Ivanov dotsent))
    (assert(kurs java 1 Borodin aspirant))
    (assert(kurs java 2 Shvetsov k.t.n))
    (assert(kurs java 3 Gorohov st.prep))
    (assert(student Kris 1996 c++ 1 5))
    (assert(student Lena 1997 python 1 5))
    (assert(student Masha 1995 java 2 5))
    (assert(student Kirya 1994 java 1 5))
     
     (defglobal ?*name* = none)
     
    (deffunction askname (?question)
    (printout t ?question)
    (bind ?*name* (read))
    (assert (name ?*name* )))
        
     
    (defrule stud ""
    (name ?n)
    (student ?n ?god ?kurs $?) => (printout t "This kurs: " ?kurs crlf))
     
     
    (defrule start
    (initial-fact)
    =>
    (askname "Name of student? "))
    -------------------------------------------------------------------------------------------------------
    (defglobal ?*fam* = none)
     
    (deffunction askfam (?question)
    (printout t ?question)
    (bind ?*fam* (read))
    (assert (fam ?*fam* )))
     
    (defrule stud ""
    (fam ?f)
    (kurs ?kurs $? ?f $?) => (printout t "This kurs from professor: " ?kurs crlf))
     
    (defrule start
    (initial-fact)
    =>
    (askfam "Name of professor? "))

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)