Bonusblatt


Aktuell gibt es keinen Grund ein anderes JDK/JRE zu installieren als das von Sun. Vorzugsweise in der version 1.6/6.0 (na? wer kommt dahinter warum es zwei versionsnummer gibt? ;-)) aber mindestens 1.5/5.0


Für gewisse Plattformen gibt es kein JDK/JRE von Sun :wink:


Ich bin von einem normalen Rechner ausgegangen mit normalem Betriebsystem wie Linux oder Windows


@sotsoguk:
Wenn das Umleiten von System.in mittels „<“ nicht funktioniert, könntest du auch den Calculator(InputStream in)-Konstruktor benutzen.
Ich habe meine main()-Methode folgendermaßen verändert:

public static void main(String args[]) throws IOException { // Calculator c = new Calculator(); // c.run(); for (int i = 0; i <= 5; i++) { Calculator c = new Calculator(new FileInputStream("test/test0" + i + ".in")); PrintStream output = new PrintStream(new FileOutputStream("test/test0" + i + ".test")); System.setOut(output); System.setErr(output); c.run(); } }
Wenn du das in einem Verzeichnis ausführst, dass die Testdateien in einem Unterverzeichnis test enthält wird jeder Test ausgeführt und das Ergebnis in eine test0x.test-Datei in dem Verzeichnis geschrieben. Diese Dateien kannst du dann mit einem Diff-Tool mit der Referenzausgabe vergleichen.


Auch wenns bei mir jetzt funktioniert danke für den Tip! bin sowieso grad dabei mich mit I/O in Java mal zu beschäftigen weil ich keine Lust hab ständig Parameter auf der Kommandozeile zum Testen zu verwenden.

thx


Wird auch ein Thema sein in meiner Spezialübung am Do. 8.1. :slight_smile: (<-- Hier steht Werbung für die Spezialübung)


Gibt es auch einen Spezialgast? zum Beispiel einen Java-Experten oder so? :wink:


Es ist jeder herzlich eingeladen :wink: feel free to come wenn du im Anschluss noch für Javaspezifisches zu Rate gezogen werden oder mich bei Fehlern berichtigen willst :slight_smile:


Aufgabe 1) Welchen Datentyp sollen wir da verwenden? Gibt’s Ringbuffer oder so schon von Java vorgegeben?

Aufgabe 2) Den von Java vorgegebenen Stack dürfen wir ja nicht verwenden, wie schaut’s z.B. mit der LinkedList aus? Falls die auch verboten ist, darf man auch nen ArrayStack implementieren oder muss der Stack auf einer Liste basieren?

(sorry für die noobfragen)


  1. Etwas was dir als geeignet erscheint

  2. Etwas aus den Collections was dir geeignet erscheint außer Stack


spuckt bei mir 2mal Christian aus, weil der erste testCount schon ausgezählt wurde und somit nurnoch Christian übrigbleibt. Wenn ich aber die Zeile [quote]System.out.println(testCount.countOut(7)); // → Christian remains[/quote] lösche, spuckt er Peter aus, funktioniert also alles wie geplant… passt dann alles?


Ich würde die interne Datenstruktur in countOut() nicht zerstören sondern lieber eine Kopie davon verwenden. Schließlich ist es relativ sinnlos, wenn ab dem zweiten Aufruf von countOut() immer nur die gleiche Person zurückgegeben wird.


Es ist verlangt, dass die Methode beliebig oft funktioniert.

Lege in der countOut(…) beim initialisieren deiner rekursiven Methode einfach eine Kopie deiner Datenstruktur an. Übergib diese dann deiner rekursiven Auszählmethode und ändere dann dementsprechend nur die Kopie.


Kurz ne Frage zu den Punkten des Bonusblattes.

War es nicht so gedacht, dass die Punkte nicht in die Gesamtpunktezahl mit einfließen?
Im EST werden sie mit einbezogen (Gesamtpunktezahl aller bisherigen Blätter bis einschließlich Blatt 11 ist bei 655, ohne das Bonusblatt müsste es aber bei 605 sein.)

Ist zwar nicht knapp bei mir, wundert mich aber dennoch :wink:


Stimmt schon, aber das muss wohl noch angepasst werden