Az I. 194. feladat (2008. október) |
I. 194. 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:
|
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.:
5.1+9.3+0.1+7.3+4.1+6.3+0.1+8.3+0.1+3.3+5.1+9.3=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ő:
|
- 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.
|
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.
(10 pont)
A beküldési határidő 2008. november 17-én LEJÁRT.
Megoldásokról:
Sok jó megoldás mellett a feladatspecifikációt többen nem tartották be. A vonalkód működési elvét néhányan titkosításnak gondolták. Erről szó nincs. A vonalkód gyors, pontos és ellenőrzött adatrögzítő és kommunikáló eszköz. EAN 13 az UPC kód (Universal Product Code) továbbfejlesztéséből alakult ki. Ez az első világméretű termékazonosító rendszer és kódtípus. Az ellenőrző számjegyet majdnem mindenki jól határozta meg, annak ellenére, hogy a 13 jegyű szám számjegyekre bontása nem kívánt hatalmas függvényapparátust.
A vonalkód rendszer csoportjainak meghatározása kétszeres mélységű keresést igényel. Az első számjegy alapján kellett meghatározni az első számjegycsoport kódolás típusát, majd ennek és a megfelelő számjegyek ismeretében már a kódot.
A feladat Pap 987 Dávid által készített megoldása (i194.xls).
Különösen ötletes, hogy a vonalkód mintát feltételes formázás segítségével egy munkalapon megjelenítette.
Statisztika:
23 dolgozat érkezett. 10 pontot kapott: Dévényi Attila, Fehér Péter, Jákli Gábor, Kővágó Zoltán, Kristóf Tamás, Molnár Gábor, Pap 999 Dávid, Szabó 295 Gábor, Szabó 928 Attila, Szendrei Péter, Tóth Szabolcs, Uray Marcell János. 9 pontot kapott: Balla Attila, Debreceni Bálint, Englert Péter, Horváth 135 Loránd, Kapitány Ágoston. 7 pontot kapott: 2 versenyző. 6 pontot kapott: 3 versenyző. 2 pontot kapott: 1 versenyző.
A KöMaL 2008. októberi informatika feladatai