Forum: Programmieren allgemein
Delphi
by Uwe Raabe,
28. Jun 2013
Ganz einfach: du verwendest eine zu alte Delphi-Version :wink:
function TForm1.LongMod(const Zahl: string; Divisor: Integer): Integer;
var
I: Integer;
begin
Result := 0;
for I := 1 to Length(Zahl) do begin
Result := (10*Result + Ord(Zahl) - Ord('0')) mod Divisor;
end;
Forum: Programmieren allgemein
Delphi
by Uwe Raabe,
27. Jun 2013
Ich vermute, die Zahl liegt als String vor. Dann kannst du die sogar Zeichenweise abarbeiten. Es gilt nämlich
(a + b) mod c = ((a mod c) + (b mod c)) mod c
Solange der Divisor noch als Integer darstellbar ist und damit das Ergebnis zwangsläufig auch, tut es auch somit folgende Funktion:
function LongMod(const Zahl: string; Divisor: Integer): Integer;
var