also das sollte jetzt bei dir Laufen ...
Delphi-Quellcode:
function tform1.Quotient(a, b: AnsiString): AnsiString;
var
c: Int64;
begin
if b = '0' then System.Error(reDivByZero);
Result := '0';
c := 0;
while Length(b) < Length(a) do
begin
c := c + 1;
b := b + '0'; // b := produkt(b, '10');
end;
while c >= 0 do
begin
while vergleich(b, a) <> 0 do
begin
Result := summe(Result, inttostr(trunc(power(10, c))));
a := differenz(a, b);
end;
c := c - 1;
Delete(b, Length(b), 1); // b := quotient(b, '10');
end;
end;
es gibt nur ein Problem ...
die Funktion summe rechnet falsch ...
und zwar wenn man sie einzeln benutzt, dann 1+1=2
aber in der schleife 0+1=1 ... 1+1=21 ... 21+1=221 .....
da ich aber bei deiner Summenfunktion einfach nicht durchseh, mußt'e den Fehler da wohl selber finden (hat vielleicht was mit den gloablen Variablen zu tun?
)
[add]
Problem gefunden ... du hast in Summe das result nicht initialisiert
ein result:=''; vor der Berechnung liefert Abhilfe.
und noch einen Tipp: das result wurde auch in anderen Funktionen nicht initialisert