Hallo
Vielen Dank für deine ausführliche Erklärung Christian
Eine Sache ist mir aber noch unklar und zwar....
Delphi-Quellcode:
if pos('+',AsTerm) > 0 then
begin
sLinks := trim(copy(AsTerm,1,pos('+',AsTerm)-1));
sRechts := trim(copy(AsTerm,pos('+',AsTerm)+1,MaxInt));
Result := Calculate(sLinks) + Calculate(sRechts);
Sobald bei der If-Abfrage ein Wert größer 0 ausgegeben wird(was ja der Fall ist, wenn im Sring ein "+" vorkommt) folgt die "copy-funktion" beginnend bei 1. Nun stellt sich für mich die Frage, was denn passiert, wenn die Aufgabe lauten würde: 2*2+22 ??? Würde dann nicht der Teilstring mit dem 2*2 mitkopiert??
In der Praxis wohl nicht, denn die Funktion Calculate funktioniert in meinem Rechner einwandfrei.
Wo ist mein Denkfehler??
In wieweit müsste man die Funktion verändern, um auch mit negativen Vorzeichen rechnen zu können?
gruß tobias