Logik:Klausuren/04.11.2004/4. Aufgabe

Aus Tudwiki
Version vom 23. November 2004, 20:03 Uhr von 217.235.36.22 (Diskussion)

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

1. Aufgabenstellung[Bearbeiten]

Schreiben Sie Prolog-Programme $ trans /\,2 $ und $ laenge /\,2 $ die folgendes leisten:


a)

$ laenge /\,2 $ ermittelt die Laenge einer liste .

z.B. soll der Aufruf $ ?-laenge (\left[\,a,b,c,d\,\right]\,,L)\,. $ das Ergebnis $ L=4\, $ liefern.


b)

$ trans /\,2 $ transformiert eine Liste von einfachen Termen in eine Liste , deren Elemente einelementige Listen dieser Terme sind.

z.B. soll der Aufruf $ ?-trans ([a,b,c,d]\,,E)\,. $ das Ergebnis $ E=\left[\;[a]\,,[b]\,,[c]\,,[d]\;\right] $ liefern.

2. Lösung[Bearbeiten]

a)

$ laenge\,([]\,,0). $

$ laenge\,([K|R]\,,E):-\,laenge\,(R\,,E1),\ E\ is\ E1+1. $


b)

$ trans\,([\ ]\,,[\ ]). $

$ trans\,([K|R]\,,E):-\,trans\,(R\,,E1),\ append([\,[K]\,],\,E1,\,E). $

3. Lösungsweg[Bearbeiten]

4. Alternativen/Diskussion/Hinweise etc.[Bearbeiten]


zum Prolog-Testat 04.11.2004
Kategorie Prolog-Aufgaben