Deutsch
Forum

Mathe-Parser

 
- Seite 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 große Verwendung für 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 für mathematische Ausdrücke zu schreiben. Ich denke, den könnt 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 (für 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 eine 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 für deine Hilfe! 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 Hilfe 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
Ladeanzahl341
Herunterladen
 
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  
 



 
- Seite 2 -



Jac
de
Lad
So, hab alles korrigiert, was mir über den Weg gelaufen ist. Und noch schnell ne Hilfe zusammengeschustert. Vielleicht kann der eine oder andere ja schon was damit anfangen. Ich hab die Funktionen auf 65 aufgestockt und noch ziemlich viele Bux gefunden. Läuft jetzt bei mir aber einwandfrei!

@iF: Ja ich waiß, aber da ich das als Klasse schreibe ist das Hilfeschreiben doch mir überlassen.

@Michael: Freut mich. Ich hoffe, du kannst was mit der Doku anfangen!

Jac

Ach ja, wenn jemand einen Namen für das Teil übrig hat...ich bin für alles offen. Mir ist noch kein besserer eingefallen...!

28 kB
Kurzbeschreibung: Matheparser 0.3.1.17 (12.02.2006)
Hochgeladen:12.02.2006
Ladeanzahl85
Herunterladen
 
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
12.02.2006  
 




Rolf
Koch
Hi Jac,

kommt echt super. Bis dato konnte ich sowas zwar noch nie gebrauchen, aber irgendwann kanns ja mal sein
Mir gefällt aber die Logik, welche dahinter steckt!
Naja Dein gewählter Name ist wirklich das was es macht.
OK ein paar Spinnereien ;):
Resrap-Ehtam *lol* oder
Number Analyze
Math Analyze

hmm garnicht so einfach für sowas einen Namen zu finden *lol*
Rolf
 
12.02.2006  
 



Math.Compute

Da Du eine Klasse nutzt hat nix mit dem XPSEschen Dokusystem zu tun. Aber mach wie Du denkst...
 
13.02.2006  
 




Dietmar
Horn
Hallo Jac,

einfach genial, diese Unit!

Dafür finde ich bestimmt sinnvolle Anwendungen.

Hinweis zur Dokumentation:

2^3+2 ergibt 8 dürfte nicht stimmen, denn 2 hoch 3 plus 2 ergibt 10.

Vollkommen(x)
Ermittelt ob x eine vollkommene Zahl ist (x ist mit sich selbst befreundet)

Mein Mathematikstudium liegt zwar schon ziemlich genau 30 Jahre zurück, aber von einer vollkommenen Zahl bzw. einer mit sich selbst befreundeten Zahl habe ich bis jetzt noch nie etwas gehört. Was ist das? Könnte mich da vielleicht mal jemand aufklären?

Das mangelnde Interesse wird sich sicherlich im Laufe der Zeit noch legen, denn Qualität hat sich bis jetzt immer durchgesetzt! Auch bei XPSE und XPIA hat das ja ein ganzes Weilchen gedauert, bis viele Leute was damit anzufangen wußten.

Auf alle Fälle werde ich diese Unit zu gegebener Zeit den Schülern in meinen Programmierkursen vorstellen. Blutige Anfänger werden dafür vielleicht nicht gleich eine Verwendung haben, denn trigonometrische Funktionen und Logarithmen werden ja auch erst im Mathematikunterricht der 10. Klasse behandelt, Variationen und Fakultäten gar erst in der Abiturstufe. Aber weil gerade Programmieranfänger meiner Erfahrung nach zunächst zu 95 Prozent in Richtung Spieleprogrammierung drängen, werden diese Leute wahrscheinlich sehr schnell den Nutzen der in der Unit enthaltenen Routinen erkennen.

Ein kleiner Wermutstropfen:

Weil Du die Funktionen nur als Unit zur Verfügung stellst, sind davon automatisch erst mal alle meine Programmieranfänger ausgegrenzt, denn mit denen kann ich vorläufig nur mit Profan² 6.6 beginnen. Ich würde es jedenfalls sehr begrüßen, wenn Du den Parser auch als DLL zur Verfügung stellen könntest, falls Du den Code nicht veröffentlichen möchtest. Oder anderenfalls dann als INC (ohne Klassen). Ich weiß, ich könnte die Schüler auch auf aktuellere Shareware-Versionen oder die SE-Version verweisen, aber mit deren Einschränkungen ist m.E. leider kein vernünftiges Arbeiten möglich.

Gruß
Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
13.02.2006  
 




Jac
de
Lad
Hallo Leute. Hui auf einmal ist hier jede Menge los. Also:
Ich spiele mit dem Gedanken den Quelltext zu veröffentlichen, aber frühestens wenn ich eine Version 1.0 rausbringe. Dann kann jeder seinen Senf dazugeben (vor allem Optimierungen, davon dürfte es jede Menge geben), aber ich würde darum bitten, dass ich, bevor die Inc oder was auch immer dann überall in einer anderen Version auftaucht, darüber entscheiden kann, was verändert wird oder nicht. Ich denke, das ist irgendwie verständlich, schließlich steckt hier jede Menge Arbeit und Herzblut drin.

Eine DLL kann ich leider nicht draus machen, da ich keine so große Ahnung von C++ oder Delphi oder gar Assembler habe, als dass ich das ganze umsetzen kann.

Im Moment habe ich grad wieder Fehler entdeckt und baue drei neue Funktionen ein:
Math.Table - mit Startwert, Endwert und Step kann hier eine Gleichung mit einer Variable mehrmals ausgrechnet werden
Math.Sum - bildet die Summe einer Sequenz (quasi die Summe aller Werte von Math.Table)
Math.Product - bildet das Produkt einer Sequenz (wie Math.Sum, nur eben Produkt)

Mein langfristiges Ziel ist es, die Rechenungenauigkeit von Profan zu umgehen (6 Nachkommastellen) und noch viel einzubauen (imaginäre Zahlen, Lösen von Gleichungssystemen, Integrale, Differentialrechnung...ja am Ende sogar das Zeichnen von Graphen, eventuell auch in 3D). Aber mal sehen, das wird noch dauern.

Speziell @Dieter: Das mit 2^3+2 ist nur ein Fehler der Dokumentation, der Parser berechnet es natürlich richtig. Ich habe beim Ausprobieren auch gleich noch einen Fehler entdeckt. Ich überlege mir noch, ob ich ihn in eine Inc umschreibe, aber meiner Meinung nach hat sich das mit eine Klasse nun mal am besten gemacht, da nicht nur das Ergebnis sondern auch Fehlermeldungen und so zurückgegeben werden und ich nicht so viel von globalen Variablen in eine Unit halte und außerdem Probleme auftreten können, wenn mehrere terme ausgrechnet werden müssen, dann müssen die Rückgabewerte immer sofort irgendwo anders gespeichert werden.
Vollkommene Zahlen sind mit sich selbst befreundet. Kannst ja mal in Wikipedia nachschauen. Nun, das ist natürlich mehr eine Spielerei als wirklich für meinen Parser nötig, aber ich habs halt mit eingebracht. Demnächst werde ich noch merkwürdige und abundante Zahlen einbringen (siehe auch Wikipedia), aber wie gesagt, das braucht eigentlich kein Mensch.

@alle die interessiert sind: Bis jetzt hat noch niemand Fehler gemeldet, ich selbst entdecke aber andauernd welche. Also postet (aber nur wenn ihr wirklich Fehler entdeckt!)!!!

Da ich, wie gesagt, noch einige Fehler entdeckt habe, werde ich heute abend eine neue, korrigierte und wie oben beschrieben etwas erweiterte Version posten. Aber erst so gegen um 9, da ich meich jetzt noch um meine Tochter kümmern muss!

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
13.02.2006  
 




Jac
de
Lad
Hallöle!

So, hab grad mal wieder ne Menge Fehler weggebügelt und weggetippt. Hab auch einiges Neues eingebracht, steht in der Doku, rot angestrichen. Hm, kann sein, dass in der letzten Version noch nichts über die Variablen stand, die waren da aber schon vorhanden!
Die neue Funktion .Table könnte für einige von euch interessant sein (obwohl man das auch im Prog schreiben könnte, ist so aber sehr bequem!).
Das Ganze wird jetzt vorerst die letzte Version sein, ich brauch jetzt ein paar Tage um die Treeview.pcu zu schreiben. Die werde ich in ein paar Tagen veröffentlichen. Aber alles zu seiner Zeit. Also schaut mal rein!

Jac

PS: Im Moment favorisiere ich den Namen Parcival...

33 kB
Kurzbeschreibung: Matheparser 0.3.5.19 (13.02.2006)
Hochgeladen:13.02.2006
Ladeanzahl75
Herunterladen
 
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
13.02.2006  
 




Jac
de
Lad
Hallo Leute!

