Gedächtnisprotokoll SE-3LP08-1

Aus Fachschaft_Informatik
Zur Navigation springen Zur Suche springen

Die Logik- und die Funktionale-Klausur waren im selben Raum. Wegen Platzmangen wurden manche Leerreihen weggelassen, aber dann wurde immer Abwechselnd eine reihe Logiker und eine reihe Funktional gesetzt.

Als Anhang war eine Liste mit einigen Prolog-Prädikaten und Scheme-Ausdrücken gegeben.

Insgesamt war die Klausur durchaus angemessen in Umfang und Anspruch.

Grundlagen

Welche Ausgaben erwarten Sie von folgenden Eingaben am Systemprompt.

  • [x, y] = [E, _], append(E, [b, m], X).
  • ...

Was ist der Unterschied zwischen einer Relationalen und einer Deduktiven Datenbank?

Geben Sie ein Beispiel für eine Relation an, bei der es nicht möglich ist alles explizit aufzuzählen.

Geben Sie ein Beispiel für eine Relation an, bei der es möglich, aber nicht sinnvoll ist alles explizit aufzuzählen.

Laden-Aufgaben

Mehrere Aufgaben beschäftigten sich mit diesem Beispiel:

Ein Ladeninhaber hat in einer Prolog-Datenbank folgendes gespeichert:

artikel(Nummer, Name, Einkaufspreis, Verkaufspreis)

Alle Artikel, die dort so angeboten werden (sonnenschirm, badelatschen, ...)

verkauft(Nummer, Woche, Jahr, Anzahl)

Anzahl gibt an wieviele Exemplare des mit der Nummer gekennzeichneten Artikels in der angegebenen Woche verkauft wurden.

Wieviele sonnenschirme wurden in Kalenderwoche 39 verkauft?

In welcher Woche wurden am meistern X verkauft?

Wurden nach Kalenerwoche 38 noch Badelatschen verkauft?

Schreiben Sie ein Prädikat das den Umsatz in einer gegebenen Woche berechnet. Der Umsatz ergibt sich aus den Einnahmen.

Schreiben Sie ein Prädikat das den Gewinn in einer gegebenen Woche berechnet. Der Gewinn ergibt sich aus den Einnahmen und den Ausgaben. Miete, Strom, Steuern etc. sollen unberücksichtigt bleiben.

Berechnen Sie komisches BWL-Fachwort. Dieses ergibt sich aus dem Verhältnis zwischen Gewinn und Umsatz. Nutzen Sie dafür Ihre beiden soeben definierten Prädikate.

Lässt sich das Prädikat optimieren? Schreiben Sie ein Prädikat das komisches BWL-Fachwort mit möglichst wenigen Berechnungsschritten berechnet.

Zusätzlich gegeben ist nun eine Liste die den durchschnittlichen Umsatz einer Woche über mehrere Jahre enthält. Erstellen Sie zwei Prädikate, die eine Liste mit Wochen aus dem letzten Jahr zurückgibt, in denen der Umsatz unterdurchschnittlich war. Benutzen Sie einmal Prädikate zweiter Ordnung und einmal Rekursion.

irgendwo war noch: Nutzen Sie das Prädikat between(+Min, +Max, ?Index). aber wo?

Scheme-Teil

zu was evaluiert der Folgende Scheme-Ausdruck:

(map (lambda (x) abs(x)) (quote (1 -2 4))

Welche der folgenden Ausdrücke sind dazu äquivalent:

(map abs (quote (1 -2 4)))

(map (lambda (x) (if (< x 0) (- x) x)))

(filter ...)

Warum kann if nicht als Funktion implementiert werden?

Was tut die folgende Scheme-Funktion:

(define (test x y) 
  (if (null? x) 
    #t 
    (if (member (car x) y) 
      (test (cdr x) y)
      #f
    )
  )
)

(oder so ähnlich)

Übersetzten Sie die Funktion in Prolog.

Was sind die Unterschiede Zwischen der Scheme und der Prolog-Implementation?