Übungsaufgaben Einstieg in Prolog
Aus Informatik
Version vom 12. Februar 2008, 16:10 Uhr von Christoph Ziegenhain (Diskussion | Beiträge) (→Aufgabe 2)
Aufgabe 1
Es ist eine Datenbasis zu erstellen, die den Stammbaum von Donald und Daisy erfasst.
Folgende Fragen sind an die Datenbasis zu stellen:
- Wer sind die Eltern von Daisy?
- Mit wem ist Baldur verheiratet?
- Wie heißen die Kinder von Adam?
- Wie ist der Name von Cosimas Mutter?
- Wie heißt der Vater von Daisy?
- Welche Söhne hat Barbara, welche Töchter hat Anton?
- Welche Großeltern hat Donald?
- Gesucht sind die Großmütter von Clemens, die Urgroßeltern von Daisy, die Schwiegermutter von Bernd.
- Wer ist der Bruder von Clemens?
- Wer ist die Schwester von Cosima?
Aufgabe 2
Gegeben ist der folgende Ausschnitt aus einem Familienstammbaum. (Jeder Pfeil bedeutet, von oben nach unten gelesen: ...ist Elternteil von...)
- Erfassen Sie den Familienstammbaum in einer geeigneten Datenbasis. (Beachten Sie hierbei, dass dies nur ein Ausschnitt der Wirklichkeit ist und der Stammbaum somit unvollständig ist.)
- Beantworten Sie durch geeignete Anfragen die folgenden Fragen:
- Wer ist Großelternteil?
- Wer hat eine Schwester?
- Wer ist Tante?
- Wer ist Neffe?
- Wer hat eine Urenkelin?
- Wer ist Bruder?
- Ist elke Elternteil von rick?
- Hat bob (wenigstens) ein Kind?
- Wer ist Vater?
- Wer ist Tochter von ann?
- Haben pam und tom gemeinsame Kinder?
- Wer ist Schwester von jack?
- Wer ist Großvater von paula?
- Hat jack eine Tante?
- Welche Großmutter hat einen Enkelsohn?
- In welchen Fällen benutzt man bei Anfragen Variablen, in welchen Fällen wird man auf die Benutzung von Variablen verzichten?
- Erklären Sie mit Hilfe eines selbst gewählten Beispiels den Zweck einer anonymen Variablen.
- Gesucht sind alle Personen U, mit der Eigenschaft: U ist Urgroßelternteil von jim.
Aufgabe 3
Gegeben ist die Datenbasis aus Aufgabe 2.
- Vervollständigen Sie die Regelrümpfe mit Hilfe der drei Prädikate elternteil/2, weiblich/1, maennlich/1.
- bruder(B1,B2) -- B1 ist Bruder von B2
- mutter(M,K) -- M ist Mutter von K
- grossvater(G,E) -- G ist Großvater von E
- Begründen Sie, warum man mit Hilfe der bekannten Wissensbasis nicht feststellen kann, ob jemand einen Schwager hat.
Aufgabe 4
An einem runden Tisch sitzen symmetrisch 6 Personen: Alfred, Anton, Antonia, Annemarie, Anna und August.
- Erstellen Sie eine Datenbasis mit dem Prädikat rechts_neben(X,Y) mit der Bedeutung: X sitzt direkt rechts neben Y.
- Ermitteln Sie soweit möglich folgende Antworten:
- Wer sitzt rechts neben Anna?
- Von wem ist Antonia der linke Nachbar?
- Wer sind die Nachbarn von Anton?
- Wer sitzt Alfred gegenüber?
- Wer sitzt wem gegenüber?
- Geben Sie Regeln an für
- links_neben(L,R) -- L sitzt direkt links neben R
- nachbar_von(M,L,R) -- M hat L als linken und R als rechten Nachbar
- gegenueber(X,Y) -- X und Y sitzen sich genau gegenüber
Aufgabe 5
In der Pizzeria Roma gibt es u. a. folgendes Angebot:
- Salat: Mista 5€, Capriciosa 8€
- Fleisch: Cotoletta 11€, Filetto ai ferni 16€
- Nudeln: Spaghetti Bolognese 8€, Lasagne 10€, Canelloni 10€
- Fisch: Calamari Fritti 13€, Sogliola 18€
- Dessert: Tiramisu 4€, Cassata 5€
- Erfassen Sie die Speisekarte in einer Datenbasis.
- Ein Menü besteht aus Salat, Hauptgericht und Dessert. Hauptgerichte sind Fleisch, Nudeln oder Fisch. Formulieren Sie Regeln für
- Hauptgerichte
- Menüs