PDA

View Full Version : [Runde 3] - Spez 3077 Dreieck zu Viereck


ZeroG
02-01-2005, 18:43
Hi ... mal wieder ne Frage zu der Angabe die imo unklar ist. Hier steht "Sollten Werte eingegeben werden, die kein Dreieck definieren, so ist die Eingabe unzulässig." Was zu ich jetzt bei der Eingabe von "0 0 0" für die Seitenlängen. Im Prinzip wäre das ein unendlich kleines rechtwinkeliges Dreieck. Durch die Genauigkeit von 0.3 sowieso. Weiss jemand ob das im Sinne von Eprog ist?

Weiters ist gefordert: "Sämtliche Eingabedaten sind immer vollständig einzulesen (Ausnahme: Der Wert für die Anzahl der Dreiecke ist inkorrekt)."
Wenn man die Eingabe aber nun in das üblich Try - Catch Konstrukt packt, dann kommt ein Fehler schon bei der Eingabe eines falschen Datentyps.
also zB
2
1 1 a

ist es legitim dass die Exception hier getriggert wird, und eine Fehlermeldung (?) ausgegeben wird, oder soll ich echt alles in Buffervariable schreiben und erst danach auf den korrekten Datentyp prüfen, als mit EprogIO.readFloat() zu arbeiten?

Thx

Poppe
02-01-2005, 18:56
also wenn der gesamte eingabedatensatz einzulesen ist, dann solltest das auch machen. lösung für dein problem wär z.b:
boolean error = false;
try{float a = readFloat();}
catch (EprogException e) {error = true;}
try{float b = readFloat();}
catch (EprogException e) {error = true;}
try{float c = readFloat();}
catch (EprogException e) {error = true;}
if(error)
EprogIO.println("?");...unter der Annahme, dass du immer 3 Werte eingeben musst.
und 0 0 0 ist würd ich sagen kein dreieck sondern lediglich ein punkt...naja darüber könnte man streiten und philosopieren, aber ich würds als falsch ansehn

Adok
03-01-2005, 21:07
Bei 0, 0, 0 ist die Dreiecksungleichung nicht erfüllt, welche besagt: a + b > c (a, b Katheten, c Hypotenuse). Selbiges gilt für 0, a, c, weil dann a = c. Es darf also keine Seite gleich 0 sein.

ZeroG
04-01-2005, 11:13
Bei 0, 0, 0 ist die Dreiecksungleichung nicht erfüllt, welche besagt: a + b > c (a, b Katheten, c Hypotenuse). Selbiges gilt für 0, a, c, weil dann a = c. Es darf also keine Seite gleich 0 sein.
das klingt wie ein argument =)
danke auch für die input-lösung.

ganz schöne kopfnuss das beispiel O_o.