PDA

View Full Version : [Runde 2] - nur um zu sichern sein...


Alpha_m
03-01-2005, 08:29
hat jemand den Beispiel "Nr. 1184 - Operationen mit Widerstaende" gemacht???

.... wie ist es mit Eingabedaten ??? naemlich Masseneinheiten ... nach der Spez. verstehe ich sie koennen NUR in der Form von der gegebenen Tabelle kommen.... also z.B. nur "Ohm" ist erlaubt - "OHM" nicht und so der Programm soll eine Ausgabe "FALSCHE EINGABE" liefern.... ist es wirklich so ???

bin nicht sicher darueber und weiß nicht ob ich es im Programm korrigieren soll ....

hiermit beifuege ich die ganze Spez....

1184 Elektro1 Operation mit Widerstaenden
Kategorie:Elektrotechnik
Klasse:mittel
Eingabe:siehe Spez
Ausgabe:siehe Spez
Abzugebende Files: Elektro1.txt, Elektro1.java
Kurzbeschreibung:

Zwei Größen, die Widerstände, Spannungen, Stromstärken oder Leistungen sein können, sowie eine Operation werden eingelesen; das Ergebnis der Operation wird ermittelt.
Allgemeine Hinweise:

Ihr Programm darf nur genau jene Ausgabedaten liefern, die in der Spezifikation verlangt werden. Die Ausgaben Ihres Programmes werden automatisch mit Referenzdaten verglichen; etwaige Abweichungen führen zu Punkteabzügen!
Testen Sie Ihr Programm vor der Abgabe mit der mitgelieferten Eingabedatei. Geben Sie Ihre Lösung erst ab, wenn die Ausgaben Ihres Programmes mit der ebenfalls mitgelieferten Ausgabedatei übereinstimmen! Testen Sie Ihr Programm auch mit anderen Eingabedaten.
Verwenden Sie nur das von uns mitgelieferten Package eprog für Ihre Ein/Ausgaben. Programme, die Packages oder Klassen ausserhalb der verwendeten Übungsumgebung (Java2, Standard Edition, Version 1.5.0) verwenden, können von uns nicht getestet werden und werden mit 0 Punkten bewertet!
Schreiben Sie Ihr Programm möglichst allgemein und kommentieren Sie es gut. Erstellen Sie weiters eine übersichtliche und verständliche Dokumentation. Damit erhöhen Sie Ihre Chancen, daß andere Studenten in den nächsten Runden Ihr Programm wählen und Ihnen damit zu Zusatzpunkten verhelfen!
Aufgabenstellung:

Lesen Sie zwei Paare aus jeweils einer Zahl und einem String ein. In jedem String steht die Maßeinheit für die zuvor eingegebene Zahl. Folgende Maßeinheiten sind erlaubt:


Widerstand(R) : Ohm (Omega)
Spannung(U) : V (Volt)
Stromstärke(I) : A (Ampere)
Leistung(P) : W (Watt)

Vor jeder Einheit kann noch eines der Zeichen "K" oder "m" stehen, das einen Umrechungsfaktor angibt (Kilo~ bzw. milli~ für 1000 bzw. 1/1000, z.B. 3 KV = 3000 V, 1000 mA = 1A).

Es ist empfehlenswert, die Eingabewerte in Ohm, V, A bzw. W umzurechnen, da auch die Ausgabe in diesen Grundeinheiten erfolgen muß.

Weiters soll eine der folgenden Operationen eingelesen werden: + - * / |

Hierbei werden bei + und - Werte gleicher Einheit addiert bzw. subtrahiert.
Werte mit verschiedenen Einheiten sind bei diesen Operationen nicht erlaubt.
Beispiel: 1 V 100 mV + liefert 1.100 V

Die Operation * multipliziert Werte, wobei folgende Gesetze zur Anwendung kommen sollen:

I*R=U z.B. 10 Ohm 2 A * liefert 20 V (beachte I*R=R*I)
U*I=P z.B. 2 A 20 V * liefert 40 W

Andere Kombinationen von Einheiten (z.B. auch gleiche Einheiten) sind nicht zulässig.

Mit / werden zwei Werte dividiert, wobei wieder die genannten Gesetze angewendet werden sollen: U/I=R U/R=I P/U=I P/I=U Bsp: 20 V 2 A / liefert 10 Ohm.
Andere Kombinationen sind wiederum unzulässig.

Die Operation | darf NUR auf zwei Widerstandswerte angewendet werden und liefert den Gesamtwiderstand der Parallelschaltung der beiden Widerstände.
Verwenden Sie folgende Formel: R1|R2 = (R1*R2)/(R1+R2)
Beispiel: 2 Ohm 2 Ohm | liefert 1 Ohm.

Eingabedaten:

Lesen Sie die die erste Zahl (Typ Float), die erste Maßeinheit (String), die zweite Zahl, die zweite Maßeinheit und die Operation (String) in dieser Reihenfolge ein. Die Zahlen müssen > 0 sein.


Die Maßeinheiten müssen aus der obenstehenden Tabelle stammen. Klein- und Großbuchstaben sollen gleich behandelt werden.

Die Operation muß eines der Zeichen +, -. * / oder | sein.

Die oben genannten Bedingungen für die Einheiten der Eingabewerte (abhängig von der Operation) müssen erfüllt sein.

Ausgabedaten:

Bei korrekten Eingabedaten soll Ihr Programm das Ergebnis der Operation (umgerechnet in Ohm, V, A bzw. W) als INTEGER-Zahl gerundet (programmintern soll jedoch mit Float-Zahlen gerechnet werden) liefern. Weiters ist die Maßeinheit des Resultates (Ohm, V, A bzw. W) auszugeben. (Klein und Großschreibung wie hier angegeben!).


Trennen Sie die beiden Teile der Ausgabe durch ein Leerzeichen und geben Sie am Ende einen Zeilenvorschub aus.

Fehlerbehandlung:

Sämtliche Eingabedatensätze sind immer vollständig einzulesen. Generell wird bei fehlerhaften Eingabedatensätzen nur eine einzige Fehlermeldung erzeugt, weitere Berechnungen werden nicht mehr durchgeführt.


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.


Beispiele:



Eingabedaten
1 Ohm 2 V -
100 Ohm 20 Ohm +
2 A 2500 mOhm *
Ausgabedaten
FALSCHE EINGABE
120 Ohm
5 V



Testen:

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 Elektro1 < Elektro1.i1 > Elektro1.out1 Das erzeugte File Elektro1.out1 können Sie dann mit dem mitgelieferten Outputfile Elektro1.o1 vergleichen.

Poppe
03-01-2005, 13:26
Die Maßeinheiten müssen aus der obenstehenden Tabelle stammen. Klein- und Großbuchstaben sollen gleich behandelt werden. Daher ist OHM, ohm, Ohm, oHM etc. alles korrekt