Zum Forum springen
Benachrichtigungen
Alles löschen

Prolog

2 Beiträge
2 Benutzer
0 Reactions
547 Ansichten
Wirsiing
Beigetreten: 31.07.2010
PokerStrategist

Hallo,

hoffe es treiben sich hier auch Informatiker rum die sich mit Prolog auskennen.
Ich brauche noch 2 Aufgaben für meine Klausurzulassung, die c) und die f):

Aufgabe 1 (2 + 1 + 2 + 2 + 2 + 2 Punkte) Gib fur folgende Teilaufgaben jeweils eine
Implementierung in Prolog an. Zur Vereinheitlichung sei deniert, da das erste Element einer
Liste an der Position 0 steht:
a) Das Pradikat zip(Xs,Ys,Rs) soll erfullt sein, wenn Rs eine Liste aus Tupeln (x,y) ist, die
aus den Elementen der Listen Xs und Ys bestehen. Dabei sollen die Elemente gleicher Indizes
zusammengefugt werden. (Dies entspricht etwa der Funktion zip aus Haskell.)
b) Schreibe das Pradikat zip(Xs,Ys,Rs) so um, dass fur unterschiedlich lange Listen Xs und Ys
jeweils nur bis zur Lange der kurzeren Liste zusammengefugt wird. (Wenn nicht sowieso schon
in a) berucksichtigt).
c) Das Pradikat indexList(E,Xs,Rs) soll erfullt sein, wenn Rs eine Liste mit allen Positionen
ist, an denen das Element E in Xs vorkommt. Beachte, dass dazu auf ein weiteres neues Pradikat
zuruckgreifen musst, welches einen Parameter als Zahlvariable nutzt.
d) Das Pradikat indexOf(E,Xs,P) soll erfullt sein, wenn P die Position angibt, an der E in Xs
steht. Es soll moglich sein, dass bei freier Belegung von P nacheinander alle Position ausgegeben
werden.
e) Das Pradikat everySecond(Xs,Rs) soll erfullt sein, wenn Rs jedes zweite Elemente aus Xs
enthalt.
f) Das Pradikat everyNth(N,Xs,Rs) soll erfullt sein, wenn Rs jedes N-te Elemente aus Xs enthalt.
Beispiele:
?- zip([1,2,3],[a,b],Rs).
Rs = [(1,a),(2,b)]
?- indexList(a,[a,b,c,a,b],Rs).
Rs = [0,3]
?- indexOf(a,[a,b,c,a,b],P).
P = 0 <space>
P = 3 .
?- everySecond([a,b,c,d,e,f],Rs).
Rs = [b,d,f].
?- everyNth(3,[a,b,c,d,e,f],Rs).
Rs = [c,f].

Hoffe mir kann jemand helfen wird knapp...
Danke schonmal


Antwort
Zitat
1 Antwort
Khrano
Beigetreten: 20.06.2009
PokerStrategist

Hallo Wirsiing,

ich hab das Thema mal in unser Forum für Aufgabenhilfe verschoben.

Gruß,
Khrano


Antwort
Zitat
Teilen: