Регистрация: 23.05.2007
Сообщений: 6
|
Prolog (Выбор по условию из списка)
Добрый день. Вот код программы
Код:
domains
day,month=Integer
DayWeek,Name,yspex,Fname,Iname,Oname,work=string
Fio=fio(Fname,Iname,Oname)
Examinator=exm(Fio,work)
StyleNew=stNew(day,month)
StyleOld=stOld(day,month)
date=dt(StyleNew,StyleOld)
exam=exm(date,yspex,examinator); % экзамены либо сдаем либо нет
noexm(yspex,Examinator)
ex=exx(name,exam)
examen=ex* % список экзаменов
predicates
zapros_exam
sessiya(DayWeek,examen)
clauses
sessiya("Понедельник",[exx("Иностранная география",exm(dt(stNew(21,05),stOld(01,05)),"Занимался",exm(fio("Муров","Максим","Максимович"),"Доцент"))),
exx("Чистая математика",exm(dt(stNew(29,05),stOld(09,06)),"Занимался",exm(fio("Петров","Петр","Петрович"),"Доктор")))]).
sessiya("Вторник",[exx("Латинский язык",exm(dt(stNew(15,05),stOld(26,05)),"Весьма хорошо",exm(fio("Иванов","Иван","Иванович"),"Доцент"))),
exx("Всеобщая история",exm(dt(stNew(22,05),stOld(02,06)),"Занимался",exm(fio("Петров","Петр","Петрович"),"Доктор"))),
exx("Прикладная математика",exm(dt(stNew(29,05),stOld(09,06)),"Занимался",exm(fio("Титов","Дмитрий","Иванович"),"КМН")))]).
sessiya("Среда",[exx("Закон Божий",exm(dt(stNew(16,05),stOld(27,05)),"Хорошо",exm(fio("Сидоров","Петр","Иванович"),"Доцент"))),
exx("Полит экономия",exm(dt(stNew(23,05),stOld(03,06)),"Весьма хорошо",exm(fio("Миронов","Иван","Петрович"),"Доктор"))),
exx("Фортификация и артиллерия",exm(dt(stNew(30,05),stOld(10,06)),"Отсутствие интереса",exm(fio("Коновалов","Дмитрий","Иванович"),"Доцент")))]).
sessiya("Четверг",[exx("Российская словестность",exm(dt(stNew(17,05),stOld(28,05)),"Превосходно",exm(fio("Иванов","Иван","Иванович"),"Доцент"))),
exx("Частное право",exm(dt(stNew(24,05),stOld(04,06)),"Хорошо",exm(fio("Козлов","Кирил","Дмитриевич"),"Доктор"))),
exx("Физика",exm(dt(stNew(31,05),stOld(10,06)),"Отсутствие интереса",exm(fio("Титов","Дмитрий","Иванович"),"КМН")))]).
sessiya("Пятница",[exx("Немецкая словестность",exm(dt(stNew(18,05),stOld(29,05)),"Занимался",exm(fio("Иванов","Иван","Иванович"),"Доцент"))),
exx("Уголовное право",exm(dt(stNew(25,05),stOld(05,06)),"Хорошо",exm(fio("Козлов","Кирил","Дмитриевич"),"Доктор")))]).
sessiya("Суббота",[exx("Французкая словестность",exm(dt(stNew(19,05),stOld(30,05)),"Превосходно",exm(fio("Демидов","Иван","Иванович"),"Профессор"))),
exx("Отечественная география",exm(dt(stNew(26,05),stOld(06,06)),"Занимался",exm(fio("Муров","Максим","Максимович"),"Доцент")))]).
sessiya("Net",[exx("Логика",noexm("Хорошо",exm(fio("Карамазов","Максим","Максимович"),"Профессор"))),
exx("Нравственная философи",noexm("Хорошо",exm(fio("Карамазов","Валентин","Максимович"),"Доцент"))),
exx("Фехтование",noexm("Превосходно",exm(fio("Курашев","Дмитрий","Петрович"),"Профессор")))]).
%Какие экзамены в субботу
zapros_exam:-sessiya(A,B),A="Суббота",write("В ",A,' ',B,' '),nl,fail;true.
Помогите написать запрос к этой программе по которому она выведет, название всех экзаменов которые будут в период по StyleNew с 15,05 по 19,05 ??? я никак не могу понять как писать запрос к спискам
|