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?
berechne(String) | |
---|---|
Hier passiert die eigentliche Arbeit. Gem�� der Top-Down Strategie entspricht berechne(String) im wesentlichen unserem "Schlachtplan". Hier sind die abstrakten Schritte aufgez�hlt, die wir f�r das Berechnen eines gegebenen Ausdruckes ben�tigen. 248���������public�static�String�berechne(String�s)�throws�Exception�{ |
Beschreibung von berechne(String) | |
---|---|
252: Hier wird Platz f�r den zu speichernden Ausdruck reserviert. In unserem Fall wird der String in die allseits beliebte ArrayList umgewandelt. Die Funktion reset() ist hier das, was bei einem objektorientierten Programm �blicherweise ein Constructor ist. 257: tokenize() ist ein handgeschnitzter lexikalischer Analysator. �blicherweise nimmt man f�r solche Dinge eigene Programme, wie zB den Lex. Meiner Meinung nach sind beispiele wie diese schon aufgrund der String-Zerlegung sehr aufwendig. F�r eine in die Programmierung einf�hrende Veranstaltung vielleicht sogar zu aufwendig. 263: verify() der n�chste Schritt, den man mit den Mitteln von �bersetzerbau (yacc / bison) bestens umsetzen k�nnte. Nach der Lexikalischen Analyse erfolgt das Parsen. Passt die Reihenfolge, die Semantik des Ausdrucks? Beispielsweise ist 4+*-1 ung�ltig, da + und * nicht aufeinander folgen d�rfen. 268-269: Wie hei�t es in der Aufgabenstellung so sch�n? Bei der Berechnung sind selbstverst�ndlich Klammerregeln und die Rangfolge der Operatoren zu beachten. Hier k�mmern wir uns um die Klammerung -- Klammern werden von innen nach au�en aufgel�st und entsprechend bei jedem Schritt berechnet. 276: gibt es einmal keine Klammer mehr im Ausdruck -- zur Erinnerung: Wir haben bereits gepr�ft, dass der Ausdruck korrekt ist, also zB auch die Klammerung g�ltig ist -- m�ssen wir den Ausdruck noch ein weiteres mal berechnen und erhalten so den Endbetrag. 283: bzw. noch nicht ganz. Der Einfachheit halber werden die Einheiten nicht ganz so abgespeichert, wie sie in der Ausgabe verlangt werden. beautify() erledigt das f�r uns. |
reset() | |
---|---|
Reset legt, wie gesagt, unsere ArrayList an. In diese speichern wir dann Happen f�r Happen unseres Eingabestrings und f�hren schrittweise die Berechnungen durch. 24���������public�static�void�reset()�throws�Exception�{ |
![]() |
The comments are owned by the poster. We are not responsible for its content. |
AdministrativeTexts
updated by freddiemac1993, 2013-06-14
wiki
Re: adventures
created by brittdavis10, 2012-02-23 (1 rply, 3 views)
thread
Re: how to run phpwebsite...
created by alexander, 2011-08-25 (2 rpls, 3607 views)
thread
Re: Forum tags
created by HaroldFaragher, 2011-08-22 (3 rpls, 8488 views)
thread