Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
Delphi XE2 Professional
|
Re: Mathematischen String Parsen
12. Sep 2007, 18:47
Du solltest das ganze rekursiv angehen.
Beispiel
4 * (2 + 3*(5-2))
In der Auswertungsroutine suchst du zunächst nach der innersten Klammer also (5-2) und rufst die Auswertungsroutine mit 5-2 auf. Das muss ist dann in diesem Beispiel ein elementarer rechenschritt, den du halt programmieren musst. Wenn er das ergebnis hat, setzt er dass in den String ein, also
4 * (2+ 3*3) und sucht wieder die innerste Klammer, nun: 2+ 3*3
Da hier keine Klammer mehr enthalten ist, gilt punktrechnung vor strichrechnung, deine Routine muss sich also mit 3*3 selber aufrufen, ergebnis ausgeben und in den Substring einsetzen:
2 + 9
es folgt wieder ein elementarer Rechenschritt, der als ergebnis 11 halt, das setzt du wieder in deinen string ein:
4 * 11
usw...
so würde ich das angehen...
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)
Mein Netzwerktool: Lan.FS
|