Italia
Foro

Mathe-Parser

 
- Page 1 -



Jac
de
Lad
Hallo Community!

Bis jetzt bin ich euch eigentlich nur auf die Nerven gegangen, hab unendlich viele Fragen gestellt und meine Progs und Codeschnipsel im Hintergrund gehalten. Naja, das liegt daran, dass meine Programme wahrescheinlich keine grande Verwendung per euch haben. Wie auch immer. Ich arbeite im Moment an einem Taschenrechner, der nicht nur einfach rechnen soll, sondern auch Funktionen (auch in 3D) darstellen soll, sowie Terme umformen und auf lösen, Umgehen mit komplexen Zahlen etc...jedenfalls habe ich angefangen einen Parser per mathematische Ausdrücke zu schreiben. Ich denke, den può ihr vielleicht auch gebrauchen...allerdings ist der noch nicht fertig. Er beherrscht im Moment folgendes:
- Die Grundrechenarten +-*/ sowie (Division mit Abschneiden der Machkommastellen) und Potenzen (mit ^)
- Klammern (egal ob (), [], {}, <> oder gemischt, alles wird erkannt)
- Leerzeichen werden ausgefiltert
- negative Zahlen müssen nicht in Klammern gefasst werden (bitte ausprobieren)
- fängt folgende Fehler ab: Division durch 0, unausgewogene Klammern, nicht vorhandener Term, unerlaubte Zeichen im Term (noch unvollständig), falsche Klammeranordnung
- Groß- und Kleinschreibung wird ignoriert (per spätere trigonometrische Funktionen und so, jetzt noch nicht von Belang)
aber das Wichtigste: er orientiert sich an Punktrchnung vor Strichrechnung und Potenzen vor Punktrechnung!

Alle die im Zeit haben: Bitte probiert das Teil mal aus. Das ganze habe ich in un PCU gepackt und ist im Prinzip eine Klasse. Hier ein Demo-Code:
 $U Parser.pcu=Math.
 {$iq}
