Wenn 2x z.B. die selbe Zahl drin ist (–> [m]a.compareTo(b) == 0[/m]), ist das Ganze kein Problem.
Falls zweimal das selbe Objekt in die Liste soll ([m]a==b[/m]), ignoriert mein Programm das zweite. Weiß nicht, ob ich das so machen soll, aber es ist in der Test-Funktion vor allem deswegen drin, weil u.U. ziemlich ekelhafte Fehler entstehen könnten, wenn man eben nicht drauf aufpasst.
Die 9.1 kommt mir etwas komisch vor… Ich hab gedacht, die Klasse KellerImplementierung so zu machen, dass sie ein Array in sich trägt und bei Bedarf diese primitiven Operationen an diesem Array ausführt… Wenn man aber genauer liest, kommt man dadrauf, dass die Funktionen gar nicht das Array vom eigenen Objekt bearbeiten sollen, sondern eine Referenz auf Keller übernehmen und dessen Array bearbeiten… kommt es euch nicht komisch vor? ist doch total unlogisch! wie habt ihr das gelöst?
Lotec nenene.
das steht doch drin, dass man eine objektorientierte Version des Kellers implementieren soll.
Alles andere wäre ja wohl auch ziemlicher Quatsch.
Tut sie nicht, wenn du das Ganze auf objektorientiert änderst. Dann weißt du ja ohnehin, auf welchem Objekt du gerade arbeitest, und zurückgeben musst du auch keines, weil du ja den Zustand des Objekts ändern kannst.
Aus [m]add(Object,Keller) → Keller[/m] wird also [m]Keller.add(Object)[/m], wenn man’s mal ganz unschön formuliert.
…oder sollte das der Grund dafür sein, dass alle 0% haben? :moody:
ich gehe stark davon aus, dass du recht hast, einfach aus dem Grund, dass du mit der Referenz auf Keller sowieso nicht auf das array zugreifen kannst… in der Aufgabenstellung steht aber add: Object x Keller, und das verwirrt mich ziemlich…
Du hast 100% bei der SortedList? Hast du das mit [m]implements SortedList[/m] gemacht, oder ohne Interface? Hast du die interne ListNode Klasse private gemacht? Bekommen nämlich nur 5% und d.h. ja, dass der Testcase die Methoden nicht aufrufen kann…
UML ist wohl kaum ein Ersatz für die axiomatische Beschreibung einer Datenstruktur. Insbesondere kannst du mit UML nicht “rechnen”, somit werden Verifikations-“beweise” so schwammig das es sich nicht wirklich lohnt.
Das die objektorientierte Sichtweise mit der gegebenen Beschreibung in Konflikt steht, hängt vor allem damit zusammen das die relevanten (aus der Sicht eines OOPlers) Abstraktionsniveaus (Kapselung, Polymorphie, you name it) nur durch Klassenstrukturen entstehen dürfen. Ich sag jetzt mal lieber nichts zum funktionalen Standpunkt. :>
Rekursive Beschreibungen sind sowieso Trumpf!
w00t w00t, λ-bitching.
Weil prinzipiell könnte es ja einfach sein, dass die ein anderes Interface verwenden und sich das Ganze dann halt nicht mehr compilieren lässt → 0%…
Oder der Testcase geht einfach net…
So, ich hab den Keller jetzt mit einem Wahnsinns-Aufwand auf [m]public Keller add(Object item, Keller stack)[/m] umgeschrieben – und gebracht hat’s mir immerhin 0%…
Damit hätte ich jetzt glaub ich alle Möglichkeiten durch → der Testcase muss kaputt sein…
Testcasegesabber
Warum rennt ihr denn immer so dem Testcase hinterher.
Ich gebe auf den nichts mehr.
Wenn mein Programm das macht, was in der Aufgabenstellung gefordert ist - dann bin ich glücklich!
thx immoartl
Vielen Dank immoartl für dein Testfile für die 9.2. Hat mir gute Dienste geleistet (jetzt 100%), auch wenn ich große Teile nochmal umschreiben musste, um eine Liste in sich selbst einfügen zu können.
Muss trotzdem noch weng tricksen in diesem fall, d.h. eine kopie von der liste erzeugen und die dann einfügen.
wie hast du das ganze gelöst?
Muss mich da thomas anschließen: Thx immoartl!
Wollt mir grad selber eine main mit paar Tests schreiben, da hab ich deine hier im Thread gesehen. Taugt 100%, is ja alles drin, praktisch jede denkbare Spielerei, Listen mit gerader und ungerader Anzahl an Elementen shufflen, sogar das mit gleichem Element einfügen.
Sag ich mal danke, getestet und für gut befunden
(Zum Testcase: Ja, hab bei List auch 100% und beim Keller 0%, also kein Stress)