Kapitel Kapitel55 Fehlererkennende FehlererkennendeCodes Codes Inhalt Inhalt 5.1 5.1Grundlagen: Grundlagen:Was Wassind sindVehler? Vehler? 5.2 5.2Vertuaschungsfehler Vertuaschungsfehler 5.3 5.3Der DerISBN-Code ISBN-Code 3-406-45404-6 3-406-45404-6 5.4 5.4Der DerEAN-Code EAN-Code(„Strichcode“) („Strichcode“) © Beutelspacher Juni 2004 Seite 2 Kapitel 5 Seite 1 1 5.1 5.1Grundlagen: Grundlagen:Was Wassind sindVehler? Vehler? Bei Beider derSpeicherung Speicherungund undÜbertragung Übertragungvon vonDaten Daten(Texten, (Texten,Zahlen) Zahlen) entstehen Fehler: Zeichen können verändert werden, vertauscht entstehen Fehler: Zeichen können verändert werden, vertauscht werden, werden,wegfallen wegfallenusw.: usw.:Vehler, Vehler,Feler, Feler,Fehlerrr, Fehlerrr,... ... Definition: Definition:Ein EinFehler Fehlereines einesTextes Textes(d.h. (d.h.Buchstaben Buchstabenoder oder Zahlenfolge) Zahlenfolge)besteht besteht(für (füruns) uns)darin, darin, dass dassein einoder odermehrerer mehrererZeichen Zeichenverändert verändertwerden werden (d.h. zu anderen Zeichen werden). (d.h. zu anderen Zeichen werden). Ziel: Ziel:Der DerEmpfänger Empfängersoll sollerkennen erkennenkönnen: können: ob ein (oder mehrere) Fehler passiert ob ein (oder mehrere) Fehler passiertsind sind(Fehlererkennung) (Fehlererkennung) wie wiedie dieOriginalzeichen Originalzeichenaussehen aussehen(Fehlerkorrektur). (Fehlerkorrektur). © Beutelspacher Juni 2004 Seite 3 Kapitel 5 Die DieMethode Methode Grundidee: Grundidee: Man Manfügt fügtder derNachricht Nachrichtetwas etwashinzu, hinzu, eine „Kontrollinformation“, die dazu dient, eine „Kontrollinformation“, die dazu dient, eventuelle eventuelleÜbertragungsfehler Übertragungsfehlerzu zuerkennen. erkennen. Beispiele: Beispiele: Namen Namen buchstabieren buchstabieren („Emm („Emmooenn ennenn ennte teaage“) ge“) Buchstabieralphabete Buchstabieralphabete(„A („Awie wieAnton, Anton,BBwie wieBerta, Berta,...“) ...“) Natürliche NatürlicheSprachen Sprachensind sind redundant redundant(haben (habenüberflüssige überflüssige Information): Information):man man vrsteht vrsteht alls, alls,auc auc wnn wnneinge eingeBchstbn Bchstbnfhln. fhln. Selpst Selpstwen wengroppe groppe recktscreib recktscreibFelr Felrauftren, auftren,ged geddr drßinn ßinnnich nichfärlohn. färlohn. © Beutelspacher Juni 2004 Seite 4 Kapitel 5 Seite 2 2 Die DiePrüfziffer Prüfziffer Beispiel: Beispiel:Wir Wirwollen wollen4-stellige 4-stelligeZahlen Zahlenübermitteln. übermitteln.Der DerEmpfänger Empfänger soll merken, ob die Daten korrekt sind. soll merken, ob die Daten korrekt sind. Da Daman mandies diesan anden denDaten Datenselbst selbstnicht nichterkennen erkennenkann, kann,fügt fügtman man eine Ziffer hinzu (man erhält also eine 5-stellige Zahl), und zwar eine Ziffer hinzu (man erhält also eine 5-stellige Zahl), und zwarso, so, dass dassdie dieQuersumme Quersummedieser dieserZahl Zahleine eineZehnerzahl Zehnerzahlist. ist. Die Ziffer an der hinzugefügten Stelle heißt Prüfziffer. Die Ziffer an der hinzugefügten Stelle heißt Prüfziffer. Konkret: Konkret:man manbestimmt bestimmtdie dieSumme Summeder derersten erstenvier vierZiffern Ziffernund und ergänzt ergänztdiese dieseSumme Summedurch durchdie diePrüfziffer Prüfzifferzur zurnächsten nächstenZehnerzahl. Zehnerzahl. Beispiel: Beispiel:Wenn Wenndie dieDaten Datendie dieZahl Zahl 1234 1234 sind, sind,so soist istdie diePrüfziffer Prüfziffer0; 0; der derDatensatz Datensatz 4813 4813 hat hatdie diePrüfziffer Prüfziffer4. 4. Übermittelt Übermitteltwird wirddann danndie dieFolge Folge 12340 12340 bzw. bzw.48134 48134 © Beutelspacher Juni 2004 Seite 5 Kapitel 5 Code Code Man Manspricht sprichtvon voneinem einemCode. Code.Im ImBeispiel Beispielist istder derCode Codedie dieMenge Menge aller 5-stelligen Zahlen, deren Quersumme durch 10 teilbar aller 5-stelligen Zahlen, deren Quersumme durch 10 teilbarist: ist: CC=={a {a11aa22aa33aa44aa55| | aai i∈∈{0, {0,1, 1,..., ...,9}, 9},aa11+a +a22+a +a33+a +a44+a +a55ist istdurch durch10 10 teilb.}. teilb.}. Die DieElemente Elementeeines einesCodes Codesnennt nenntman man Codewörter. Codewörter. Der DerEmpfänger Empfängerakzeptiert akzeptierteine eineNachricht Nachrichtnur, nur, wenn sie ein Codewort ist. wenn sie ein Codewort ist. Konkret: Konkret:Der DerEmpfänger Empfängersummiert summiertdie dieZiffern Ziffern(inklusive (inklusiveder der Prüfziffer). Er akzeptiert die Nachricht nur, wenn dies eine Prüfziffer). Er akzeptiert die Nachricht nur, wenn dies eine Zehnerzahl Zehnerzahlist. ist. Beispiel: 12340 Beispiel: 12340 wird wirdakzeptiert akzeptiert 12840 12840 nicht. nicht. © Beutelspacher Juni 2004 Seite 6 Kapitel 5 Seite 3 3 Definition Definitioneines einesParitätscodes Paritätscodes Definition. Definition.Man Manbezeichnet bezeichnetdie dieMenge Menge CC=={a {0, 1, ..., 9}, a1++ aa2++... + an ist durch 10 teilbar} {a11aa22... ... aann| | aai∈ i∈ {0, 1, ..., 9}, a 1 2 ... + a n ist durch 10 teilbar} als alsParitätscode Paritätscode der derLänge Länge nn zur zurBasis Basis10. 10. 5.1.1 5.1.1Satz: Satz:Jeder JederParitätscode Paritätscodeerkennt erkenntEinzelfehler. Einzelfehler. Beweis. Beweis. Sei Sei aa11aa22...a ...annein einCodewort. Codewort.Dann Dannist ist aa11+a +a22+...+ +...+aann durch durch 10 10 teilbar. teilbar.Es Essei seiein einFehler Fehlerder derersten erstenStelle Stelleaufgetreten. aufgetreten.D.h. D.h. aa1 1 wurde wurdeinineine eineandere andereZiffer Ziffer aa11' '≠≠ aa11 verwandelt. verwandelt. Angenommen, auch a ’a ...a wäre ein Angenommen, auch a1 ’a2 ...an wäre einCodewort. Codewort.Dann Dannwäre wäreauch auch 1 2 n aa1’+a 22++ ...+a ...+ann durch durch 10 10 teilbar. teilbar. 1’+a © Beutelspacher Juni 2004 Seite 7 Kapitel 5 Beweis Beweis(Fortsetzung) (Fortsetzung) Dann Dannist ist(2.1.1) (2.1.1)auch auchdie dieDifferenz Differenz (a (a11++ aa22++... ...++aann))––(a (a11' ' ++aa22++... ...++aann))==aa11––aa11‘ ‘ durch durch 10 10 teilbar. teilbar. Da a und 1 Da a1 und aa11‘ ‘ Ziffern Ziffernaus aus {0, {0,1, 1,..., ...,9} 9} sind, sind,muss mussgelten: gelten: –9 –9≤≤aa11––aa11‘ ‘≤≤9. 9. Die Dieeinzige einzigeZahl Zahlinindiesem diesemBereich, Bereich,die diedurch durch 10 10 teilbar teilbarist, ist,ist ist 0. 0. Also folgt: a – a ‘ = 0, d.h. a = a ‘. Also folgt: a1 – a1 ‘ = 0, d.h. a1 = a1 ‘. 1 1 1 1 Das Dasist istein einWiderspruch, Widerspruch,also alsoist ist aa11’a’a22...a ...ann kein keinCodewort. Codewort. © Beutelspacher Juni 2004 Seite 8 Kapitel 5 Seite 4 4 5.2 5.2Vertuaschungsfehler Vertuaschungsfehler Definition. Definition.Wir Wirsagen: sagen:Ein EinCode Code CC erkennt erkenntVertauschungsfehler, Vertauschungsfehler, falls für jedes Codewort a a ... a a ...a gilt: Die falls für jedes Codewort a1 a2 ... ai ai+1 ...an gilt: Diedurch durch VertauVertau1 2 i i+1 n schung (mit a ≠ a ))erzeugte Folge schungder derElemente Elemente aai i und und aai+1 i+1 (mit ai i ≠ ai+1 i+1 erzeugte Folge aa1aa2... ... aai+1aai...a ...an ist istkein keinCodewort. Codewort. 1 2 i+1 i n Die Diebisherigen bisherigenParitätscodes Paritätscodeserkennen erkennenkeine keineVertauschungsfehler. Vertauschungsfehler. Da 3 + 5 = 5 + 3 ist, kann man 35 → 53 nicht Da 3 + 5 = 5 + 3 ist, kann man 35 → 53 nichterkennen. erkennen. Wunsch: Wunsch:Die Dieeinzelnen einzelnenStellen Stellensollen sollenunterschiedlich unterschiedlich„stark“ „stark“inin die die Quersumme eingehen. Quersumme eingehen. Idee: Idee: Jede JedeStelle Stellewird wirdmit miteinem einem„Gewicht” „Gewicht”versehen. versehen.Die Die entsprechende Ziffer wird mit diesem Gewicht multipliziert, entsprechende Ziffer wird mit diesem Gewicht multipliziert, bevor bevorsie sieinindie dieQuersumme Quersummeeingeht. eingeht. © Beutelspacher Juni 2004 Seite 9 Kapitel 5 Beispiel Beispiel(Kontonummern, (Kontonummern,Loknummern Loknummern...) ...) (Konto)nummer (Konto)nummerohne ohnePrüfziffer: Prüfziffer: 11 88 99 88 22 88 00 11 Gewichtung Gewichtung 11 22 11 22 11 22 11 22 Produkte Produkte(Ziffer (Ziffer ×× Gewicht) Gewicht) 11 16 16 99 16 16 00 22 16 16 22 Dann Dannwird wirddie dieSumme Summe SS dieser dieserProdukte Produktebestimmt; bestimmt;es esergibt ergibtsich sich SS==11++16 16++99++16 16++22++16 16++00++22==62. 62. Diese DieseZahl Zahlwird wirddurch durchdie die Prüfziffer Prüfzifferzur zurnächsten nächstenZehnerzahl Zehnerzahl ergänzt. ergänzt. Die DiePrüfziffer Prüfzifferist istalso alsogleich gleich 8, 8, und die vollständige Kontonummer und die vollständige Kontonummerlautet lautet 189 189828 828018. 018. © Beutelspacher Juni 2004 Seite 10 Kapitel 5 Seite 5 5 Code Code11 Wir Wirbeschreiben beschreibendiesen diesenCode Code(„Code („Code1”) 1”)formal: formal: CC1 =={a {a11aa22aa33aa44aa55aa66aa77aa88aa99| | 1 10 teilt a + 2a + a 10 teilt a11 + 2a22 + a33++2a 2a44++ aa55++2a 2a66++ aa77++2a 2a88++ aa99}.}. Vorteil: Vorteil:In Indiesem diesemCode Code11können könnenwir wirprinzipiell prinzipiellVertauschungsfehler Vertauschungsfehler erkennen, da benachbarte Stellen verschieden gewichtet erkennen, da benachbarte Stellen verschieden gewichtetwerden. werden. Nachteil: Nachteil:Code Code11erkennt erkenntnicht nichtalle alleEinzelfehler! Einzelfehler! Wenn an einer mit 2 gewichteten Stelle Wenn an einer mit 2 gewichteten Stelledie dieZahl Zahl 88 mit mitder derZahl Zahl 33 vertauscht vertauschtwird, wird,so soliefert liefertdie die88den denBeitrag Beitrag16, 16,die dieZahl Zahl 33 den den Beitrag Beitrag 66 zur zurSumme Summe S; S;also alsoergibt ergibtsich sichdie diegleiche gleichePrüfziffer. Prüfziffer. Ebenso werden 7 ↔2, 6 ↔ 1, 5 ↔ 0 und 9 ↔ 4 nicht Ebenso werden 7 ↔2, 6 ↔ 1, 5 ↔ 0 und 9 ↔ 4 nichterkannt. erkannt. © Beutelspacher Juni 2004 Seite 11 Kapitel 5 Code Code22 Kontonummer Kontonummerohne ohnePrüfziffer: Prüfziffer: 11 Gewichtung 11 Gewichtung Produkte 11 Produkte(Ziffer (Ziffer ×× Gewicht) Gewicht) Quersummen Quersummendieser dieserProdukte Produkte 11 88 22 99 11 16 16 99 77 99 88 22 22 11 16 16 22 77 22 88 22 00 11 11 22 16 16 00 77 00 22 22 Dann Dannwird wirddie dieSumme Summe SS dieser dieserQuersummen Quersummenbestimmt: bestimmt: SS==11++77++99++77++22++77++00++22==35. 35. Diese DieseZahl Zahlwird wirddurch durchdie die Prüfziffer Prüfzifferzur zurnächsten nächstenZehnerzahl Zehnerzahl ergänzt. ergänzt. Die DiePrüfziffer Prüfzifferist istalso also5, 5, und unddie dievollständige vollständigeKontonummer Kontonummerlautet lautet 189 189828 828015. 015. © Beutelspacher Juni 2004 Seite 12 Kapitel 5 Seite 6 6 Code Code22erkennt erkenntEinzelfehler Einzelfehler 5.2.1 5.2.1Satz. Satz.Der DerCode Code22erkennt erkenntalle alleEinzelfehler. Einzelfehler. Beweis. Beweis. Stellen, Stellen,die diemit mit11gewichtet gewichtetsind: sind:o.k. o.k. (vergleiche (vergleiche3.2.1.) 3.2.1.) Wir Wirbetrachten betrachteneine einemit mit22gewichtete gewichteteStelle. Stelle.Zu Zuzeigen: zeigen:Die DieQuerQuersummen des Doppelten der Ziffern sind verschieden. (Das ist summen des Doppelten der Ziffern sind verschieden. (Das istder der Beitrag, Beitrag,der dervon vondieser dieserStelle Stelleinindie dieSumme Summe SS eingeht. eingeht.Wenn Wenndiese diese Zahlen Zahlenalle alleverschieden verschiedensind, sind,dann dannwerden werdenalle alleEinzelfehler Einzelfehlererkannt.) erkannt.) Ziffer Ziffer 00 11 22 33 44 55 66 77 Produkt Produkt(Ziffer (Ziffer×× Gewicht) Gewicht) 00 22 44 66 88 10 10 12 12 14 14 16 16 18 18 Quersumme Quersummedes desProdukts Produkts 00 22 44 66 88 11 33 55 88 77 99 99 © Beutelspacher Juni 2004 Seite 13 Kapitel 5 5.3 5.3Der DerISBN-Code ISBN-Code ISBN ISBN==Internationale InternationaleStandard StandardBuch BuchNummer Nummer Jede JedeISBN ISBNhat hatzehn zehnStellen, Stellen,die dieininvier vierGruppen Gruppeneingeteilt eingeteiltsind. sind. Erste ErsteGruppe: Gruppe: Sprachraum Sprachraum(0, (0,1: 1:englisch, englisch,2: 2:französisch, französisch,3: 3:deutsch, deutsch, ..., 88: italienisch, ...) ..., 88: italienisch, ...) Zweite ZweiteGruppe: Gruppe: Verlag Verlag(528: (528:Verlag VerlagVieweg) Vieweg) Dritte DritteGruppe: Gruppe: Nummer Nummerdes desBuches Buches(z.B. (z.B.16783: 16783:„In „InMathe Mathewar warich ich immer schlecht ...“). immer schlecht ...“). Vierte VierteGruppe: Gruppe: Prüfsymbol. Prüfsymbol. © Beutelspacher Juni 2004 Seite 14 Kapitel 5 Seite 7 7 Berechnung Berechnungdes desPrüfsymbols Prüfsymbols Sei Sei aa11aa22aa33... ... aa99aa1010 eine eineISBN ISBN(also (alsoist ist aa1010 das dasPrüfsymbol). Prüfsymbol).Dieses Dieses wird so bestimmt, dass die Zahl wird so bestimmt, dass die Zahl 10⋅a 10⋅a11++ 9⋅a 9⋅a22++ 8⋅a 8⋅a33++ 7⋅a 7⋅a44++ 6⋅a 6⋅a55++ 5⋅a 5⋅a66++ 4⋅a 4⋅a77++ 3⋅a 3⋅a88++ 2⋅a 2⋅a99++ 1⋅a 1⋅a1010 eine eineElferzahl Elferzahlist. ist.Das Dasbedeutet: bedeutet:Man Manbestimmt bestimmtdie dieZahl Zahl SS==10⋅a 10⋅a11++ 9⋅a 9⋅a22++ 8⋅a 8⋅a33++ 7⋅a 7⋅a44++ 6⋅a 6⋅a55++ 5⋅a 5⋅a66++ 4⋅a 4⋅a77++ 3⋅a 3⋅a88++ 2⋅a 2⋅a99 und undergänzt ergänztdiese diesedurch durchdas dasPrüfsymbol Prüfsymbol aa1010 zur zurnächsten nächsten Elferzahl. Elferzahl. Welche WelcheWerte Wertekann kann aa1010 annehmen? annehmen? 0, 0,1, 1,2, 2,3, 3,..., ...,99 oder oder 10. 10. Wenn sich 10 ergibt, so schreibt man X (römische Zehn). Wenn sich 10 ergibt, so schreibt man X (römische Zehn). © Beutelspacher Juni 2004 Seite 15 Kapitel 5 Qualität Qualitätdes desISBN-Codes ISBN-Codes Formale FormaleBeschreibung Beschreibungdes desISBN-Codes: ISBN-Codes: CCISBN =={a {a11aa22...a ...a1010| | ISBN 11 11 teilt teilt 10⋅a 10⋅a11++ 9⋅a 9⋅a22++ 8⋅a 8⋅a33++ 7⋅a 7⋅a44++... ...++3⋅a 3⋅a88++ 2⋅a 2⋅a99++ 1⋅a 1⋅a1010}.}. Dass Dass der der ISBN-Code ISBN-Codesuper superist, ist,sagt sagtder derfolgende folgendeSatz: Satz: 5.3.1 5.3.1Satz. Satz.(a) (a)Der DerISBN-Code ISBN-Codeerkennt erkenntalle alleEinzelfehler. Einzelfehler. (b) Der ISBN-Code erkennt alle Vertauschungsfehler (b) Der ISBN-Code erkennt alle Vertauschungsfehler ––sogar sogaran anbeliebigen beliebigenStellen. Stellen. © Beutelspacher Juni 2004 Seite 16 Kapitel 5 Seite 8 8 Beweis Beweis Beweis. Beweis. (a): (a):Übungsaufgabe. Übungsaufgabe. (b) (b)Wir Wirzeigen, zeigen,dass dassder derISBN-Code ISBN-Codejede jedeVertauschung Vertauschungder derersten ersten beiden Stelle erkennt. Sei dazu a a a ... a a eine ISBN. Also beiden Stelle erkennt. Sei dazu a1 a2 a3 ... a9 a10 eine ISBN. Alsoist ist 1 2 3 9 10 10⋅a 10⋅a11++ 9⋅a 9⋅a22++ 8⋅a 8⋅a33++ 7⋅a 7⋅a44++ 6⋅a 6⋅a55++ 5⋅a 5⋅a66++ 4⋅a 4⋅a77++ 3⋅a 3⋅a88++ 2⋅a 2⋅a99++ 1⋅a 1⋅a1010 eine einedurch durch11 11teilbare teilbareZahl. Zahl. Nun Nun mögen mögen die die ersten ersten beiden beiden Ziffern Ziffern vertauscht vertauscht werden; werden; es es entsteht entsteht also alsodie dieFolge Folge aa2aa1aa3... ... aa9aa10..Wir Wirkönnen können aa1 ≠≠ aa2 voraussetzen. voraussetzen. 2 1 3 9 10 1 2 Angenommen, Angenommen,auch auchdies dieswäre wäreein einCodewort. Codewort.Dann Dannwäre wäreauch auch 10⋅a 10⋅a22++ 9⋅a 9⋅a11++ 8⋅a 8⋅a33++ 7⋅a 7⋅a44++ 6⋅a 6⋅a55++ 5⋅a 5⋅a66++ 4⋅a 4⋅a77++ 3⋅a 3⋅a88++ 2⋅a 2⋅a99++ 1⋅a 1⋅a1010 eine einedurch durch 11 11 teilbare teilbareZahl. Zahl. © Beutelspacher Juni 2004 Seite 17 Kapitel 5 Beweis Beweis(Fortsetzung) (Fortsetzung) Zusammen Zusammenfolgt folgtmit mit2.1.2, 2.1.2,dass dass 11 11 auch auchfolgende folgendeZahl Zahlteilt: teilt: 10⋅a 10⋅a11++ 9⋅a 9⋅a22––(10⋅a (10⋅a22++ 9⋅a 9⋅a11))==aa11––aa22.. Nun Nunargumentieren argumentierenwir wirwie wieim imBeweis Beweisvon von3.4.1: 3.4.1: Da a und a beide zwischen 0 und 9 liegen, Da a1 und a2 beide zwischen 0 und 9 liegen, 1 2 ist istdie dieDifferenz Differenz aa11––aa22 eine eineZahl Zahlzwischen zwischen –9 –9 und und +9. +9. Die einzige durch 11 teilbare Zahl in diesem Bereich ist Die einzige durch 11 teilbare Zahl in diesem Bereich istaber aber 0.0. Daher Daherist ist aa11––aa22==0, 0,das dasheißt heißt aa11==aa22.. Dieser DieserWiderspruch Widerspruchzeigt, zeigt,dass dassder derISBN-Code ISBN-CodeVertauschungen Vertauschungender der ersten erstenbeiden beidenStellen Stellen100%ig 100%igerkennt. erkennt. © Beutelspacher Juni 2004 Seite 18 Kapitel 5 Seite 9 9 5.4 5.4Der DerEAN-Code EAN-Code EAN EAN== Europäische EuropäischeArtikel ArtikelNummer Nummer Ziele: Ziele:(a) (a)Schutz Schutzgegen gegenEinzelfehler Einzelfehlerund und(in (ingeringerem geringeremUmfang) Umfang) gegen Vertauschungsfehler gegen Vertauschungsfehler (b) (b)Nummer Nummersowohl sowohlmenschenmenschen-als alsauch auchmaschinenlesbar. maschinenlesbar. Methoden: Methoden:(a) (a)Prüfziffer Prüfziffer (b) Strichcode (Barcode) (b) Strichcode (Barcode)(für (fürLesbarkeit Lesbarkeitdurch durcheinen einenScanner) Scanner) Konsequenz: Konsequenz:In Inden den„Strichen“ „Strichen“steckt stecktdie diegleiche gleicheInformation Informationwie wieinin den den„Ziffern“; „Ziffern“;darin darinist istkeine keine„Geheiminformation“ „Geheiminformation“verborgen. verborgen. © Beutelspacher Juni 2004 Seite 19 Kapitel 5 EAN EAN Eine EineEAN EANhat hat13 13(oder, (oder,bei beikleinen kleinenArtikeln, Artikeln,8) 8)Stellen, Stellen, die in vier Gruppen eingeteilt sind. die in vier Gruppen eingeteilt sind. Erste ErsteGruppe Gruppe (2 (2 Ziffern): Ziffern):Land Land der der Herstellung Herstellung (00-09: (00-09:U.S.A., U.S.A., Canada, 30-37: Frankreich, 40-43: Deutschland, 50: U.K., Canada, 30-37: Frankreich, 40-43: Deutschland, 50: U.K.,54: 54: Belgien, Belgien,57: 57:Dänemark, Dänemark,76: 76:Schweiz, Schweiz,80-81: 80-81:Italien, Italien,90-91: 90-91: Österreich, Österreich,...) ...) Zweite ZweiteGruppe Gruppe (5 (5 Ziffern): Ziffern):bundeseinheitliche bundeseinheitlicheBeztriebsnummer Beztriebsnummer Dritte DritteGruppe Gruppe(5 (5 Ziffern): Ziffern):Herstellespezifische HerstellespezifischeArtikelnummer Artikelnummer Vierte VierteGruppe Gruppe(1 (1 Ziffer): Ziffer):Prüfziffer Prüfziffer © Beutelspacher Juni 2004 Seite 20 Kapitel 5 Seite 10 10 Die DiePrüfziffer Prüfzifferbeim beimEAN-Code EAN-Code EAN EANohne ohne Prüfz.: Prüfz.: 44 00 00 00 44 11 77 00 22 00 00 00 Gewichtung Gewichtung 11 33 11 33 11 33 11 33 11 33 11 33 Produkte Produkte 44 00 00 00 44 33 77 00 22 00 00 00 Dann Dannwird wirddie dieSumme Summe SS dieser dieserProdukte Produktebestimmt; bestimmt;es esergibt ergibtsich sich SS==44++00++00++00++44++33++77++00++22++00++00++00==20. 20. Diese DieseZahl Zahlwird wirddurch durchdie die Prüfziffer Prüfzifferzur zurnächsten nächstenZehnerzahl Zehnerzahl ergänzt. ergänzt. Die DiePrüfziffer Prüfzifferist istalso alsogleich gleich 0, 0, und die vollständige EAN lautet und die vollständige EAN lautet 40 4000417 0041702000 020000. 0. © Beutelspacher Juni 2004 Seite 21 Kapitel 5 Eigenschaften Eigenschaftendes desEAN-Codes EAN-Codes 5.4.1. 5.4.1.Satz. Satz.Der DerEAN EANCode Codeerkennt erkenntalle alleEinzelfehler Einzelfehler Der DerEAN-Code EAN-Codeerkennt erkenntnicht nichtalle alle(aber (aberdie diemeisten) meisten) Vertauschungsfehler. Vertauschungsfehler. Beweis: Beweis: Übungsaufgabe Übungsaufgabe Bemerkung: Bemerkung:Da Dabeim beimLesen Lesendurch durcheinen einenScanner Scannerpraktisch praktischkeine keine Vertauschungsfehler vorkommen, war es entscheidend, eine Vertauschungsfehler vorkommen, war es entscheidend, einesehr sehr gute guteEinzelfehlererkennung Einzelfehlererkennungzu zugewährleisten. gewährleisten. © Beutelspacher Juni 2004 Seite 22 Kapitel 5 Seite 11 11 Der DerStrichcode Strichcode Die DieÜbersetzung Übersetzungeiner einerEAN EANininden denmaschinenlesbaren maschinenlesbarenStrichcode Strichcode erfolgt auf raffinierte Art und Weise. erfolgt auf raffinierte Art und Weise. Zusätzliche ZusätzlicheZiele: Ziele:1. 1.Man Manmuss musserkennen erkennenkönne, könne,ininwelcher welcherRichtung Richtung die Ziffern gelesen werden (von vorne nach hinten o.u.). die Ziffern gelesen werden (von vorne nach hinten o.u.). 2. 2.Man Manmöchte möchtezwei zweiHälften Hälftenaus aus66Ziffern Ziffernhaben; haben;daher daherwird wirddie dieerste erste Ziffer Zifferimplizit implizitdurch durchdie dieandern anderncodiert. codiert.Konsequenz: Konsequenz:Man Manbraucht braucht verschiedene verschiedene Zeichensätze. Zeichensätze. Methode: Methode:Jede JedeZiffer Zifferwird wirdinineine eineFolge Folgevon vonsieben siebenweißen weißenund und schwarzen schwarzenStreifen Streifengleicher gleicherDicke Dickeübersetzt. übersetzt.(Diese (DieseStreifen Streifenfügen fügen sich sichzu zumehr mehroder oderweniger wenigerdicken dickenschwarzen schwarzenund undweißen weißenStreifen Streifen zusammen.) Siehe Tabelle auf der nächsten Folien. zusammen.) Siehe Tabelle auf der nächsten Folien. © Beutelspacher Juni 2004 Seite 23 Kapitel 5 Die DieTabelle Tabellefür fürdie dieStrichcodes Strichcodes © Beutelspacher Juni 2004 Seite 24 Kapitel 5 Seite 12 12 Prinzip Prinzipdes desStrichcodes Strichcodes Beobachtung: Beobachtung:Jedes JedesZeichen Zeichendes desZeichensatzes ZeichensatzesAAhat hateine eine ungerade Anzahl von schwarzen Streifen, aber bei B und ungerade Anzahl von schwarzen Streifen, aber bei B undCChat hat jedes jedesZeichen Zeicheneine einegerade geradeAnzahl Anzahlvon vonschwarzen schwarzenStreifen. Streifen. Tatsächlich Tatsächlichist istCCdas das„Komplement“ „Komplement“von vonA. A. Wie Wiewerden werdendie dieZiffern Ziffern aa11,, aa22,, aa33,,..., ...,aa1313 einer einerEAN EAN ininStrichmuster codiert? Strichmuster codiert? •• Die DieZiffern Ziffern aa88,, aa99,,..., ...,aa1313(also (alsodie diezweite zweiteHälfte) Hälfte)wird wirdstets stetsmit mit Zeichensatz C codiert. Zeichensatz C codiert. •• Die DieZiffern Ziffern aa22,, aa33,,..., ...,aa77 werden werdengemäß gemäßfolgender folgenderTabelle Tabellecodiert. codiert. Durch die Abfolge der Zeichensätze wird a automatisch codiert. Durch die Abfolge der Zeichensätze wird a1 automatisch codiert. 1 © Beutelspacher Juni 2004 Seite 25 Kapitel 5 Zeichensätze Zeichensätzefür fürdie dieZiffern Ziffern aa22,,aa33,,..., ...,aa77 aa1 1 aa2 2 aa3 3 00 11 AA AA AA AA 22 33 AA AA AA AA 44 55 AA AA BB BB 66 77 AA AA BB BB 88 99 AA AA BB BB aa4 aa5 4 5 AA AA BB AA BB BB BB BB AA AA BB AA BB BB AA BB AA BB BB AA aa6 6 aa7 7 AA BB AA BB AA BB BB AA BB AA BB BB AA AA AA BB BB BB AA AA © Beutelspacher Juni 2004 Seite 26 Kapitel 5 Seite 13 13 Abschließende AbschließendeBemerkungen Bemerkungen •• Die Die„langen“ „langen“Striche Strichesind sind„Trennzeichen“: „Trennzeichen“: Der Scanner merkt, wann Der Scanner merkt, wanner eranfangen anfangenund undwann wanner eraufhören aufhörenmuss. muss. •• Der DerScanner Scannererkennt erkenntdie dieReihenfolge Reihenfolgeder derZeichen: Zeichen: Das erste Zeichen (a ) wird in jedem Fall mit Das erste Zeichen (a2 ) wird in jedem Fall mit A, A,d.h. d.h.mit miteiner einer 2 ungeraden ungeradenAnzahl Anzahlvon vonschwarzen schwarzenStreifen Streifencodiert. codiert. Das letzte Zeichen (a ) wird dagegen immer Das letzte Zeichen (a1313) wird dagegen immermit mitZeichensatz Zeichensatz C, C, also einer geraden Anzahl von schwarzen Streifen codiert. also einer geraden Anzahl von schwarzen Streifen codiert. •• Der DerScanner Scannerzählt zähltdie dieschwarzen schwarzenStreifen Streifenim imersten erstenZeichen, Zeichen, welches er liest, und weiß dann, ob er von vorne nach welches er liest, und weiß dann, ob er von vorne nachhinten hinten o.u. o.u.liest. liest. © Beutelspacher Juni 2004 Seite 27 Kapitel 5 Seite 14 14