1176 | laenfl | Operation mit Laengen, Volumina | ||||||||
| ||||||||||
Abzugebende Files: laenfl.txt, laenfl.java |
Längenmaße (Dimension 1): cm dm m
Flächenmaße (Dimension 2): cm2 dm2 m2
Raummaße (Dimension 3): cm3 dm3 m3
Sicherheitshalber die Umrechnungsfaktoren:
1 m = 10 dm = 100 cm
1 m2 = 100 dm2 = 10000 cm2
1 m3 = 1000 dm3 = 1000000 cm3
Es ist empfehlenswert, die Eingabewerte in m, m2 bzw. m3 umzurechnen, da auch die Ausgabe in diesen Grundeinheiten erfolgen muß.
Weiters soll eine der folgenden Operationen eingelesen werden: + - * /
Hierbei werden bei + und - Werte gleicher Dimension addiert bzw. subtrahiert.
Werte mit verschiedenen Dimensionen sind bei diesen Operationen nicht erlaubt.
Beispiel: 1 m2 50 dm2 + liefert 1.500 m2
Die Operation * multipliziert Werte, die auch verschiedene Dimension haben können, wobei die Dimensionen addiert werden. Diese neue Dimension darf nicht höher als 3 sein. Beispiel: 1 m2 5 dm * liefert 0.500 m3
Mit / werden zwei Werte dividiert, wobei der erste Wert eine höhere Dimension
haben muß als der zweite. Die Dimensionen werden in diesem Fall subtrahiert.
Beispiel: 10 m3 2 m / liefert 5.000 m2
Die Maßeinheiten müssen aus der obenstehenden Tabelle stammen und in Kleinbuchstaben angegeben werden.
Die Operation muß eines der Zeichen +, -, * oder / sein.
Die oben genannten Bedingungen für die Dimensionen der Eingabewerte (abhängig von der Operation) müssen erfüllt sein.
Trennen Sie die beiden Teile der Ausgabe durch ein Leerzeichen und geben Sie am Ende einen Zeilenvorschub aus.
Enthält der Eingabedatensatz einen ungültigen Datentyp, so soll einmal das Zeichen "?", gefolgt von einem Zeilenvorschub, ausgegeben werden.
Sind die Datentypen bei allen Eingaben richtig, die
eingegebenen Daten aber inhaltlich nicht korrekt oder erfüllen nicht die
Bedingungen, so soll Ihr Programm "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.
Eingabedaten |
1 m 5 dm +
1 m 5 m2 - |
Ausgabedaten |
1.500 m
FALSCHE EINGABE |
Bemerkung: Diese Beispiele dienen nur zur Verdeutlichung der Spezifikation und müssen nicht korrekt formatiert sein. Die korrekte Formatierung entnehmen Sie bitte dem mitgelieferten Outputfile. Zum Testen Ihrer Lösung können Sie aus den mitgelieferten Eingabedaten wie folgt eine Ausgabedatei erzeugen:
java laenfl < laenfl.i1 > laenfl.out1
Das erzeugte File laenfl.out1 können Sie dann mit dem mitgelieferten Outputfile laenfl.o1 vergleichen.