FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Praktische Informatik

SE3 Logik - Klausur 2 - Termin: 30.03.2007

SE3 Logik - Klausur 2 - Termin: 30.03.2007 2007-03-29 13:37
Viprex
Ich bereite mich gerade auf die Klausur morgen vor und habe angefangen, mir nochmal eine kleine Liste zusammenzustellen, die mir in der Klausur hoffentlich auf die Sprünge helfen wird:

http://www.viprex.de/files/SE3 Katalog.pdf

Über Korrekturen/Kritiken würde ich mich sehr freuen. Nutzen darf selbstverständlich jeder diesen Katalog, sonst würde ich ihn ja nicht online stellen.

Hoffentlich werde ich das alles sehr bald ausgefüllt haben, vielleicht will ja jemand dabei helfen und ein paar Antworten hier posten.


Edit: Die ersten Updates sind bereits hochgeladen.

RE: SE3 Logik - Klausur 2 - Termin: 30.03.2007 2007-03-29 14:21
Viprex
So weit, so gut. Jetzt würde ich mich über Korrekturvorschläge freuen ;-)

Außerdem wäre es toll, wenn mir jemand die folgenden Begriffe aus dem funktionalen Bereich kurz erläutern könnte, damit ich mich da nicht auch noch lange einlesen muss. Das fällt den Leuten aus dem funktionalen Modul sicherlich nicht schwer. Danke!

map
curry
compose zero?
lambda
filter negative?
map negative?
quote
car x
cdr

Umgebung

RE: SE3 Logik - Klausur 2 - Termin: 30.03.2007 2007-03-29 14:28
Marrow
car gibt das erste Element einer Liste, cdr gibt die Liste ohne das erste Element.
Toll sind dabei dann Konstrukte wie cdar. [28]
Ich glaube, es gingen bis zu 3 Buchstaben zwischen c und r. Ist bei mir aber schon eine Weile her.

Edit: http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme-Z-H-1.html ist vielleicht ganz hilfreich. [23]

RE: SE3 Logik - Klausur 2 - Termin: 30.03.2007 2007-03-29 14:47
Viprex
Danke, die Seite ist gut. Dann lese ich mich da doch nochmal schnell ein, für die Klausur müssen wir ja wirklich nicht viel können.

BTW:
Scheme provides procedure abbreviations for cascaded compositions of the car and cdr procedures. Thus, caar stands for ``car of car of'', and cdar stands for ``cdr of car of'', etc.

(caar y)
=> 1

(cdar y)
=> 2

c…r-style abbreviations for upto four cascades are guaranteed to exist. Thus, cadr, cdadr, and cdaddr are all valid. cdadadr might be pushing it.

