Forum: Programmieren allgemein
by athomas,
31. Okt 2009
hab den fehler entdeckt: die funktion isReal hat negative werte nicht als reale werte angesehen
also vielen dank für die tolle hilfe. hat mich echt weitergebracht :)
Forum: Programmieren allgemein
by athomas,
30. Okt 2009
also ich hab das mit den vorzeichen noch ergänzt, es will aber immernochnicht klappen:
//Vorzeichen
ende:=false;
i:=0;
if arr.count>1 then
begin
while not(ende) do
begin
if ( (i = 0)or(not(isReal(arr))) )and(arr='-')and(isReal(arr)) then
begin
Forum: Programmieren allgemein
by athomas,
30. Okt 2009
war auch mein erster gedanke:
(-2)*(-2) kommt aber auch -2 raus
Forum: Programmieren allgemein
by athomas,
30. Okt 2009
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:
//Produkt
ende:=false;
i:=1;
if arr.count>1 then
begin
Forum: Programmieren allgemein
by athomas,
30. Okt 2009
wenn ich doch aber i:=i+1;
i:=i mod (arr.count); mit i:=0 ersetze komm ich in ne endlos-schleife, oder hab ich dich falsch verstanden?
ach ja, das problem mit -- oder +- hab ich einfach mit stringreplace lösen können :)
aber was mir noch aufgefallen ist: x*(-4) oder x/(-4) funktioniert auch nicht
Forum: Programmieren allgemein
by athomas,
30. Okt 2009
danke schonmal für die schnelle antwort
ich hab deine tipps befolgt und die while-schleife von null gestartet:
//Differenz
ende:=false;
i:=0;
if arr.count>1 then
begin
while not(ende) do
begin
Forum: Programmieren allgemein
by athomas,
30. Okt 2009
Hallo zusammen,
ich sitz hier vor nem kleinen problem mit einem formelparser.
ich hab ne prozedur geschrieben, die einen klammerfreien ausdruck zerstückelt in zahlen und operatoren.
eine weitere prozedur soll dieses array in ne gleitkommazahl umwandeln. klappt soweit auch ganz gut, nur wenn ich ein negatives vorzeichen hab bekomm ich den fehler, dass der index das maximum meiner tstringlist...