| |
|
|
- 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:
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&!]). |
 |
|
| 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...! |
|
|
| 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 |
|
|
| |
|
|
|
 | Math.Compute 
Da Du eine Klasse nutzt hat nix mit dem XPSEschen Dokusystem zu tun. Aber mach wie Du denkst... |
|
|
| |
|
|
|
 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... |
|
|
| 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  |
|
|
| 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  |
|
|
| 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 | |
|
| 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  |
|
|
| 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  |
|
|
| 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  |
|
|
| 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 ▲ |
|
|
|