RE: SE3 Logik - Klausur 2 - Termin: 30.03.2007 2007-03-29 14:47
timbo
Dann mach ich mal mit der Liste weiter….
Also map wendet eine Funktion auf jedes Element einer Liste an und gibt eine Liste zurück:
(map sqrt #(4 9 16)) -> (2 3 4)

Die lambda Funktion ist eine anonyme Funktion. Man kann sie benutzen, wenn man eine Funktion nur lokal mal eben schnell braucht und ihr keinen Namen geben möchte.
(map (lambda (x) (* x x)) '(1 2 3)) -> (1 4 9)
Hier nimmt sich map zunächst das erste Element der Liste,also 1 übergibt es an die lambda Funktion, die bindet den Wert 1 an das Symbol x und berechnet dann (* 1 1).

Die Curry Funktion dient dazu einen Paramter an eine Funktion zu binden, sie arbeitet intern auch mit der lambda Funktion. Man kann sich sozusagen eine neue Funktion basteln. (curry < 6) gibt dir eine Funktion zurück, die die 6 fest als Paramter gebunden hat und nur noch einen weiteren parameter benötigt.
Diese konkrete Funktion liefert also true für alle Zahlen, die echt größer als 6 sind. curry bindet die Parameter von links, es gibt auch noch rcurry, macht im Prinzip das selbe wie curry, bindet die Parameter aber von rechts.

RE: SE3 Logik - Klausur 2 - Termin: 30.03.2007 2007-03-29 15:17
Viprex
Super, damit füllt sich das Blatt immer weiter. Danke für die Antworten. Habe die Version aktualisiert.

Falls noch jemand morgen SE3 Logik schreiben muss, der darf mir gerne eine E-Mail an 5albers schreiben. Für den habe ich noch ein kleines Schmankerl. Es lohnt sich. Ich antworte aber nur auf Mails die von Informatik-Accounts geschrieben wurden, und auch nur, wenn ihr morgen wirklich die Klausur mitschreiben wollt. Und nein, ich habe natürlich nicht die Klausur von morgen vorliegen, nur um Missverständnissen vorzubeugen ;-) Schade eigentlich *gg

RE: SE3 Logik - Klausur 2 - Termin: 30.03.2007 2007-03-29 22:23
Viprex
Letztes Update ist online, gehe nun schlafen. Vielleicht hilft es ja dem einen oder anderen.
Viel Erfolg morgen!

PS: http://www.viprex.de/files/SE3 Katalog.pdf

RE: SE3 Logik - Klausur 2 - Termin: 30.03.2007 2007-03-30 14:18
Viprex
So, Klausur ist geschrieben. Ich fand die Klausur deutlich schwerer als die 1. und ärgere mich schon, dass ich die 1. nicht hab werten lassen ;-(

Laut Professor Menzel haben seine Klausurtester gesagt, dass diese Klausur einfacher sei als die 1. SE3 Logik Klausur im Februar. Das können wir 5 Bachelorstudenten und die 3 Diplomer, die heute mitgeschrieben haben, aber nicht bestätigen. Außerdem war es zeitlich für mich nicht zu schaffen, alle Aufgaben zu bearbeiten.
Und dann noch die beiden Aufgaben mit den Binärzahlen…. Da musste man sich erstaml kurz beibringen, wie man noch gleich Binärzahlen addiert, multipliziert oder verdoppelt. Aber seht selbst, ich habe versucht aus dem Kopf ein Gedächtsnisprotokoll zu schreiben, was mehr oder weniger geglückt ist.

Wäre für Korrekturvorschläge dankbar, damit wir ein möglichst vollständiges Protokoll hochladen können. Danke!

Außerdem habe ich ein Gprot der 1. Klausur, welches ich ebenso mit Hochladen werde (war das Schmankerl, welches es auf Mailanfrage bei mir gegeben hätte).

Edit: Im Anhang dann auch nochmal die Probeklausur mit Lösung und das Gedächtnisprotokoll der 1. Klausur.
Anhänge Gprot mit Lösung - SE3 v1.0 2007-03-30.pdf , Gprot mit Lösung - SE3 v1.0 2007-02-21.pdf , Probeklausur mit Lösung - SE3.pdf

RE: SE3 Logik - Klausur 2 - Termin: 30.03.2007 2007-04-12 22:27
Viprex
Da keine Korrekturen mehr zu den beiden GProts kamen, habe ich beide hochgeladen (also ins GProt Archiv). Nur falls jemand auf die Idee kommen wollte, das zu tun ;-)

RE: SE3 Logik - Klausur 2 - Termin: 30.03.2007 2007-04-12 22:41
GroßerSchöpfer
Ich hab von der Klausur keine Ahnung, aber hier

c(a,b). c(b,c). c(a,d). p(d). p(X) :- c(X,X), ! , p(Y).
bewirkt der cut gar nichts, weil c(X,X) nie gelingt.

RE: SE3 Logik - Klausur 2 - Termin: 30.03.2007 2007-04-13 00:37
Viprex
Ja, da hast du wohl Recht. Das doof, ich weiß leider auch nicht, wie da richtig lauten sollte. Aber c(X,X) ist definitiv falsch.

RE: SE3 Logik - Klausur 2 - Termin: 30.03.2007 2007-04-13 09:46
Anonymer User
In der Klausur hieß es auch noch c(X,Y).

Wolfgang Menzel

RE: SE3 Logik - Klausur 2 - Termin: 30.03.2007 2007-04-13 10:22
Fred
Da musste man sich erstaml kurz beibringen, wie man noch gleich Binärzahlen addiert, multipliziert oder verdoppelt.
Addition und Multiplikation ist doch in jedem Zahlensystem gleich, nur dass es halt verschieden viele Ziffern gibt. Das Binärsystem ist ja sogar viel einfacher als das Dezimalsystem, statt 100 möglicher einstelliger Operandenkombinationen gibt es nur vier, oder binär: 100 :)

Ich denke, man kann von einem angehenden Informatiker im dritten Semester schon erwarten, dass er mit binär dargestellten Zahlen hantieren kann.

RE: SE3 Logik - Klausur 2 - Termin: 30.03.2007 2007-04-13 11:45
Viprex
Ja Fred, man sollte das erwarten können. Ist ja auch wirklich eine schöne Aufgabe, die die Bereich miteinander verbindet. Ist auch super als Übungsaufgabe geeignet. Allerdings muss doch in einer Klausur nicht unnötig verkompliziert werden, und dann auch noch mit einem Thema, was SE3 fremd ist. Ich kann sicherlich auch anders zeigen, das ich Logikprogrammierung beherrsche. Die 5 - 10 Minuten, die ich mir nochmal vergegenwärtigen musste, wie ich verdoppele (also das dies einfach nur ein Shift ist), was denn noch ein Volladdierer ist etc., die hätte ich gerne in das wesentliche gesteckt: Nämlich Logikprogrammierung, nicht Technische Informatik!
Außerdem ist es nicht unbedingt sicher, dass alle Informatiker im 3. Semester schon sowas wie Rechnerstrukturen belegt haben, also den sicheren Umgang mit Binärzahlen und im Speziellen ja auch dem Volladder gelernt haben!

Von daher ist diese Klausuraufgabe wirkliche eine schöne Übungsaufgabe, keine Frage.

RE: SE3 Logik - Klausur 2 - Termin: 30.03.2007 2007-04-13 19:49
Viprex
In der Klausur hieß es auch noch c(X,Y).

Wolfgang Menzel

Danke schön übrigends. [25]