Okay dann mach ich das mal. Hier also die 'Prosaform'
Meine Zahl ist eine Kontonummer. Diese kann von 2 bis 10 Stellen lang sein. Hierbei ist immer die letzte Stelle die Prüfziffer. Die 6 Ziffern davor werden zur Berchnung benötigt, wenn die Kontonummer kürzer als 7 Zeichen (also die Prüfziffer plus die 6 Berechnungsziffern) ist brauche ich nur die Stellen die vorhanden sind zur Berechnung.
Okay nun zur Berechnung: Wie gesagt die letzte Stelle ist die Prüfziffer, die brauche ich also erst ganz am Schluss die 2. Stelle von hinten wird mit 2 multipliziert, die 3. von hinten mit 3, die 4. mit 4, die 5. mit 5, die 6. mit 6 und die 7. von hinten mit 7. Jedes dieser Produkte wird nun addiert.
Das Ergebniss der Adition wird durch 11 (bei dieser Prüfziffernkontrolle immer durch 11 weil der Modulus auf 11 liegt) geteilt. Hierbei ist aber das Ergebniss der Division unwichtig sondern der Rest, d.h. ich muss eine Division mit Rest machen (in der Formelsprache @modulo, glaub ich).
Im letzten Schritt wird der Rest von 11 (Modulus ---> also auch wieder immer 11) subtrahiert. Das Ergebniss ist die Prüfziffer, dieses muss also mit der letzten Stelle der Kontonummer übereinstimmen.
Ein Beispiel:
KD.-Nr.: 1 5 8 4 2 1 9
Gewichtung: 7 6 5 4 3 2 P ---> P=Prüfziffer
-------------------------------------------
Produkt: 7 30 40 16 6 2
Die Summe des Produktes ist 101
101:11 = 9 Rest 2
Prüfziffer = 11-2 (Also Modulus geteilt durch den Rest)
Prüfziffer = 9
Sollte einmal Rest 0 bei einer Berechnung auftauchen so ist die Prüfziffer automatisch auch 0 genauso wie bei Rest 1.
Ich hoffe ich hab das jetzt ganz gut erklärt. Ich würde ja vieleicht sogar die Rechnung allein hinbekommen (außer wahrscheinlisch die Division mit Rest) aber für den Ansatz fehlt mir jegliche Idee.
Danke schonmal
Jens