Logik:Klausuren/04.11.2004/5. Aufgabe

Aus Tudwiki
Version vom 25. November 2004, 13:34 Uhr von 141.76.8.100 (Diskussion)

(Unterschied) Nächstältere Version→ | Aktuelle Version (Unterschied) | ←Nächstjüngere Version (Unterschied)
Wechseln zu: Navigation, Suche

1. Aufgabenstellung

Natürliche Zahlen können als iterierte Nachfolger der Zahl $ 0\, $ dargestellt werden

$ d.h.\qquad 1=s(0)\,,\ 2=s(s(0))\,,\ 3=s(s(s(0)))\, $ usw.

Die Addition zweier natürlicher Zahlen in iterrierter darstellung wird durch das folgende Programm realisiert:

$ add\,(N\,,0\,,N)\,. $

$ add\,(N\,,s(M)\,,s(K)):-add(N\,,M\,,K). $



a) Welcher Additionsaufgabe in Zahlendarstellung entspricht der Aufruf

$ ?-add\,(s(0)\,,s(s(s(0)))\,,E)\,. $



b) Geben Sie den vollständigen Ableitungsbaum für den Aufruf:

$ ?-add\,(s(s(0))\,,s(s(0))\,,E)\,. $ an.

Wie lautet das Ergebnis für $ E\, $ ?



c) Schreiben Sie ein Prologprogramm, das die Multiplikation zweier natürlicher Zahlen in iterirter Darstellung repräsentiert.

z.B. soll der Aufruf

$ ?-mal(\,s(s(s(0)))\,,s(s(0))\,,M\,). $

das Ergebnis $ M\,=s(s(s(s(s(s(0)))))) $ liefern.

( Sie können die natürlichen Zahlen wie oben angegeben als definiert voraussetzen.)

2. Lösung

a)

$ ?-add\,(s(0)\,,s(s(s(0)))\,,E)\,.\Longrightarrow \ 1+3=4 $


b)

Aufgabe5 addition.png


c)

$ mal(\,N\,,0\,,0). $

$ mal(\,N\,,s(M)\,,E):-mal(\,N,M,E1),\ add(\,E1,N,E). $

3. Lösungsweg

4. Alternativen/Diskussion/Hinweise etc.


zum Prolog-Testat 04.11.2004
Kategorie Prolog-Aufgaben