Hm, könnt ihr eventuell einen neuen Thread für das Shareware/Vollversions-Problem aufmachen? Bitte nicht übel nehmen, aber ich hatte gehofft, dass hier wirklich nur über meine Unit diskutiert wird!

Und übrigens hat sie bereits 796 Codezeilen, da macht sich eine Beschränkung in der Shareware- oder Schüleredition oder was auch immer auf 1000 Programmzeilen nicht gut.

Hab grad noch einiges eingebaut:
- etliche Fehler durch falsche Argumente, also Werte, die nicht definiert sind, werden abgefangen
- neue Funktionen: Digits und Reziproke
- neue Variable: %Ans%

So, ich habe auch keine (!) Fehler mehr entdecken können. Wenn ihr mir nichts meldet, gehe ich jetzt einfach mal davon aus, dass ich keine Fehler mehr eingebaut habe. Im Moment konzentriere ich mich jetzt darauf, eine bessere Hilfe zu schreiben.
Also, ich melde mich wieder...

Jac

36 kB
Kurzbeschreibung: Matheparser 0.3.6.21 (14.02.2006)
Hochgeladen:14.02.2006
Ladeanzahl60
Herunterladen
 
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
14.02.2006  
 




Jac
de
Lad
Ich nochmal!

Hab grad noch was geupdated:
- Berechnung von pseudvollkommenen Zahlen
- aktualisierte Hilfe (einiges wird jetzt deutlich besser erklärt, ich hoffe, das hilft denen weiter, die mit einigen Funktionen noch nichts anfangen konnten)

Jac

42 kB
Kurzbeschreibung: Matheparser 0.3.7.22 (14.02.2006)
Hochgeladen:14.02.2006
Ladeanzahl72
Herunterladen
 
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
14.02.2006  
 




Michael
Wodrich
Mit der 0.3.7.22er getestet:
KompilierenMarkierenSeparieren
term$ = "((2+3+15-10)*sqr(2)-4)"  10 * 4 - 4 = 36 (und nicht 40)
term$ = "sqr(2)-4" 4 - 4 = 0 (und nicht 4)
mithin wird die negative Zahl hinter der Klammer nicht erkannt
term$ = "sqr(5)-10*2"  hier sieht man es ganz deutlich: es wird sqr(5)*2 berechnet
term$ = "(10)-2"
term$ = "(10)72"  liefert KEINEN Fehler (was wird da berechnet?) 10.0001 ?
term$ = "(10)-(5)"  liefert EINEN Fehler (warum? Klammern auflösen, und gut)

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
16.02.2006  
 




Jac
de
Lad
Hallo Community!

@Michael: Oje, ich schau heute abend gleich mal nach...!

So, ich hab wieder weitergemacht und folgendes ist dabei rausgekommen:
- Bugfix der Funktion Prim(x)
- Anzahl der Nachkommastellen nicht mehr von Set(Decimals,...) abhängig
- Kollisionen mit Whileloop im Hauptprogramm ausgemerzt
- Funktion lightdefizient eingebaut (war nicht drin, obwohl die Hilfe das angab

Somit nähere ich mich jetzt der Version 1.0, neues will ich vorerst nicht einbauen, nur noch bugfixen. Wenn 1.0 dann stabil läuft bzw. richtig rechnet, werde ich den anderen Kram einbauen!

Jac

42 kB
Kurzbeschreibung: Matheparser 0.3.9.24 (17.02.2006)
Hochgeladen:17.02.2006
Ladeanzahl74
Herunterladen
 
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
17.02.2006  
 




Jac
de
Lad
Hallo Community!

@Michael: Ich habs behoben. Und gleich noch ein paar Fehler mehr gefunden. Danke für den Hinweis, ist mir gar nicht aufgefallen!!!

Jac

43 kB
Kurzbeschreibung: Matheparser 0.3.10.25 (12.02.2006)
Hochgeladen:17.02.2006
Ladeanzahl103
Herunterladen
 
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
17.02.2006  
 




Jac
de
Lad
Hallo Community!

Hier eine neue korrigierte Version:
- 3 neue Funktionen (ArabToRoem, FracPC und Base)
- einige Bugfixes

Jac

46 kB
Kurzbeschreibung: Matheparser 0.3.11.26 (17.02.2006)
Hochgeladen:17.02.2006
Ladeanzahl54
Herunterladen
 
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
17.02.2006  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

25.522 Betrachtungen

Unbenanntvor 0 min.
Sven Bader31.08.2023
iF06.12.2020
RudiB.15.04.2020
kustg02.03.2020
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


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