close

Anmelden

Neues Passwort anfordern?

Anmeldung mit OpenID

Der Vater und die Weltkarte., Daheim im alten Schlesien. Mit einem

EinbettenHerunterladen
VU Logik und Logische Programmierung
WS 2014/2015
Ao.Univ.-Prof. Dr. Bernhard Aichernig
Severin Kann
Benedikt Maderbacher
Ausgabe:
Abgabe:
Abgabeort:
Abgabeformat:
Gruppengr¨oße:
Punkte:
1
13.10.2014
bis 27.10.2014 10.00 Uhr
SVN Repository
Prolog-File mit Namen task1/sol1.pl (zus¨atzliche Files im
Repository m¨
ussen mittels consult inkludiert werden)
2 Personen
1 pro Beispiel, gesamt 6
Gruppenbildung und SVN-Repository
1. Bilden Sie eine Zweiergruppe mit einem/einer weiteren LV-TeilnehmerIn
2. Erstellen Sie mittels TUGrazOnline ein SVN-Repository f¨
ur ihre Gruppe nach dem
Muster https://svn.tugraz.at/svn/lp2014 <MatrikelNr1> <MatrikelNr2>.
Beispiel f¨
ur StudentInnen mit Matrikelnummern 1201234 und 1206789:
https://svn.tugraz.at/svn/lp2014 1201234 1206789
3. F¨
ugen Sie die Studienassistenten (Severin Kann und Benedikt Maderbacher) als Reader hinzu ( Bedienstete w¨ahlen“)
”
2
Aufbau des Repository
Im Root-Ordner des Repository muss sich ein Textfile group.txt befinden, welches in
genau zwei Zeilen die beiden Namen und Matrikelnummern der Gruppenmitglieder enth¨alt.
Formatvorlage (am besten kopieren):
Alice Musterfrau, 1201234
Bob Mustermann, 1206789
Ihre L¨osungen werden automatisiert getestet, halten Sie sich daher bitte an folgende Ordnerstruktur, und stellen Sie sicher, dass SWI-Prolog Ihre Abgabe korrekt parsen kann! Wir
stellen tlw. Beispiel-Testcases zur Verf¨
ugung, zus¨atzliche selbst gebaute Testcases d¨
urfen
gerne von Ihnen in die Newsgroup gestellt werden.
1
Vorlage f¨
ur die Ordnerstruktur:
<Repository-URL>/group.txt
<Repository-URL>/task1/sol1.pl (f¨
ur Aufgabenblatt 1)
<Repository-URL>/task2/sol2.pdf (f¨
ur Aufgabenblatt 2)
<Repository-URL>/task3/sol3.pl (f¨
ur Aufgabenblatt 3)
<Repository-URL>/task4/sol4.pl (f¨
ur Aufgabenblatt 4)
Haben Sie noch keine(n) PartnerIn so verwenden Sie bitte die Newsgroup zur Partnersuche!
1. Erweitern Sie die Relationen der Verwandtschaftsverh¨altnisse um
uncle(Uncle, Nibling),
sibling(A, B) und
cousin(A, B).
2. Ein Stapel von B¨
uchern kann als eine Ansammlung von Fakten on(b1,b2) beschrieben werden, welche wahr ist, wenn Buch b1 auf Buch b2 liegt. Definieren Sie ein
Pr¨adikat over(Book1,Book2), welches wahr ist, wenn Book1 im Stapel u
¨ber Book2
liegt.
3. Schreiben Sie ein Pradikat gt(A,B), welches wahr ist, wenn A gr¨oßer B ist, wobei A
und B mit Hilfe der induktiven Struktur der nat¨
urlichen Zahlen codiert sind.
Beispiel:
?- gt(s(0),0).
true .
?- gt(s(s(0)),R).
R = 0 ;
R = s(0) ;
false.
4. Schreiben Sie unter der Verwendung der induktiven Struktur der nat¨
urlichen Zahlen
ein Pr¨adikat div(A,B,Q,R), das genau dann wahr ist, wenn Q der Quotient aus A
und B sowie R der Rest der Division ist. Verwenden Sie die Pr¨adikate times(A,B,P)
(wahr genau dann wenn P = A ∗ B) und add(A,B,S) (wahr genau dann wenn
S = A + B) aus der Vorlesung sowie das Pr¨adikat gt(A,B).
Beispiel:
?- div(s(s(s(s(s(0))))),s(s(0)), Q, R).
Q = s(s(0)),
R = s(0) .
5. Schreiben Sie ein rekursives Programm adjacent(A,B,Xs), welches wahr ist, wenn
A und B in der Liste Xs benachbart sind (wobei A links von B steht).
2
Beispiel:
?- adjacent(1, 2, [1,3,2,4,1,2,3]).
true .
?- adjacent(1, 2, [1,3,2,4,1,3,2]).
false.
6. Schreiben Sie ein Programm subst(X,Y,L1,L2), welches wahr ist, wenn die Liste L2
das Ergebnis des Ersetzens von Y f¨
ur alle Vorkommen von X in der Liste L1 ist.
Beispiel:
?- subst(a,d,[a,b,c,a,b,c],R).
R = [d, b, c, d, b, c] ;
false.
Viel Spaß und Erfolg!
3
Document
Kategorie
Internet
Seitenansichten
5
Dateigröße
85 KB
Tags
1/--Seiten
melden