Klausur-05-03-15

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Klausur-05-03-15
Vielleicht haben sich ja schon ein paar von euch diese Klausur angesehen, aber ich finde die ist so schwammig formuliert, da ist nichts fest.

Hier mal ein paar Dinge, die mir nicht ganz klar erscheinen:

  • Aufgabe 1: Warum fehlen die anderen Aufgabenteile? b) c) etc.

  • Aufgabe 2 a) Sind Konstanten bei der Substantivanalyse tatsächlich nur “Konstanten”, also final-Variablen? Und gibt es sonst nur noch Klassen, oder gibt es auch Variablen (was: “es gibt Klassen und Konstanten” widersprechen würde)?

  • Aufgabe 2 b) Wieso sollte man Fuß/Kopf etc. von Tabelle ableiten? Gibt es nicht mehrere Lösungen für 2 a) und demnach auch für 2 b)? Und besonders: was ist, wenn ich sage es gibt nur eine Klasse: Tabelle. Der Rest sind Variablen? [Vom programmieren her macht es keinen Sinn alles zu Klassen zu machen]

  • Aufgabe 3 b) Meiner Meinung nach kann eine Instanz von Atom nicht wissen, ob sie true oder false ist.

Über die Aufgabe 3 bin ich noch nicht hinaus, aber ich hoffe einfach mal unsere Klausur wird nicht so viele Fragen aufwerfen.


das war der lehrstuhl für Künstliche Intelligenz, natürlich stellen die blöde klausuren… g :wink:


Es geht bei der 4 a) weiter …
Meiner Meinung nach dürfen nicht alle public sein und der Konstruktor vom Rechteck muss seinen super-Konstruktor aufrufen. Aber mal im Ernst: sind das nicht Spitzfindigkeiten?


Also, bei der 3.b) denke ich, dass man im [m]Atom[/m] auf jeden Fall eine Instanzvariable braucht, die den Wahrheitswert enthält. Ich kann mir nicht vorstellen, dass das auch noch irgendwie anders gehen soll.


oder die hashtable + zugehörige ausgabefunktion wären statisch


also ich hab das mit dem Atom auch letztens mal den Stammi gefragt.
Ich hab gesagt atom kann seinen wahrheitswert nicht rausfinden und da hat er gemeint Zitat: “Das würde ich ihnen voll und ganz unterstreichen!”


@Airhardt:
Der Meinung bin ich auch. Aber die Klasse ist schon fertig, man soll sie nicht verändern. Die Frage lautet:

b) Beschreiben Sie kurz, wie eine Instanz von Atom ihren Wahrheitswert ermitteln kann!

Und das kann sie nicht, ausser man speichert ihn ab und ich verstehe die Aufgabe nicht so, dass man den kompletten Code ändern soll … andere Konstruktoren, main-Methode etc.

EDIT: 3 Antworten in einer Minute … g
@punkstar: Danke, das meinte ich.


Airhardt : Tatsache, weil keinerlei Verbindung zur Klasse Eval besteht, in deren HashTable die Wahrheitswerte drinnen stehen. Ausser man würde eine sehr komische Vererbung da einbauen, so das mittels super was erreicht werden kann.
Btw. von der Klausur können wir nicht alle Aufgaben lösen, weil wir nicht alles gemacht haben - nicht verrückt werden, wenns irgendwo nicht weitergeht :slight_smile:


@ punkstar: unterstreichen oder unterschreiben? wenns in der schule irgendwas unterstrichen ham, war des meistens ned so gut… :smiley:


Das glaube ich nicht, denn in Teilaufgabe c) soll man in allen von [m]Formel[/m] abgeleiteten Klassen die Methode [m]evaluate()[/m] implementieren.

Wobei ich mich beim Quellcode an den drei Punkten stoße, die die Methode als Argument bekommt. Ist das syntaktisch korrekt und bedeutet „beliebige Argumente möglich“?


Er meinte damit unterschreiben, so ahnungslos wie er war.


da stamming is cool. :smiley: Ein hustla vor Gott! :wink:


Bin ich bekloppt oder ist die 3.c) wirklich so trivial?

// Atom:
public boolean evaluate() { return m_value; } // m_value ist eine Instanzvariable, die den Wahrheitswert enthaelt

// Negation:
public boolean evaluate() { return !arg.evaluate(); }

// Konjunktion:
public boolean evaluate() { return (arg1.evaluate() && arg2.evaluate()); }

// Disjunktion:
public boolean evaluate() { return (arg1.evaluate() || arg2.evaluate()); }

arg, arg1 und arg2 sind vom Typ Formel, da kann man nicht einfach (arg1 && arg2) sagen …

Ich würde vorschlagen die eval von arg etc. aufzurufen und das zurückzugeben, wobei bei der Negation natürlich ! davor etc. und bei Atom den Wahrheitswert, so wie du es hattest.


Ups, dämlicher Flüchtigkeitsfehler beim Posten. Hab’s korrigiert. :red:


also wegen dem atom ^^ ich hab 30min im inet gesucht, ob ein objekt herausfinden kann von welchem objekt es erzeugt wurde, aber hab nix gefunden :> … und zur 3c) … ich würde die arg’s durch arg.evaluate() ersetzen, dann müsste es funktionieren, oder?


Airhardt: Die c) ist trivial, man braucht nur die b) irgendwie, um es lösen zu können. Habs auch so wie du - wobei ich in der b) offen gelassen hatte, wie die funktion evaluate() jetzt an den Wahrheitswert kommt - eine Membervariable dafür einzuführen ist natürlich geschickt *g.


Ich würde gerne noch einmal eine ursprüngliche Frage von mir vortragen:

Sind Konstanten bei der Substantivanalyse tatsächlich nur “Konstanten”, also final-Variablen? Und gibt es sonst nur noch Klassen, oder gibt es auch Variablen (was: “es gibt Klassen und Konstanten” widersprechen würde)?


Konstanten? Beziehst du dich da auf eine bestimmte Aufgabenstellung? Substantiv, Verb, Adjektiv, aber wo ordne ich Konstanten da ein?