PDA

View Full Version : [Frage] unterschiedliches output auf testsystem und bei mir???


derbrain
05-06-2004, 14:16
ich hab letzte woche mein beispiel zur 3. runde abgegeben. hab jetzt die bewertung gelesen: nur 26.2 punkte http://hades.gothic.at/iforum/images/smilies/ahhh.gif. dabei hab ich doch so lang rumgetestet! gibts doch gar nicht!
sie haben auch das input-file angegeben, mit dem das falsche output generiert wird. hab die SELBEN daten zu hause probiert, und schau dich an: da gehts!!! kann es sein dass verschiedene jre's unterschiedlich genau rechnen oder wie kann so was sein? ich dacht, wenn, dann gibts beim compilieren probleme, oder öaufzeitfehler, aber doch nicht falsche ausgaben http://hades.gothic.at/iforum/images/smilies/confused.gif
ich bin eh zu einem kontrollgespräch eingeladen. kann ich da auch gleich reklamieren?

rck
05-06-2004, 14:44
sie haben auch das input-file angegeben, mit dem das falsche output generiert wird. hab die SELBEN daten zu hause probiert, und schau dich an: da gehts!!!

Bist Du Dir sicher, das Du die gleiche Input-Datei verwendet hast?

Ich rate mal. Du hast zuhause ein Windows System.

Es macht durchaus einen Unterschied, ob Du zB eine Datei mit einer neuen Zeile abschließt, vielleicht noch das eine oder andere Leerzeichen drinnen hast, ob die Dateien mit \n oder mit \r\n abschließen, usw.

Wenn Du also zB ein Copy & Paste von den Testdaten machst, muß das deshalb noch lange nicht funktionieren. Außer, Du hast ein relativ tolerantes Programm geschrieben.


Vielleicht kannst Du kurz die Ein/Ausgabeschleife posten (Beispiel: siehe http://www.kiesler.at/article~view~41~page_num~2.html, Hauptprogramm)? Und die Testdaten? Dann könnten wir diese Theorie entkräften oder härten. Je nach dem.


ich bin eh zu einem kontrollgespräch eingeladen. kann ich da auch gleich reklamieren?

Einen Versuch ist es wert -- viel Glück!


Liebe Grüße // René!

grassi3000
05-06-2004, 16:28
soweit ich mich erinnern kann, geben die das input file und die falsche ausgabe (das was bei dir rausgekommen ist) an.

derbrain
05-06-2004, 17:20
nein, um himmels willen, ich programmier natürlich unter linux http://hades.gothic.at/iforum/images/smilies/biggrin.gif
naja, das input-file hab ich ja nicht, sie gebens dir ja nur in der history an. ich poste hier mal die Methode zum einlesen:
public static ArrayList einlesen () {
// liest und prüft die Eingabe
ArrayList dreiecke = new ArrayList(4);
int anzahl = 0;
float seite = 0;
boolean inhaltfehler = false, typfehler = false;
try {
// Anzahl der Dreiecke einlesen
anzahl = readInt ();
} catch (EprogException E) {
fehler (DATENTYP);
}
if (anzahl < 2 || anzahl > MAXANZAHL)
fehler (INHALT);
// Seitenlängen einlesen - Fehlermeldung wird erst zum Schluss ausgegeben!
for (int i = 0; i < anzahl; i++) {
// Objekt Dreieck mit Toleranz (für Überprüfung ob rechtwinklig) anlegen
Triangle dreieck = new Triangle (TOLERANZ);
for (int j = 0; j < 3; j++) {
try {
seite = readFloat();
} catch (EprogException E) {
typfehler = true;
}
if (seite < 0 || seite > MAXLAENGE)
inhaltfehler = true;
dreieck.setSeite (j, seite);
}
// Dreieck rechtwinklig?
if (dreieck.rechtwinklig()) {
// Seitenlängen aufsteigend sortieren (0,1,2 -> a,b=Katheten, c=Hypotenuse)
dreieck.sortSeiten();
// Dreieck zur Liste hinzufügen
dreiecke.add(dreieck);
}
else
inhaltfehler = true;
}
// Fehlermeldung erst nach Eingabe aller Daten ausgeben
if (typfehler)
fehler (DATENTYP);
else if (inhaltfehler)
fehler (INHALT);
// bei einem Fehler wird vorher schon abgebrochen
return dreiecke;
}
Triangle ist eine selbstprogrammierte klasse. übrigens, die diskussion mit EOL, EOF usw. hatten wir ja schon mal (link (http://hades.gothic.at/iforum/showthread.php?t=19539)). laut dokumentation benutzt readFloat readWord, und das wiederum sollte EOFs erkennen.
Aber das Problem ist, dass die Eingabe zwar als korrekt erkannt wurde, die Berechnung danach aber falsch durchgeführt wurde.
wie postet man hier dateien? dann stell ich mal das ganze programm online, samt input-file.

derbrain
05-06-2004, 18:10
soweit ich mich erinnern kann, geben die das input file und die falsche ausgabe (das was bei dir rausgekommen ist) an.
ja eh, das weiß ich ja. und gerade das kommt NICHT raus, wenn ich das programm zu hause ausführe http://hades.gothic.at/iforum/images/smilies/shinner.gif
mehr als seltsam...

rck
08-06-2004, 16:11
wie postet man hier dateien? dann stell ich mal das ganze programm online, samt input-file.

Du hast unterhalb von "Submit Reply" einen Bereich "Additional Options". Klick Dich einfach durch "Manage Attachments"!

Ich tät Eingabe und Verarbeitung trennen -- wird übersichtlicher.

Wenn Du das Ding in eckige Klammer auf - CODE - eckige Klammer zu und eckige Klammer auf - /CODE - eckige Klammer zu schließt, bleiben auch die Einrückungen erhalten! // René!

derbrain
09-06-2004, 20:55
oha! thx wegen dem tip mit dem einrücken. die sind beim copy&paste verlorengegangen, hab sie nochmal manuell eingefügt und wurden doch wieder entfernt http://hades.gothic.at/iforum/images/smilies/shout.gif
bin auf folgendes draufgekommen:
1. die angegebene ausgabe ist die vom i/o-paar, also die, die rauskommen SOLLTE. hab also erstmal gedacht dass das i/o-paar falsch ist.
2. das programm hat tatsächlich falsch gerechnet. und zwar wegen EINER zahl bei nem vergleich http://hades.gothic.at/iforum/images/smilies/wallbash.gif
tja, das kommt davon wenn man nachträglich was ändert und nicht auf die auswirkungen schaut...
konkret: hatte eine ArrayList, hab vorher:
- 2 objekte gelesen
- überprüft ob mehr als 2 da sind
habs dann geändert:
- 2 objekte ENTFERNT
- immer noch überprüft ob mehr als 2 da sind, statt zu prüfen ob mehr als 0 da sind http://hades.gothic.at/iforum/images/smilies/disturbed.gif

rck
09-06-2004, 21:09
konkret: hatte eine ArrayList, hab vorher:
- 2 objekte gelesen
- überprüft ob mehr als 2 da sind
habs dann geändert:
- 2 objekte ENTFERNT
- immer noch überprüft ob mehr als 2 da sind, statt zu prüfen ob mehr als 0 da sind http://hades.gothic.at/iforum/images/smilies/disturbed.gif

Das wichtigste bei der Softwareentwicklung ist halt immer noch das Testen :coolsmile

Wir bieten beim RISE-Institut Qualitätssicherung (http://www.rise.tuwien.ac.at/courses/qs/index.php) an. Für die nicht ganz so motivierten gibt's immer noch den Weg, den ich meistens gehe: Testklassen (http://www.kiesler.at/article~view~41~page_num~9.html)!

Brauchst dann nur einmal "java TestMeinprogramm" ausführen und schon wird alles getestet. Stressfrei. Bisserl besser aber auch eine Spur aufwendiger: JUnit (http://www.junit.org/index.htm), ebenfalls in der besagten VU durchgenommen.

Blöd sind nur die Fehler, die man 2x macht :thumb:

derbrain
10-06-2004, 01:40
tja, wenns denn so einfach wäre... bei SO einem beispiel alle möglichen eingaben überhaupt zu DEFINIEREN ist schon urarg. hast du dir die angabe durchgelesen? hab 5 fälle definiert, bei denen das ergebnis "J" ist. andere (auf sourceforge) haben 9 fälle gehabt. hab das aber eben auf 5 reduzieren können (nein, das war nicht der fehler http://hades.gothic.at/iforum/images/smilies/ausheck.gif). und es geht nicht einfach um strings oder so, sondern um rechtwinklige dreiecke. es gibt unendlich viele rechtwinklige dreiecke. da vernünftige testdaten zu generieren war eh fast der größte teil der arbeit. hab nur nicht an jeden sonderfall gedacht...

Blöd sind nur die Fehler, die man 2x macht http://hades.gothic.at/iforum/images/smilies/thumb.gif
schon, aber ärgern tun sie einen trotzdem... http://hades.gothic.at/iforum/images/smilies/rolleyes.gif

Wir bieten beim RISE-Institut Qualitätssicherung (http://www.rise.tuwien.ac.at/courses/qs/index.php) an. Für die nicht ganz so motivierten gibt's immer noch den Weg, den ich meistens gehe: Testklassen (http://www.kiesler.at/article%7Eview%7E41%7Epage_num%7E9.html)!
wer ist WIR? bist du tutor oder assistent oder was machst du beim RISE?