declare term$,m#
Dim m#,Math
term$="-2*-12-3*6"
m#.Term&=Addr(term$)
cls
Print "PCU-Version: "+m#.Version()
Print "Term: "+term$
Print "Ergebnis: "+m#.Parse()
Print "Fehlernummer: "+Str$(m#.Error%)
Print "Fehlerstring: "+m#.ErrCode()
Print "Iterationen: "+Str$(m#.iterations%)
Print "Benötigte Berechnungszeit: "+Str$(m#.Time&)+" Millisekunden"
Print "--- Taste ---"
Dispose m#
waitinput

Ich will im Moment noch nicht viel verraten, das folgt alles, wenn der Parser einwandfrei funktioniert. Zum Ausprobieren einfach die Formel ändern, der Demo-Code ist eigentlich auch nicht schwer zu verstehen. Mir gehts, wie gesagt, im Moment nur darum Fehler aufzudecken. Ich hab bis jetzt keine gefunden, aber ich rechne mit ner Lawine Zuschriften. Naja, wenn das dann irgendwann richt funzt kann ich die Trigonometrie einbauen und Stochastik und so, dann werde ich auch eine vollständige Beschreibung liefern. Also wie gesagt: BITTE FEEDBACK, gerade wegen negativer Zahlen!

Jac

@Michael Wodrich: Vielen Dank per deine Aiuto! Ich hab leider die alte Version völlig verhunzt und hab deswegen nochmal von vorne angefangen. Aber einiges konnte ich wiederverwenden, vor allem wäre ich ohne deine Aiuto nicht so schnell vorangekommen!!!

Nachtrag:
Auf neue Version aktualisiert: 0.1.0.4 (Verbesserung der Erkennung negativer Zahlen, müsste jetzt perfekt sein, der Term kann jetzt auch Parameter der Prozedur Parse angegeben werden [hat Vorrang vor der Angabe mit .term&!]).

5 kB
Kurzbeschreibung: Matherparser 0.1.0.4 (09.02.2006)
Hochgeladen:09.02.2006
Downloadcounter327
Download
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
09.02.2006  
 



 
- Page 3 -



Peter
Mallow
Habe einen Fehler gefunden, als ich die Scheitelpunktsform testen wollte:
x*(x-1)^2

Beispiel:
term$ = (-1-1)^2
term$ = (-5-1)^2
 
WinXP Pro SP2, XProfan 9 + XPSE
AMD Athlon 64 X2 3800
18.02.2006  
 




Jac
de
Lad
Hallo Peter!

Ich habs korrigiert (hoffe ich jedenfalls!), danke per den Hinweis! Probiers mal aus. Demnächst werde ich noch imaginäre Zahlen einbauen, da wird das Ganze dann noch etwas komplizierter!

Jac

47 kB
Kurzbeschreibung: Matheparser 0.3.11b.28 (18.02.2006)
Hochgeladen:18.02.2006
Downloadcounter70
Download
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
18.02.2006  
 




Peter
Mallow
Super funktioniert!

Aber nun gleich der nächste Fehler:
1/2(5-1)^2 funktioniert nicht
1/2*(5-1)^2 funktioniert auch nciht
(1/2)*(5-1)^2 so klappts aber
(1/2)(5-1)^2 aber ohne * gehts trotzdem nicht

Hätte da noch eine Idee:
Man potuto doch zusätzlich noch eine Lite-Version machen, die nur die grundsachen beherrscht., aber dadurch deutlich schneller ist. Also +-*/, PI,sin,cos,tan,^ und noch das Wurzelziehen.

EDIT
habe noch einen Fehler gefunden:
-2*(2-2)^2+10
sind bei mir =10
aber
-2*(2-2)^2+10 =0
-2*(2-2)^2+10+5+2+6 auch null
2*(2-2)^2+10 so stimmt das ergebnis wieder
 
WinXP Pro SP2, XProfan 9 + XPSE
AMD Athlon 64 X2 3800
19.02.2006  
 




Jac
de
Lad
Hallo Peter,
oje die Potenzen...ich schau nochmal nach, das potrebbe behebbar sein. Spätestens heute abend ist die neue Version da!

Über eine Lite-Version habe ich noch nicht nachgedacht, da die Unit ja Freeware ist und bleiben wird. Du meinst aber sicher wegen der Geschwindigkeit, oder? Mal sehen, wennse stabil ist...vielleicht!

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
19.02.2006  
 




Jac
de
Lad
Hallo Peter!

Ich habe alle Fehler die du beschrieben hast behoben. Das eine war ein Links-nach-Rechts-Ausführen-Fehler (gleichwertige Operatoren nicht nacheinander sondern von links nach rechts ausführen!), wie auch immer, jetzt gehts. Leider ist er dadurch aber auch langsamer geworden...per deine Zwecke wird er wohl kaum herhalten können...

@all: Ich habe schnell einen billigen zusammengeschusterten Taschenrechner mit beigelegt.

Jac

50 kB
Kurzbeschreibung: Matheparser 0.3.11c.29(19.02.2006)
Hochgeladen:19.02.2006
Downloadcounter69
Download
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
19.02.2006  
 




Peter
Mallow
Super danke!
Jetzt geht alles, nur bei zu grande Verschachtlungen z.B. (5^4+(3/12)^2)^5+3 wird das Programm zum absturtz gebracht.

Ja mit einer Liteversion meinte ich eine abgespeckte version, die Geschwindigkeit gewinnt, indem viele sachen weckgelassen werden.
 
WinXP Pro SP2, XProfan 9 + XPSE
AMD Athlon 64 X2 3800
19.02.2006  
 




Jac
de
Lad
Hallo Peter,

das ist mir jetzt ehrlich unbegreiflich, denn bei mir kommt immer das richtige Ergebnis (95415124894145.2031). Egal ob compiliert oder im Interpreter oder so. Hast du vielleicht eine Vorstellung woran das bei dir liegen potuto???

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
19.02.2006  
 




Jac
de
Lad
Wird es gewünscht, dass Parcival bei einer Funktion, die eine ntürliche Zahl vorraussetzt (z.B. die stochatischen Funktionen) eine Fehlermeldung ausgegeben wird, wenn die Zahl Nachkommastellen hat? Ich will das jedenfalls so einbauen (alternativ, und daran werde ich jetzt ebenfalls evtl. arbeiten, potuto man auch bei bestimmten Fehlern, Meldungen unterdrücken und einfach weiterrechnen, bzw. wie in der Frage oben, einfach die Nachkommastellen abschneiden; quasi ein Set(ErrorLevel per Parcival).

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
19.02.2006  
 




Jac
de
Lad
So, ich hab jetzt so ne Art ErrorHandling eingebaut. Schaut dazu mal in der Aiuto nach, bzw. im beigelegten Quelltext.

Jac

53 kB
Kurzbeschreibung: Matheparser 0.3.12.30 (19.02.2006)
Hochgeladen:19.02.2006
Downloadcounter172
Download
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
19.02.2006  
 



Die Unit ist fehlerhaft und lässt sich mit XProfan9 nicht kompilieren. Es erscheint die Meldung Befehl nicht gefunden: PARAMTERS BIT&

Parameters ist falsch geschrieben.

Auch meldet XPSE bei den Beispielen Fehler.
 
19.02.2006  
 




Jac
de
Lad
Oje, ich hatte gehofft, dass nun endlich alle Fehler behoben seien, dabei habe ich einen neuen eingebaut.

@iF: Was per Fehler meinst du in meinen Beispielen? Bei mir ningelt XPSE zwar rum, aber es lässt sich einwandfrei compilieren und ausführen!

Jac

53 kB
Kurzbeschreibung: Matheparser 0.3.12a.31 (20.02.2006)
Hochgeladen:20.02.2006
Downloadcounter144
Download
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
20.02.2006  
 




Jac
de
Lad
Hallo Community!

Hier die erste 0.4-er-Version. Ich habe was feines, neues eingebaut. Probierts mal aus. Die neue Funktion ist aber noch nicht fertig, sonder è sich noch in der Testphase. Ich bin naturalmente weiterhin per alles (vor allem Fehler) offen!

Jac

56 kB
Kurzbeschreibung: Matheparser 0.4.0.32 (21.02.2006)
Hochgeladen:21.02.2006
Downloadcounter134
Download
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
21.02.2006  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

23.616 Views

Untitledvor 0 min.
Sven Bader31.08.2023
iF06.12.2020
RudiB.15.04.2020
kustg02.03.2020
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie