Logikbasierte Programmierung

Aus ProgrammingWiki

Wechseln zu: Navigation, Suche

Zur Übungsübersicht

Die folgenden Aufgaben beziehen sich direkt auf die in der Vorlesung verwendete Linienfhrung und die vorgestellten Beispiele. Es empfiehlt sich also das Sktipt durchzuarbeiten, die Beispiele dazu sind jedoch in Prolog geschrieben.

Inhaltsverzeichnis

Begriffe

Wiederholen Sie die Begriffe Relation und Prädikat aus der Mathematik.

Personen

Mann

Hier ein Beispiel für Prolog, es beschreibt die Mann Relation aus der Vorlesung, die Syntax für eine Relation ist <relation>(<wert>[,<werte>]).

Mit der Syntax <realtion>(<wert>). kann man abfragen ob ein Wert zu dieser Relation gehört.

Hinweis in Prolog wird ?- Voran gestellt was hier aber durch die Ausführungsbox Automatisch geschieht

Frau

Definieren Sie eine einstellige Relation frau nach dem Vorbild von mann mit den Elementen eva, daniela und ulrike.

Mutter

Vater

Definieren Sie eine zweistellige Relation vater nach dem Vorbild von mutter. Beziehungen

Vater!Sohn
tobias
frank
tobias,ulrike

Großvater

Fragen Sie nach dem Namen des Großvaters von Frank. Gibt es weitere Großväter, die sich aus unserer Wissensbasis ermitteln lassen?

Hinweis: Sie müssen dazu eine Regel erstellen die angiebt welche Regeln es zu befolgen gibt um den Großvater zu ereichen, in Prolog können sie auch mit einen Namen mehre regeln Verbinden.

Syntax

regelname(<variable>,[variablen]) :- 
:regel(<variable>,[variablen])
:[,regeln(<variable>,[variablen])].

Rekursion

Schreiben Sie in Prolog eine Funktion die die Fibanocci Zahlen aus gibt.

Hinweis Mit is kann man Variablenwerte zuweisen. Vergessen Sie nicht die Rekursionsabbrüche als eigene Regeln dar zu stellen.

Zusatz

Einsteins Rätsel

Dies ist eine Version des Zebrarätsels. Es wurde angeblich von Einstein im 19. Jahrhundert verfasst. Einstein wird oft der Vermerk zugeschrieben, nur 2 % der Weltbevölkerung seien im Stande, das Rätsel zu lösen. Es existiert jedoch kein Hinweis auf jedwede Autorenschaft. Hier soll es ein Beispiel für ein Problem darstellen, das mit Prolog lösbar ist.

Zur Übungsübersicht

Persönliche Werkzeuge