Ich habe einen einfachen Matheparser geschrieben der bisjetzt die Grundrechenarten beherrscht und auch Klammern berücksichtigt.
Als Input kann man einen String wie z.b. 2(5/(10*(2+2)-5)^0,5) senden und erhällt dann ein hoffentlich richtiges Ergebnis.
Warum ich diesen hier hochlade?
Es geht mir primär darum von euch zu hören was ich noch besser machen kann. Ich habe mir Delphi eigentlich zu 90% selber bei gebracht und habe deswegen noch nicht den richtigen Durchblick. Genau das erhoffe ich aber hiermit etwas zu verbessern. Deshalb bin ich total offen :p für Kritik und höre gerne wie man es richtig realisieren würde
Weiter Geplant sind das Rechnen mit Variablen ( Gleichungen Lösen ) sowie andere Rechenoperatoren ( Sin,Cos,e uvm)
Bekannte Probleme:
- Keine wirkliche Fehlerabfrage
- Derzeit wird die Aufgabe 5*5^5 so gerechnet: (5*5)^5 statt 5*(5^5), ich suche noch nach der besten Lösung, ich habe zwar eine die gefällt mir aber nicht.
edit*
Kleine Änderung hochgeladen
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| function TMathParser.Parse(Input: string) : String; var i : integer; begin ... sLine := StringReplace(sLine,'*(','*(0+',[rfReplaceAll]); for i := 0 to 9 do sLine := StringReplace(sLine,inttostr(i)+'(',inttostr(i)+'*(0+',[rfReplaceAll]); ... end; |
Moderiert von Narses: Topic aus Freeware Projekte verschoben am Mo 18.08.2008 um 19:20