![]() |
[Beta] tump - the unknown math-parser
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
Ich habe neulich wieder mal einen Mathematik-Parser in die Hände bekommen, und mal wieder gedacht "Mensch, sowas müsstest du eigentlich auch können". Schließlich war es dann soweit, dass ich angefangen hab. Ich weiss, eigentlich gibt es Parser fast wie Sand am Meer, aber mich trieb der Ehrgeiz, der auch jeden Programmierer eines Texteditors treibt..."Das kann ich auch!". Nun, was er kann: - Auswertung von (nahezu :) ) beliebigen Mathematischen ausdrücken, d.h. - Klammern (beliebige Verschachtelung, solange der Stack reicht :twisted: ) - Konstanten - einwertige Operatoren - zweiwertige Operatoren - einfach erweiterbar Was noch fehlt/Was noch nicht schön ist: - *von selbst erledigt* Operationen dürfen nur in 2er-Häppchen erfolgen. d.h. 2+3+4 muss in 2+(3+4) geklammert werden. - Hilfe / Dokumentation - Kommentierter Quellcode :) - *eingebaut* Weiter Funktionen (Sqr, Sqrt, ^x, ², log, ...) - Punkt-vor-Strich Integrierte Mathematische Funktionen: - Pi - E - + - - - * - / - Sinus (sin) - Cosinus (cos) - Tangens (tan) - ArcusSinus (arcsin) - ArcusCosinus (arccos) - ArcusTangens (arctan) - Sqrt - Sqr - ² - log - ^ Aufgrund von Punkt 3. der fehlend-Liste müsst ihr bis zur veröffentlichung des Quellcodes noch etwas warten ;) Ich kann aber schon verraten das der eigentliche Parser nicht mal 150 Zeilen benötigt (Inclusive Deklaration, ...) Und das ohne irgendwie Zeilen zu sparen...der Qt ist einfach kurz :) Zusätzlich gehen dann nochmal 150 für die Mathematischen Funktionen und die zugehörigen Deklarationen drauf. Wer weitere Funktionen haben möchte, der soll das bitte per PN oder hier im Thread schreiben. ebenso natürlich gefundene Bugs sowie verbesserungsvorschläge. Auch an einer Lösung des Klammerungs-problems bin ich natürlich sehr interessiert!!! Die Bedienung des Interfaces sollte selbsterklärend sein...immerhin gibt es nur ein eingabefeld und einen Button ;) dann mal viel Spaß beim testen. PS: Wem ein schöner(er) Name einfällt, der soll ihn mir doch auch bitte mitteilen :) |
Re: [Beta] tump - the unknown math-parser
Es wäre vielleicht auch net anstelle des "/" oder "*" ein ":" oder "x" zu setzen?
Und vielleicht solle es Buttons für die Komplizierten Funktionen geben (sin, cos, tan (Arcusse dazu :P) etc)! Und es wird doch wahrscheinlich besondere Zeichen doch im Unicode zu finden sein oder? (hoffentlich erzähl ich hier kein scheiß ;) Und delphi kann mit den Unicodes arbeiten :P) |
Re: [Beta] tump - the unknown math-parser
Zitat:
(@rest: wir kennen uns auch von ausserhalb der dp...) nun ja, also : und x sind kein problem... und die buttons sind problem des interfaces, nicht des parsers :twisted: |
Re: [Beta] tump - the unknown math-parser
Okay das mit dem Interface ;) Naja, ist noch nicht so wichtig :P
Aber vielleicht ein Bug: []-Klammern funktionieren nicht :D |
Re: [Beta] tump - the unknown math-parser
Vorschlag: wenn Du schon einen 'Parser den die Welt nicht braucht' schreiben willst,
versuche Dich mal an Lisp zu orientieren, mit dem kann man was anfangen. LISP ist IMHO die perfekteste Programmsprache die es gibt. :coder: |
Re: [Beta] tump - the unknown math-parser
Zitat:
könntest du in 2-3 Sätzen beschreiben was Lisp da besonderes kann? oder ein Beispiel bringen... |
Re: [Beta] tump - the unknown math-parser
LISP - Böse Zungen behaupten: das bedeutet 'Lost in stupid parentheses'- verloren in sinnlosen Klammern
bedeutet aber: List interpreting Language Autodesk hat diese Programmsprache in das Programm AUTOCAD integriert. |
Re: [Beta] tump - the unknown math-parser
Zitat:
Was kann denn Lisp was mein Parser können sollte? |
Re: [Beta] tump - the unknown math-parser
Einfach alles, nebenbei auch rechenn.
Das geniale an diesem Konzept ist die Einfachheit: Die Read-Eval loop: Lesen, auswerten Klammer, Funktion, Parameter
Delphi-Quellcode:
(while (not (setq p1 (getpoint "Punkt 1:"))))
|
Re: [Beta] tump - the unknown math-parser
Zitat:
mein Teil soll mathematische ausdrücke ausrechnen...mehr nicht ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz