stimmt ja, hab ich wohl übersehen: wenn ich die funktion delete aufrufe verschiebt sich ja das ganze array
also das addieren und subtrahieren funktioniert jetzt, aber ich hab jetzt ein problem beim multiplizieren mit negativen zahlen:
Delphi-Quellcode:
//Produkt
ende:=false;
i:=1;
if arr.count>1 then
begin
while not(ende) do
begin
if (arr[i]='*') then
begin
arr[i-1]:=floattostr(strtofloat(arr[i-1])*strtofloat(arr[i+1]));
arr.delete(i);
arr.delete(i);
i:=i-2;
end;
ende:=true;
for j:=0 to arr.count-1 do
if arr[j]='*' then
begin
ende:=false;
break;
end;
i:=i+1;
end;
end;
wenn ich -2 * -2 rechne gibt er mir -2 aus, als ob er -* als einen unbekannten operator ansehen würde