zurück
verarbeiteListe([], [], _, _).
verarbeiteListe([Ver|Rest], [ErgebnisKopf|ErgebnisRest], LetzterTag, LetzterRaum) :-
LetzterTag = 0,
Ver=aus(Tag, Raum, Zeit, VerID),
veranstaltung(VerID, Teilnehmer, _),
raum(Raum,_,_,RaumName),
tag(Tag, Tagname),
ErgebnisKopf=[nl,'', Tagname, ' |
',
nl, '8:00-9:15 | 9:30-10:45 | 11:00-12:15 | 14:00-15:15 | 15:30-16:45 | 17:00-18:15 | 18:15-19:45 | ',
nl, '
', RaumName, ' | ', '', VerID, ' ', Teilnehmer, ' | '],
verarbeiteListe(Rest, ErgebnisRest, Tag, Raum).
verarbeiteListe([Ver|Rest], [ErgebnisKopf|ErgebnisRest], LetzterTag, LetzterRaum) :-
Ver=aus(Tag, Raum, Zeit, VerID),
LetzterTag =\= Tag,
veranstaltung(VerID, Teilnehmer, _),
raum(Raum,_,_,RaumName),
tag(Tag, Tagname),
ErgebnisKopf=[nl,'
', nl, '', Tagname, ' |
',
nl, '8:00-9:15 | 9:30-10:45 | 11:00-12:15 | 14:00-15:15 | 15:30-16:45 | 17:00-18:15 | 18:15-19:45 | ',
nl, '
', RaumName, ' | ', '', VerID, ' ', Teilnehmer, ' | '],
verarbeiteListe(Rest, ErgebnisRest, Tag, Raum).
verarbeiteListe([Ver|Rest], [ErgebnisKopf|ErgebnisRest], LetzterTag, LetzterRaum) :-
Ver=aus(Tag, Raum, Zeit, VerID),
LetzterRaum =\= Raum,
veranstaltung(VerID, Teilnehmer, _),
raum(Raum,_,_,RaumName),
ErgebnisKopf=[nl,'
', '', RaumName, ' | ', '', VerID, ' ', Teilnehmer, ' | '],
verarbeiteListe(Rest, ErgebnisRest, Tag, Raum).
verarbeiteListe([Ver|Rest], [ErgebnisKopf|ErgebnisRest], LetzterTag, LetzterRaum) :-
Ver=aus(Tag, Raum, Zeit, VerID),
veranstaltung(VerID, Teilnehmer, _),
ErgebnisKopf=[nl,'', VerID, ' ', Teilnehmer, ' | '],
verarbeiteListe(Rest, ErgebnisRest, Tag, Raum).
teilnehmerAusgabe(Stream, []).
teilnehmerAusgabe(Stream, [Kopf|Rest]) :-
Rest = [],
print(Stream, Kopf).
teilnehmerAusgabe([Stream, Kopf|Rest]) :-
print(Stream, Kopf),
print(Stream, ', '),
teilnehmerAusgabe(Stream, Rest).
schreiben([], _).
schreiben([nl|Rest], Stream) :-
nl(Stream),
schreiben(Rest, Stream).
schreiben([Ele|Rest], Stream) :-
print(Ele), nl,
Ele = [Teilnehmer|TeilnehmerRest],
teilnehmerAusgabe(Stream, Ele),
schreiben(Rest, Stream).
schreiben([Ele|Rest], Stream) :-
print(Stream, Ele),
schreiben(Rest, Stream).
ausgabe(Loesung, Wissensbasis, Ausgabe) :-
print('Wissensbasis ...'),
nl,
compile(Loesung),
compile(Wissensbasis),
print('Variablen erstellen ...'),
nl,
findall(aus(Tag, Raum, Zeit, VerID), loesung(VerID, Raum, Tag, Zeit), Veranstaltungen),
print('Variablen sortieren ...'),
nl,
sort(Veranstaltungen, SortVeranstaltungen),
Header=['',nl,'',nl,'',nl,'Stundenplan',nl,'',nl,'',nl,
'',nl,''],
print('Verarbeiten ...'),
nl,
verarbeiteListe(SortVeranstaltungen, Ergebnis, 0, 0),
flatten(Ergebnis, Body),
Footer=['
', nl, '', nl, '', nl],
append(Header, Body, Out1),
append(Out1, Footer, Output),
open(Ausgabe, write, Stream),
print('schreiben ...'),
nl,
schreiben(Output, Stream),
close(Stream).