skip to main content

kiesler.at

Spaziergang durch einen Einheitenberechner
updated by rck, 2004-10-10

Der Ernstfall ist eingetreten. EPROG. Drei Beispiele, eines schlimmer als das andere. Zu allem �berfluss sind die mitgelieferten "Unterst�tzungsprogramme" mehr ein Klotz am Bein als sonst was.

Wie geht's weiter, wenn kein Stein und kein Seil verf�gbar ist, das einen den Weg in die Donau begleiten k�nnte?

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13

berechne(int)

Genau hier ist der Verbindungspunkt zu der mitgelieferten Funktion des Vorg�ngers. Zumindest theoretisch. Praktisch waren die drei Kollegen leider hoffnungslos �berfordert, die L�sungen konnten nicht ordnungsgem�� eingebaut werden.

Entsprechend wurde die Klasse Berechner ebenfalls komplett neu geschrieben.

berechne(int) geht an Stelle int der ArrayList, nimmt den dort gefundenen Wert als Operation. Der Wert davor ist Operand a, der Wert dannach Operand b.

130         // berechne(int i)
131         // ..................................................................
132         // ersetzt im Ausdrucksarray eine Stelle der Form
133         //    ...ausdruck[i-1]=A, ausdruck[i]=operator, ausdruck[i+1]=B
134         // durch
135         //    ...ausdruck[i]=A operator B
136         //
137         // --> A und B werden ausdruck gel�scht, ausdruck verliert somit
138         //     zwei Elemente. �brig bleibt das Ergebnis, von A und B, ver-
139         //     kn�pft mit dem operator
140         //
141         // das Ergebnis wird ZUS�TZLICH als String zur�ckgegeben, kann aber
142         //     genausogut ignoriert werden.
143         //
144         public static String berechne(int i) throws Exception {
145 
146                 debug("berechne(): vor Berechnung");
147                 String resultat=Berechner.berechne(     (String)ausdruck.get(i-1),
148                                                         (String)ausdruck.get(i),
149                                                         (String)ausdruck.get(i+1));
150 
151                 debug("berechne(): nach Berechnung");
152                 ausdruck.set(i, resultat);
153 
154                 debug("berechne(): entferne Operatoren");
155                 ausdruck.remove(i+1);
156                 ausdruck.remove(i-1);
157 
158                 debug("berechne(): liefere "+resultat);
159                 return(resultat);
160         }

Beschreibung von berechne(int)

152 Wir ersetzen den Operand durch das Ergebnis der Berechnung...

155-156 ...und l�schen dann die dazugeh�rigen Werte.

159 hier wird wie gewohnt das Resultat zur�ckgeliefert.

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13



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