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:159:30-10:4511:00-12:1514:00-15:1515:30-16:4517:00-18:1518: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:159:30-10:4511:00-12:1514:00-15:1515:30-16:4517:00-18:1518: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).