Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#27

AW: Gauß-Verfahren - Matrix lösen

  Alt 1. Sep 2015, 09:03
Eine Langzahlarithmetik benötigt man auch bei der Ermittlung der Prüfziffer einer IBAN (aus BLZ und Konto-Nummer) sowie bei der Prüfung der Gültigkeit einer IBAN.
...
Wie will man mit "normalen" Delphi-Möglichkeiten prüfen, ob die 24-stellige Zahl Modulo 97 genau 1 ergibt ?
Ich habe das gelöst durch ein Nachbilden der schriftlichen Division, wie wir das früher in der Schule gelernt haben.
Dazu braucht man weder Langzahlarithmetik noch schriftliche Division, das Ganze ist im wesentlichen ein Einzeiler (den man selbstverständlich noch durch ein paar Checks etc aufhübschen kann):
Delphi-Quellcode:
program iban;
var
  i,m : integer;
const
  s : string = '700901001234567890131408';
begin
  m := 0;
  for i:=1 to length(s) do m := (m*10 + ord(s[i])-ord('0')) mod 97;
  writeln(s, ' mod 97 = ', m);
end.
Mit dem Ergebnis 700901001234567890131408 mod 97 = 1

Geändert von gammatester ( 1. Sep 2015 um 09:07 Uhr)
  Mit Zitat antworten Zitat