Feladat: I.194 Korcsoport: - Nehézségi fok: -
Füzet: 2008/október, 419 - 422. oldal  PDF  |  MathML 
Témakör(ök): Feladat

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

A vonalkódoknak többféle típusa létezik, de a kereskedelemben a legelterjedtebb az EAN-13 (EAN = European Article Number, Európai árucikkszámozás), amely egy 13 jegyű számot ábrázol. A szám információtartalma:

 
 
Az egyes részek változó számú karakterből épülhetnek fel. A számtípus országkódot vagy terméktípust jelent. Például:
 
590Lengyelország594Románia599Magyarország600 ‐ 601Dél-Afrika609Mauritius611Marokkó613Algéria977Periodikák (ISSN)978Könyvek (ISBN)979Zene (ISMN)
 

Egy új termék gyártója a központi nyilvántartástól igényelheti az EAN-13 számot.
Az EAN-13 szám utolsó számjegye a véletlen elgépelés vagy a hibás leolvasás kiszűrését biztosító ellenőrző számjegy. Képzési szabálya: az első 12 számjegy közül a páratlan helyen állókat 1-gyel, a páros helyen állókat 3-mal szorozzuk meg, és a szorzatokat összegezzük, majd meghatározzuk az ellenőrző számjegyet, amely a 13. helyen fog állni. Ez az a szám, amit az összeghez hozzáadva az érték 10-zel oszthatóvá válik. Pl.:
51+93+01+73+41+63+01++83+01+33+51+93=140.
A 140 éppen osztható 10-zel, így nullát kell hozzáadni. Az ellenőrző számjegy ezért 0, tehát a példában szereplő EAN-13 szám helyes.
 
A vonalkód szerkezete:
A számokat fekete-fehér területek (a leolvasó ezt képes érzékelni) kódolják.
Az első, bal oldalon külön álló szám a kódolás módszerét határozza meg. Ennek vonalak nem felelnek meg, így más módszerrel van kódolva.
A kód további része két számcsoportból áll. Elöl, hátul és a számcsoportok között két-két vékony elválasztó vonal van.
A számokat 7 egységnyi szélességben 2-2 változó vastagságú vonal ábrázolja. Jelentse a fekete színt 1 és a fehéret 0. A vonalkódon belül háromféle kódolás fordul elő, jelöljük ezeket A-val, B-vel és C-vel. A vonalak számértéke az egyes kódolások szerint a következő:
 
SzámABC0000110101001111110010100110010110011110011020010011001101111011003011110101000011000010401000110011101101110050110001011100110011106010111100001011010000701110110010001100010080110111000100110010009000101100101111110100
 

Az első számcsoport (a bal oldali, önálló szám utáni 6 számjegy) A-val vagy B-vel, a második számcsoport (az utolsó 6 számjegy) C-vel van kódolva.
Az EAN-13 kód első számjegye határozza meg az első számcsoport hat számjegyének kódolását. Ennek táblázata:
 
 

A példaként bemutatott ‐ lengyel lekváros üvegen szereplő ‐ vonalkód felépítése:
Az első szám 5, ami a vonalrendszerben közvetlenül nem jelenik meg, de az első számcsoport kódolását a táblázat szürke sora alapján meghatározza.
 
  VonalcsoportJelentésVonalrendszerVonalcsoportJelentésVonalrendszer  1.Bevezető kétvékony vonal1019.[8]  C  kódolással1001000  2.[9]  A  kódolással000101110.[0]  C  kódolással1110010  3.[0]  B  kódolással010011111.[3]  C  kódolással1000010  4.[7]  B  kódolással001000112[5]  C  kódolással1001110  5.[4]  A  kódolással010001113.[9]  C  kódolással1110100  6.[6]  A  kódolással010111114.[0]  C  kódolással1110010  7.[0]  B  kódolással010011115.Záró két vékonyvonal101  8.Elválasztó kétvékony vonal01010
 

A vonalrendszereket összefűzve állítjuk elő a teljes vonalkódot.
 
 
Táblázatkezelő program segítségével vizsgáljuk meg az A1 cellában megadott EAN-13 szám helyességét az ellenőrző számjegy alapján: a B1 cellába írjuk a ,,helyes'', vagy a ,,hibás'' szót a vizsgálat eredményeként. Állítsuk elő a megadott szám 15 részből álló vonalrendszerét 0-s és 1-es számjegyek segítségével az A2:A16 cellákba.
A megoldás során ne használjunk makrót vagy programmodult, kizárólag képleteket és beépített függvényeket. A felhasznált részletszámítások látszódjanak és semmilyen módon ne rejtsük el azokat. A kód meghatározásához szükséges segédtáblák lehetnek külön munkalapon.
Beküldendő a táblázatkezelő munkafüzet (i194.xls, i194.ods, ...), illetve egy rövid dokumentáció (i194.txt, i194.pdf, ...), amelyben szerepel a megoldáskor alkalmazott táblázatkezelő neve, verziószáma, valamint a megoldás rövid leírása.