1186 |
variable |
Variablen mit Werten belegen |
Kategorie: | Mathematik |
Klasse: | mittel |
Eingabe: | Strings |
Ausgabe: | int |
|
Abzugebende Files: variable.txt, variable.java |
Kurzbeschreibung:
Variablen werden mit Werten belegt; der Wert einer dieser Variablen wird abgefragt.
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.3.1_1) 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:
Ihr Programm soll "Variablen" mit Werten füllen. Dazu soll es Strings einlesen, die folgenden Aufbau haben: NAME=WERT. Dabei soll der NAME aus Buchstaben bestehen; der WERT kann eine Zahl sein oder der NAME einer vorher eingelesenen Variable (deren Wert in diesem Fall übertragen wird).
Zum Schluß kommt eine Abfrage in der Form ?WERT. Hierbei kann WERT wiederum
eine Zahl sein (ein trivialer Fall) oder der NAME einer zuvor belegten
Variablen. Dieser Wert ist auszugeben.
Betrachten wir dies an einem Beispiel: Unser Datensatz lautet AA=2 B=AA ?B
Im ersten Schritt wird der Variable AA der Wert 2 zugewiesen. Dann wird der
Variable B der Wert von AA zugewiesen; B hat also auch den Wert 2. Zuletzt
wird der Wert von B abgefragt; das Ergebnis lautet also 2.
Wenn einer Variablen mehrmals ein Wert zugewiesen ist, so ist der letzte Wert
zu speichern (A=3 A=4 ?A liefert 4). Der Wert von Variablen, die noch nicht
existieren, darf nicht abgefragt oder in einer Zuweisung verwendet werden.
(B=C C=1 ?B => "FALSCHE EINGABE").
Eingabedaten:
Lesen Sie Strings in der oben genannten Form NAME=WERT ein. Dabei darf Name
aus maximal 10 Zeichen bestehen und nur aus Buchstaben bestehen. Groß- und
Kleinbuchstaben sind beide erlaubt und zu unterscheiden. (A=3 a=2 ?A => 3).
Umlaute und sonstige Sonderzeichen sind verboten.
Die Werte können die Namen existierender Variablen sein oder Zahlen, wobei
diese nur aus Ziffern bestehen dürfen (keine Vorzeichen, Dezimalpunkte etc.)
und im Darstellungsbereich von positiven Zahlen des Typs Short liegen müssen.
Der Datensatz wird durch eine Abfrage der Form ?Wert abgeschlossen, wobei
für den Wert dieselben Bedingungen gelten wie bei den Zuweisungen.
Es dürfen maximal 10 Variablen angelegt werden; es ist zulässig, daß ein
Datensatz keine Variablen belegt, sondern nur aus einer Abfrage (in diesem
Fall auf eine Zahl) besteht.
Ausgabedaten:
Bei korrekten Eingabedaten soll Ihr Programm den Wert der Abfrage liefern.
Dieser ist als Integer-Zahl auszugeben, danach ein Zeilenvorschub.
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.
Sind die eingegebenen Daten inhaltlich nicht korrekt oder erfüllen nicht die gestellten Bedingungen, so soll Ihr Programm "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.
Beispiele:
Eingabedaten
|
A=3 B=5 ?A
a=3 b=7 ?A
|
Ausgabedaten
|
3
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 variable < variable.i1 > variable.out1
Das erzeugte File variable.out1 können Sie dann mit dem mitgelieferten Outputfile variable.o1 vergleichen.