Forum: Object-Pascal / Delphi-Language
by alzaimar,
20. Okt 2009
Danke für den Hinweis. Ich nehm den code oben mal raus und prüfe, wieso das so ist.
Verbesserter Code
function Eval(Term: string): Integer;
function _Eval(term: string; var i: Integer): Integer;
const
isNone = 0;
isNum = 1;
isOp = 2;
Forum: Object-Pascal / Delphi-Language
by alzaimar,
20. Okt 2009
Wie würdest Du die Cursortasten bzw. 'Backspace' umsetzen? :mrgreen:
Nee, im Ernst: Mit meiner Schleife geht das eins-fix-drei, denn man muss ja nur die beiden Stacks 'global', d.h. als private Felder in eine Klasse packen und dem Evaluator eine 'ProcessChar'-Methode spendieren, die ja nur aus dem Schleifenrumpf besteht. Et voilá: Fertig ist der Live-Rechn-o-mat.
Forum: Object-Pascal / Delphi-Language
by alzaimar,
19. Okt 2009
So ähnlich hab ich das ja auch gemacht. Nur eben tu ich so, also ob der String schon da wäre. Also ich tu na nich so, denn der Strinque ist ja schon da. Ich prozessiere also Zeichen für Zeichen von links nach rechts, mach kein Look-Ahead und auch sonst keine Tricksereien.
Nur gefrickelt ist es halt. Soll eine Stackmaschine darstellen (ops = Operandenstack, numStack = Zahlen).
Ich glaube,...
Forum: Object-Pascal / Delphi-Language
by alzaimar,
19. Okt 2009
Oder
SL in
oder
Pos('*/+-',SL)<>0
:stupid:
Dein Code kann aber keine Klammern, oder?
Ich hab hier was....
Code entfernt, da er nicht richtig funktioniert