/* Вывод расписания на конкретный день Day */
'расписание'(Day):-setof([Gr,Ds,N,A,T,W],'расписание_занятий'(Gr,Ds,N,A,D,T,W),List),
'вывод'(Day,D,List).
'вывод'(_,_,[]).
'вывод'(D,D,[X|T]):-write(X),nl,'вывод'(D,D,(T)).
/* Вывод расписания по дням */
'расписание':-setof([Gr,Ds,N,A,T,W],'расписание_занятий'(Gr,Ds,N,A,D,T,W),List),
write('День = '),write(D),nl,'вывод'(D,D,List),fail.
/* Список аудиторий и их количество */
'аудитории':-asserta(cn(0)),fail.
'аудитории':-setof(Aud,'аудитория свободна'(Aud,Time),List),
'выводаудиторий'(List),fail.
'выводаудиторий'([]):-retract(cn(C)),write('кол ауд = '),write(C).
'выводаудиторий'([X|T]):-retract(cn(C)),C1 is C + 1,asserta(cn(C1)),
write(X),nl,'выводаудиторий'(T).
/* Колличество часов, которые ведёт преподователь по расписанию */
'нагрузка':-findall(N,'расписание занятий'(_,_,N,_,D,T,W),List),
'счет'(List),'список'.
'счет'([]).
'счет'([X|T]):-'добавить'(X),'счет'(T).
'добавить'(X):-'преподователь'(X,_),retract('преподователь'(X,N)),
N1 is N + 1, asserta('преподователь'(X,N1)).
'добавить'(X):-asserta('преподователь'(X,1)).
'список':-'преподователь'(Name,Count),retract('преподователь'(Name,Count)),
write(Name),tab(3),write(Count),nl,fail. |