Domino 9 und frühere Versionen > Entwicklung
Mehrstellige Zahl in mehrere einzelne Variablen unterteilen
animate:
--- Zitat von: jens1979 am 11.01.04 - 21:18:07 ---Mein Hauptproblem ist das ich grad vor 1-2 Monaten angefangen habe mir ein bissel Script reinzuprügeln.
Im Klartext heist das wenn ich es in Script mache muss ich euch wieder auf die Nerven gehen und davor wollt ich euch verschonen ;D
--- Ende Zitat ---
das ist eigentlich keine große Sache.
du schreibst erst mal in "Prosaform", was du tun möchtest (den Agorithmus) und dann übersetzt du es in Script und die Forenbesucher helfen dir bei der Übersetzung.
jens1979:
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
animate:
also die Problembeschreibung ist fast schon sensationell.
Damit kann man was anfangen.
Ich bin leider nicht mehr ganz so wach und versuch morgen wieder zu helfen, vielleicht gibts noch fittere Menschen hier, die den Anfang machen
(übrigens ist das jetzt keine schwache Ausrede, ich bin echt am Ende)
jens1979:
@Thomas
hey kein Grund das du dich da irgendwie entschuldigst oder so. Die Hilfe hier ist wahnsinn. Und wenn ich noch drei Tage brauch bis ich es irgendwie mit eurer Hilfe hinbekomme ist das immer noch ungefähr 2 Wochen kürzer als das ich es selber hinbiege.
Danke erstmal und Gute Nacht
jens1979:
So ich hab jetzt noch mal ein bissel mit @Formula geschrieben ... bis auf das auseinandernehmen der Zahl klappt alles (hab jetzt einfach 10 Felder gemacht und geb die Zahl schon getrennt ein). Aber vieleicht hilft ja die @Formula beim umsetzen in LS.
Jens
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln