skip to main content

kiesler.at

Variablen mit Hashtable verwalten
updated by rck, 2004-10-03

Beispiel 1186 der EPROG-Beispielsammlung l�sst sich sehr sch�n mit einer Hashtable l�sen. Es handelt sich hierbei um eine schlichte Variablenverwaltung f�r ganzzahlige Werte.
                     
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8

Die Eingabe

Die Aufgabe 1186 sieht als Eingabe eine Liste von Variablen vor. Abgeschlossen wird das ganze durch eine Query in der Form "?Variable" oder "?Zahl".


Beispiel 1: M�chten wir uns beispielsweise die Variablen NOTENSCHNITT=4 und REIFENZAHL=4 merken und im Anschlu� herausfinden, wie hoch denn nun der Notenschnitt war, �bergeben wir unserem Programm folgendes:


NOTENSCHNITT=4 REIFENZAHL=4 ?NOTENSCHNITT


Beispiel 2: Das Angenehme an unserem Programm ist aus Benutzersicht, dass man Werte von Variablen nicht nur bei der Ausgabe, sondern auch schon bei der Eingabe verwenden kann. Folgendes w�re f�r das Programm korrekt, macht allerdings in der Praxis nicht so besonders viel Sinn:


NOTENSCHNITT=4 REIFENZAHL=NOTENSCHNITT ?REIFENZAHL


Beispiel 3: Man kann sich nun auch die ganzen Variablendefinitionen sparen und gleich von Anfang an eine Konstante ausgeben. Das geht folgenderma�en:


?4


Beispiel 4: Was nicht geht, ist Variablen ausgeben, die noch nicht definiert wurden:


?NOTENSCHNITT


Dieses Beispiel w�rde zu der Fehlermeldung "FALSCHE EINGABE" f�hren.

Weitere Fehlerf�lle

Bez�glich der Fehlermeldungen ist unser Programm sehr puristisch, es gibt nur die Meldung "FALSCHE EINGABE", falls etwas nicht stimmt.


Der Fehler kann auftreten, wenn


  • Ein Variablenname Umlaute oder sonst irgendwas schlimmes enth�lt (erlaubt sind nur Buchstaben, nicht erlaubt w�re zB GR�NDUNGSBESCHR�NKUNG=61)
  • Eine undefinierte Variable als Wert verwendet wird (zB NAME=UNBEKANNT)
  • Eine Zahl mit Vorzeichen, Dezimalpunkt oder sonstigen Sonderzeichen angegeben wird
  • Eine Zahl, die Au�erhalb des Short-Zahlenbereichs liegt, angegeben wird (2^15-1)
  • mehr als 10 Variablen definiert werden
                     
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8



RSSComments - Make a comment
The comments are owned by the poster. We are not responsible for its content.
RSSAll Articles
2008, 2007, 2006, 2005, 2004