Seite 2 von 3

Re: Bonusübung 1.3

Verfasst: 4. Jan 2010 09:52
von m_stoica
Na ist doch naheliegend, dass das Gültigkeitsfeld angibt, bis wann der Ausweis gültig ist

Re: Bonusübung 1.3

Verfasst: 5. Jan 2010 12:56
von Christian_
ich hab jetzt einfach alle 4 prüfsummen überprüft.
wenn man mal eine hat ists ja nicht so schwer durch ein bisschen c&p die anderen auch zu machen

Re: Bonusübung 1.3

Verfasst: 7. Jan 2010 15:52
von Schildy
Irgendwie steh ich auf dem Schlauch.Also die 3 kleinen Prüfungen sind mir klar, aber wie wird das mit der Großen von allen Ziffern gemacht? Muss man da auch multiplizieren oder is das wirklich nur Prüfsumme der Ziffern?

Danke

Re: Bonusübung 1.3

Verfasst: 7. Jan 2010 15:59
von Patr0rc
In Wikipedia steht es nicht so dolle erklärt.
Wenn du die Prüfsummen der kleinen Teile (Seriennummer, Geburtstag, Ablaufdatum) schon gemacht hast, ist gut.
Die Prüfsumme über alle Ziffer der maschinenlesbaren Zone geht wie folgt:
Die zweite Zeile der maschinenlesbaren Zone aus dem Artikel von Wikipedia: wwww NNNNN n D yy MM dd X yy MM dd X N
Nun nimmst du als Multiplikatoren wieder 731... der Reihe nach über alle Ziffern dieser Zeile.
Also 7*w + 3*w + 1*w + 7*w + 3*N + 1*N + 7*N + 3*N + 1*N + 7*n + 3*y + 1*y + ... + 1*X mod 10 = N
Der Anfang sieht noch aus wie bei der ersten kleinen Prüfsumme. Dann bei 7*n wird's anders: Du gehst nämlich mit dem Schema 731... die ganze Zeile durch und nimmst das für die Ziffern. (Wenn also ein D oder ein < auftaucht, nicht, sondern nur bei Zahlen.)
Klarer geworden?

Re: Bonusübung 1.3

Verfasst: 7. Jan 2010 16:18
von Schildy
Super, Danke jetzt hab ichs. Ist auf Wiki wirklich nich so dolle erklärt. Vielen Dank nochma für die Erklärung. Hat mir echt weiter geholfen.

Re: Bonusübung 1.3

Verfasst: 7. Jan 2010 16:24
von Patr0rc
Kein Ding.
Ich bin auch erst halb verwzweifelt, weil ich die Erklärung auf Wiki erst falsch verstanden hatte. Dann habe gegooglet und noch eine bessere Erklärung gefunden ;)

Re: Bonusübung 1.3

Verfasst: 7. Jan 2010 16:31
von Schildy
Nochma um sicher zu gehen, müssen wir jetzt alle Tests machen oder nur die von dem Ablaufdatum wie es weiter vorne geschrieben ist?

Re: Bonusübung 1.3

Verfasst: 7. Jan 2010 16:35
von Patr0rc
Genau weiß es niemand, würde ich behaupten.
Rein so gesehen würde wahrscheinlich der Test der Prüfsumme über die zweite Zeile (also der "große" Test) reichen.
Ich hab alle Tests implementiert, denn man kann bestimmt eine Nummer für die zweite Zeile der maschinenlesbaren Zone konstruieren, wo der große Test richtig/gültig ist, obwohl zwischendrin eine der kleinen Prüfsummen falsch ist, und insgesamt der Pass dann ungültig ist...
Ich würde dir also empfehlen, alle Tests einzubauen, um auf "Nummer Sicher" zu gehen.

Re: Bonusübung 1.3

Verfasst: 7. Jan 2010 16:43
von Schildy
Dann eben so.
Alles klar, Danke die Zweite. :)

Re: Bonusübung 1.3

Verfasst: 7. Jan 2010 21:49
von newizz
frohes neues Jahr alle :!: :!: :wink:
ich hab ein kleines Problem oder großes lol
wie kann ich meine eingegebene Nummer in "pnr" kriegen..
ich kriege immer die ASCII-code entsprechend,gibt es einen Befehl ,der mir fie gebebene nummer oder letter gibt?
sonst muss ich jedesmal vergleichen :(

Re: Bonusübung 1.3

Verfasst: 7. Jan 2010 21:55
von Patr0rc
Hallo newizz.
Wenn du den Programmrahmen aus der Aufgabenstellung von Blatt 8 übernimmst, steht, wenn du in Zeile 31 angekommen bist, die Personalausweisnummer (besser: die komplette zweite Zeile der maschinenlesbaren Zone) in "pnr".
Du musst die Zeichen von "pnr" einzeln adressieren und somit stellenweise auslesen. Zumindest lasse ich einen Zähler hochzählen, mit dem ich zeichenweise auf "pnr" zugreife. (Vielleicht geht es auch anders, aber bei mir ging's damit ohne Probleme!)
Und natürlicherweise bekommst du alle Zeichen von "pnr" als ASCII-Nummer. Dafür ist ja die "a(s)ciiverschiebung" da, mithilfe derer du es korrigieren kannst...
Beantwortet das deine Frage(n) bzw. hilft dir das weiter?

Re: Bonusübung 1.3

Verfasst: 8. Jan 2010 00:41
von Michl
Kleiner Tipp: Subtrahiere 0x30 :)

Re: Bonusübung 1.3

Verfasst: 8. Jan 2010 13:02
von newizz
Patr0rc hat geschrieben: Und natürlicherweise bekommst du alle Zeichen von "pnr" als ASCII-Nummer. Dafür ist ja die "a(s)ciiverschiebung" da, mithilfe derer du es korrigieren kannst...
Beantwortet das deine Frage(n) bzw. hilft dir das weiter?
das ist genau mein Problem ,ich möchte wissen,ob ich jedesmal mit dieser ascii-nummer vergleichen muss und gibt es einen Befehl ,der schon in dezimal umwandelt?

Re: Bonusübung 1.3

Verfasst: 8. Jan 2010 14:11
von newizz
hab schon erledigt :!: :!: :!:

Re: Bonusübung 1.3

Verfasst: 8. Jan 2010 15:47
von Patr0rc
Ok. :D