Suchergebnisse

Suchergebnisse 1-18 von insgesamt 18.

  • Benutzer-Avatarbild

    Beschreibung: MathPro ist ein Formelparser, der sowohl normale Formeln wie z.B. "sin(45 + 45) -312 * (((3) + 3) / 2)" ausrechnen kann sowie kompliziertere Formeln mit Vektoren. Er ist ungefähr 6x schneller als das MSScriptControl und ungefähr doppelt so schnell wie der QuadSoft Expressionparser (s. Beispielprojekt, da ist der Vergleich nochmal leicht möglich). Nutzung Einen Verweis auf die Lib setzen und dann mit dieser Methode Terme ausrechen lassen: Quellcode (6 Zeilen) Oder mit dem oben genan…

  • Benutzer-Avatarbild

    Danke^^ Herausforderung steht Mir ist klar, dass dein Parser schon ein paar Jährchen auf dem Buckel hat, aber ich dachte mir der Vergleich wäre doch ganz interessant, da das MSScriptControl sowieso ziemlich langsam ist und deiner der beste war den ich kannte^^

  • Benutzer-Avatarbild

    Du hast keine Chance Falls du mathematisches Runden meinst, kann man da nicht einfach Math.Round nutzen? Das gibt genau die Möglichkeit mit zwei Parametern die Rundung zu bestimmen.

  • Benutzer-Avatarbild

    Einfach CIL direkt zu schreiben wäre auch zu einfach (Falls das gemeint ist) Die eigentlichen Zielplattformen meines Parsers sind abgesehen davon Windows Phone und Windows RT. Von daher kann ich solche Funktionen gar nicht nutzen^^ Habe jetzt mal einen neuen Konstruktor implementiert, bei diesem Aufruf: Quellcode (1 Zeile) Rundet MathPro die trigonometrischen Funktionen nicht mehr.

  • Benutzer-Avatarbild

    @Mangafreak1995 Okay schonmal danke, dass du dich ein bisschen damit befasst hast CharIsBracket hab ich jetzt gekürzt. Neues CharIsNumber: Quellcode (5 Zeilen) Beim zweiten: Das ändere ich, sobald ich die Architektur des Übersetzers überarbeite (Betrifft ja nicht den eigentlichen Rechner an sich, sondern nur den Teil zur Übersetzung der Infixnotation. Da weiß ich gerade nicht genau was an dem Code falsch bzw. nicht ideal ist. Meinst du die Angewohnheit immer noch ein == true hinter booleans zu s…

  • Benutzer-Avatarbild

    Zitat von Lukas: „Wieso nimmst du nicht gleich Char.IsDigit/.IsNumber?“ Danke, damit läuft es jetzt viel unkomplizierter Zitat von jvbsl: „Vorallem ist Convert langsam. Sollte bei C# und char nicht auch nen cast gehen?“ Habe ich mal ausprobiert, hat aber keinen wirklichen Geschwindigkeitsunterschied gegeben. Habe jetzt die Lösung von Lukas genommen, auch auf die Gefahr hin, dass ich das auf anderen Plattformen nicht auf diese Weise nutzen kann Ich werde nachher mal die neue Version (Dann auch mi…

  • Benutzer-Avatarbild

    So die Methode ist nun geschrumpft und nutzt die Char-Klasse: Quellcode (4 Zeilen) Und falls ich expandieren will gibt es ja immer noch IsNumber

  • Benutzer-Avatarbild

    Das stimmt natürlich, hab es mal direkt eingetragen

  • Benutzer-Avatarbild

    Mir wird gerade bewusst, wie wenig ich eigentlich über den Datentyp Char weiß

  • Benutzer-Avatarbild

    Danke schonmal für den Bugreport. Der Bug entsteht dadurch, dass im letzten Update anscheinend (-1) keine Zahl ist, sondern eine Rechnung null - 1. Von daher kann das ganze nicht ausgerechnet werden. Ich werde das mal fixen Die Parserlanguage habe ich mir eigentlich nur zur Kommunikation ausgedacht und sie ist wirklich auf keinen Fall dazu gedacht, dass die ein Mensch lesen soll OOP wurde exakt so umgesetzt wie du geschrieben hast... Im nächsten Update kann dann auch mit Vektoren aus dem Term ge…

  • Benutzer-Avatarbild

    Welche ist deine neuste .Net Version?

  • Benutzer-Avatarbild

    Die Express Versionen gibt's immer kostenlos. Aber du kannst auch kurz probieren, ob es mit der Lib im Anhang läuft. Da habe ich einfach kurz ein paar Sachen über Suchen & Ersetzen geändert, damit es auch auf dem niedrigen FW läuft.

  • Benutzer-Avatarbild

    Hmm das ist komisch, wenn ich genau das eingebe, bekomme ich 479,16 raus, da in dem Term ja hinten noch eine 2 vorhanden ist. Den eigentlichen "Termleser" hab ich extra so programmiert, dass ihn möglichst wenig aus der Fassung bringt. Aktuell arbeite ich jedoch an einer Methode, die Fehler im Term erkennt und sie auch nach Möglichkeit korrigiert. Dafür müsstest du dann aber Visual Studio mal updaten, da ich persönlich keine Updates mehr für FW 3.0 rausbringe (wäre mir dann einfach zu viel Arbeit…

  • Benutzer-Avatarbild

    @Artentus Danke @nikeee13 Ich stelle mir die Fehlererkennung eher so vor: VB.NET-Quellcode (5 Zeilen) Da die Rechnungen ja auch 400 automatische Werteberechnungen sein könnten (Graphenzeichner usw.) und bei solchen Anwendungsszenarien würde man dann ja auch immer (unnötigerweise) die Fehlererkennung durchlaufen lassen. Abgesehen davon sind Fehleingaben mit Buchstaben keine wirklichen Fehleingaben, da diese später als Variablen erkannt werden sollen. (x,y,z -> Laufvariablen und alles andere Formv…

  • Benutzer-Avatarbild

    Stimmt eigentlich, da hab ich gar nicht dran gedacht^^ Dann bleibe ich doch lieber bei der reinen Fehlererkennung

  • Benutzer-Avatarbild

    Zitat von nikeee13: „ C-Quellcode (9 Zeilen) Natürlöich könntest du es vorerst auch ohne Unbekannte machen, aber das ist lange nicht so spannend. “ Bisher werden Unbekannte noch gar nicht unterstützt^^ Kommt aber bald hinzu Dein Vorschlag ist eine schöne Sache für das Ausrechnen der eingegebenen Funktion bzw. die Berechnung von Funktionswerten an bestimmten Stellen. Ich gucke mal wie ich die Variablen am besten in den Parser reinkriege. (wenn kein Wert zugewiesen ist muss die Variable ja auch so…

  • Benutzer-Avatarbild

    Das ist auch eine gute Idee, das könnte ich bei den Vektoren eigentlich auch machen. Die einzelnen Werte können dann auch noch aus Funktionen bestehen^^ Zumindest bei den Variablen muss ich dann aktuell nur den Typ von double zu Expression ändern. Bei den Vektoren gucke ich mal, wo ich überall noch Änderungen machen muss. So sieht die Liste aus, nachdem der Term 9a+4-2 eingelesen wurde.

  • Benutzer-Avatarbild

    Aktuell finde ich es am besten, wenn man einfach Methoden für beide Fälle hat. Aber das ist etwas, was sehr wenig mit dem eigentlichen Rechnen zutun hat. Von daher werde ich sowas wahrscheinlich erst kurz vor dem Beginn der Appentwicklung implementieren. (Vllt. muss ich ja noch was an MathExpression ändern, dann müsste ich ja solche Methoden auch neu schreiben) So stelle ich mir die Nutzung der fertigen Lib vor: Für den, der nur Exceptions haben will: C-Quellcode (1 Zeile) Für den, der Autokorre…