12.07.2015 Aufrufe

Prolog-Aufgaben

Prolog-Aufgaben

Prolog-Aufgaben

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

GLoLoP-Tutorium (06.02.2009) 2Bei jedem Zug darf die oberste Scheibe eines beliebigen Stabes auf einen der beiden anderen Stäbegelegt werden, vorausgesetzt, dort liegt nicht schon eine kleinere Scheibe. Folglich sind zu jedemZeitpunkt des Spieles die Scheiben auf jedem Feld der Größe nach geordnet.Schreiben Sie ein rekursives <strong>Prolog</strong>-Programm, das eine korrekte Zugreihenfolge ausgibt (mit writebzw. writeln, das Speichern in einer Liste o.ä. ist nicht notwendig)!Idee: zuerst die obersten N − 1 Scheiben auf einen Hilfsstapel verschieben und dann die untersteScheibe gefolgt vom Rest auf den Zielstapel legen.2. Grundlagen: Listen in <strong>Prolog</strong>2.1 Zugehörigkeit ASchreiben Sie ein <strong>Prolog</strong>-Prädikat enthaelt(L, E) das genau dann erfüllt ist, wenn die Liste L dasElement E enthält.2.2 Länge ASchreiben Sie ein Prädikat laenge(L, R), das die Länge R einer Liste L ermittelt.2.3 Anhängen AA• Element an Liste anhängenSchreiben Sie ein Prädikat anhaengen(L, E, R), das das Element E hinten an die Liste L anhängtund in R das Ergebnis liefert: anhaengen([1,2,3], 4, [1,2,3,4])• Listen aneinanderhängenSchreiben Sie ein Prädikat aneinanderhaengen(L1, L2, R), das die beiden Listen L1 und L2zur Liste R zusammenhängt: aneinanderhaengen([1,2], [3,4], [1,2,3,4])2.4 Umkehren AAASchreiben Sie ein Prädikat umkehren(L, R) das die Liste L umkehrt und das Ergebnis in R speichert.Hinweis: Verwenden Sie ein Hilfsprädikat mit einer Akkumulator-Variablen!2.5 Entfernen AA• Schreiben Sie ein Prädikat entfernen1(L, N, R), das das N-te Element (beginnend bei 0) ausder Liste L entfernt: entfernen1([1,2,3,4,5], 2, [1,2,4,5])• Modifizieren Sie das Prädikat unter dem Namen entfernen2 so, dass jedes N-te Element entferntwird: entfernen2([1,2,3,4,5,6,7], 3, [1,2,4,5,7])• Schreiben Sie ein Prädikat entfernen3(L,E,R), das alle Vorkommen eines bestimmten Elementesaus einer Liste entfernt: entfernen3([1,2,1,2,3,1], 1, [2,2,3])

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!