Forum: Programmieren allgemein
by Ultimator,
27. Nov 2005
*Groschen fall*
Danke, jetz hab ichs endlich verstanden :)
Den Code kriegst du ganz bestimmt, hast ja auch viel dazu beigetragen ;)
Aja: Bisher misst der Parser gerade mal 160 Zeilen.
Außerdem getrennte Tokenize-, Parse- und Lösungs-Funktionen, damit man nicht mehr machen muss als nötig, wenn man den Term einmal "getokenized" hat. Bin richtig stolz auf mich :lol:
Das stellt jetzt...
Forum: Programmieren allgemein
by Ultimator,
27. Nov 2005
So, jetz muss ich nochmal was fragen :stupid:
Ich pushe ja solang, bis ich auf einen schwächeren Operator komme.
Angenommen, ich hab
7-3/(5-4*2)
push 3 push - push 8 push / push (
Jetz hab ich die Klammer-Auf gepusht, also muss ich mich um den Teil in der Klammer kümmern.
Muss ich da jetzt immernoch weiter pushen, bis ich die Klammer-Zu gepusht hab?
Das mit den Klammern versteh ich...
Forum: Programmieren allgemein
by Ultimator,
23. Nov 2005
Ja, das klingt auch plausibel und vor allem verständlich :stupid:
Danke! Endlich hat mal jemand das in Worte gefasst, worüber ich schon tagelang überleg (eigentlich peinlich :oops: :lol:)
Wird schon klappen :thuimb:
Forum: Programmieren allgemein
by Ultimator,
23. Nov 2005
Das war schön ausführlich und gut erklärt, danke alzaimar :)
Allerdings sollte es nur ein kleiner Matheparser werden, ohne "Sprachfeatures" oder sowas *g*
Ich hab mir schon Routinen geschrieben, die mir eben true zurückgeben, wenn ein Zeichen ein Punkt-Operator, ein Strich-Operator oder so ist.
Außerdem wird ein Term bereits ordentlich zerlegt,
aus45*(60-18)+382/(+102)-3^897
zerlegt er also...
Forum: Programmieren allgemein
by Ultimator,
23. Nov 2005
Nein, Strings will ich nicht, ich will nur nen Matheparser ;)
Wie isses bei der Multiplikation, Division und (noch schlimmer :lol:) den Potenzen?
Wie lass ich das den Parser richtig auswerten, wo jetzt ein Minuszeichen dazugehört?
Forum: Programmieren allgemein
by Ultimator,
23. Nov 2005
Da liegt das Problem :mrgreen:
@Dax: Okay :lol:
Der Tokenizer soll das '-' also immer als ein Token ansehen?
Forum: Programmieren allgemein
by Ultimator,
23. Nov 2005
Da es hier in dem Thread ja um u.a. Tokenizer geht, muss ich gleich mal was fragen :stupid:
Bisher hab ich meinen Tokenizer soweit, dass er mir alles schön zerlegt: Klammern, Zahlen und natürlich auch Rechenzeichen.
Das Problem ist nur: Das Minus ist ja sowohl Rechenzeichen als auch ein Vorzeichen. Wie mach ich meinem Tokenizer klar, ob ein Minus als Vorzeichen oder als Rechenzeichen zu sehen...
Forum: Programmieren allgemein
by Ultimator,
30. Apr 2005
Du könntest dir eine Funktion schreiben, die dir zurückgibt, ob ein Zeichen eine Ziffer ist, ein + oder - oder * oder / Zeichen ist oder ein Buchstabe.
Dann durchläufst du mit ner while-Schleife (z.B. ob ein Zeichen eine Ziffer ist) den String und suchst nach Zahlen.
Dann machst du das ganze mit den Rechenzeichen und schaust, wie alles gerechnet werden muss.
Natürlich musst du auf Klammern...