hi,
wäre sehr nett wenn ihr mir bei meinem problem helfen könntet.
Und zwar geht es um die Probeklausur (Prologteil, Aufgabe 5).
Ich habe bei b.) und d.) Probleme.Aus der Musterlösung werde ich auch nicht schlau.Kann mir jemand seine eigene Lösung posten?
Danke
cool wär natürlich aufgabenstellung oder link dazu, und die musterlösung..,
hab mal was gebastelt ohne gewähr..
% eine liste zum testen
list([[hh1,1999],[hh2,2003],[hh3,1492],[hh4,42],[hh5,1981]]).
% zaehlt die elemente einer liste
count([],0).
count([_|REST],ANZ):-count(REST,RESTANZ),ANZ is RESTANZ + 1.
% zaehlt in einer kennzeichenliste die anzahl der wagen
% die aelter oder so alt sind wie jahre angegeben,
% (bisher kein abfangen von negativen jahren..)
aelterals(LIST,JAHRE,ANZ):-BAUJAHR is 2003 - JAHRE,
loeschejuengere(LIST,BAUJAHR,ALTLIST),count(ALTLIST,ANZ).
% loescht aus einer kennzeichenliste die autos,
% die juenger als das angegebene baujahr sind
loeschejuengere([],_,[]).
loeschejuengere([[KENN,ZUL]|REST],JAHR,[[KENN,ZUL]|RESTALTLIST]):-
ZUL =< JAHR,loeschejuengere(REST,JAHR,RESTALTLIST),
loeschejuengere([[_,ZUL]|REST],JAHR,ALTLIST):-ZUL > JAHR,
loeschejuengere(REST,JAHR,ALTLIST).
% gibt das aelteste baujahr aus einer kennzeichenliste an
% (bei einer leeren liste ist dies 2004)
% achtung, etwas stark rekursives vorgehen, kann dauern bei grossen listen..
% gefiel mir aber so ;)
%
% alternative: z.b. liste der jahre erstellen, sortieren, erstes element ist
% dann kleinstes jahr (oder das letzte element..)
aeltestesbaujahr([],2004).
aeltestesbaujahr([[_,ZUL]|REST],RESTJAHR):-aeltestesbaujahr(REST,RESTJAHR),
RESTJAHR < ZUL.
aeltestesbaujahr([[_,ZUL]|REST],ZUL):-aeltestesbaujahr(REST,RESTJAHR),
ZUL < RESTJAHR.