• Keine Ergebnisse gefunden

Ubungen zur Vorlesung ¨ Logikprogrammierung

N/A
N/A
Protected

Academic year: 2021

Aktie "Ubungen zur Vorlesung ¨ Logikprogrammierung"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Michael Arndt Sommersemester 2003

Fritz Hamm Ubungsblatt 7¨

Peter Schroeder-Heister 18.6.2000

Ubungen zur Vorlesung ¨ Logikprogrammierung

Aufgabe 1 Arithmetik (2 Punkte)

In Prolog k¨onnen arithmetische Ausdr¨ucke durch die Konstanten [0−9] und die Operationen +, -, *,//und mod gebildet werden. F¨ur arithmetische Vergleiche stehen folgende Relationssymbole zur Verf¨ugung (die auch in Infix-Notation verwendet werden k¨onnen): <, =<, >, >=, =:= (gleich),

=\= (ungleich).

Definieren Sie ein Pr¨adikat ordered/1, das ¨uberpr¨uft, ob eine Liste arithmetischer Ausdr¨ucke ihrem Wert nach geordnet ist.

Aufgabe 2 Das Acht-Damen-Problem (4+2 Punkte)

Beim Acht-Damen-Problem sollen acht K¨oniginnen so auf einem Schachbrett positioniert werden, daß keine K¨onigin eine andere bedroht. Eine Position auf dem Schachbrett ist gegeben durch die x- und die y-Koordinate. Die beiden Diagonalen berechnen sich aus x und y als u = x−y und v =x+y. Die Bereiche der Dimensionen sind

Dx = {1,2,3,4,5,6,7,8}

Dy = {1,2,3,4,5,6,7,8}

Du = {−7,−6,−5,−4,−3,−2,−1,0,1,2,3,4,5,6,7}

Dv = {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}

Das Problem reduziert sich darauf, acht 4-Tupel (x, y, u, v) zu finden mitx∈Dx,y∈Dy,u∈Du, v ∈Dv, u= x−y und v =x+y, so daß in keinem der vier Bereiche Dx, Dy, Du und Dv eine Komponente zweimal vorkommt. Schreiben Sie ein Pr¨adikatsolution(L,Dx,Dy,Du,Dv), das diese Bedingung erf¨ullt. Dabei gen¨ugt es, in der Liste L nur die y-Koordinaten zu sammeln.

Hinweis: Die Berechnungen u=x−y und v =x+y werden in Prolog realisiert durch:

U is X - Y V is X + Y.

Zusatzaufgabe:Mit den Befehlenwrite/1undwrite ln/1k¨onnen Ausgaben auf den Bildschirm (stdout) gemacht werden. Definieren Sie ein Pr¨adikat display sol/1, das f¨ur eine L¨osung eine Ausgabe in der folgenden Art erzeugt:

---

|() |

| () |

| ()|

| () |

| () |

| () |

| () |

| () |

---

Strings als Argumente der Ausgabepr¨adikate werden dabei z.B. als ’()’oder ’ ’ angegeben.

Referenzen

ÄHNLICHE DOKUMENTE

, oder mit‚Uranoxyduls alzen. Dieser Niederschlag ist es nun, welcher die Contouren unserer Negativbilder bildet. Man beliebte eine zur Hälfte bedeckte, mit Jodsilber

Aufgabe 26: Acht-Damen-Problem Pflichtaufgabe Auf einem Schachbrett sollen acht Damen so platziert werden, dass keine Dame eine andere Dame schlagen kann.. Im Schachspiel bewegen

Frage 11: Allgemein: Wie groß ist der Anteil der schwarzen Felder in einem dreiecki- gen Schachbrett der Kantenlänge k.. Frage 12: Gibt es weiß-schwarz-Wege in einem

so der Hauß Wirth denen Staats bedienten oder sonst außgiebet / muß roh außgeschlagen werden. Vor allen Dingen muß er so viel Riegen bauen / daß er allerhöchst

„Am anderen Morgen teilte mir nun mein Reit- knecht mit, der erwähnte Bi- schof habe Schach gespielt, und dies Wort traf empfind- lich mein Herz wie ein Pfeil und brachte mir eine

Erweitern Sie die Pr¨adikate lexan/2 und parse/2, so daß aussagenlogische Sequenzen lexikalisch analysiert und geparst werden k¨onnen.. Gestalten Sie dabei das Pr¨adikat parse/2

Definieren Sie ein Pr¨adikat provable/1 , welches f¨ur einen String, der eine g¨ultige Sequenz im Sinne von Aufgabe 1 von ¨ Ubungsblatt 11 darstellt, angibt, ob die Sequenz

Das Problem ist, acht Damen auf einem Schachbrett so anzuordnen, dass keine die andere