P R E S E K List za mlade matematike, fizike, astronome in računalnikarje ISSN 0351-6652 Letnik 24 (1996/1997) Številka 1 Strani 20-24 Bojan Mohar: O CRTNIH KODAH Ključne besede: računalništvo. Elektronska verzija: http://www.presek.si/24/1284-Mohar.pdf © 1996 Društvo matematikov, fizikov in astronomov Slovenije © 2010 DMFA - založništvo O ČRTNIH KODAH Marsikateri bralec Preseka seje gotovo že vprašal, kaj pomenijo črte naslednjih oblik 838975 510104 5 uuujtruu ki jih vidimo na večini izdelkov na policah trgovin. Takim črtam pravimo Čri/ia kod&, ker je z njimi zakodiran določen podatek o izdelku. V modernejših trgovinah opazimo, da prodajalka pri blagajni s posebno napravo "osvetli" črtno kodo. Na ta način blagajna, ki je nekakšen računalnik, ugotovi, za kateri izdelek gre in kakšna je njegova cena. V nadaljevanju bomo opisali, na kakšen način je v taki črtni kodi zapisana informacija o izdelku. Črtne kode so prvič množično uporabili pri ameriških železnicah. Leta 1907 so na železniške vagone namestili 11-rnestno črtno kodo, Z njeno pomočjo in z uporabo posebnih optičnih či t al cev ob naj prometnej šili progah so lahko sledili, kje potujejo in kje se nahajajo posamezni vagoni. Da je takšno avtomatično sledenje prometa smiselno, nam pove že podatek, da danes po ameriških tirih potuje okrog 1.800.000 vagonov. V trgovine pa so Črtne kode prišle okrog leta 1971 - najprej v ZDA, kasneje pa tudi drugod po svetu. Črtna koda je sestavljena iz zaporedja (navpičnih) črt in vmesnih presledkov. Črte in presledki so različnih širin in tako jih lahko razumemo kot različne števke ali črke, odvisno od dogovora. Recimo, da takšno kodo preberemo s svetlobnim peresom. Žarek peresa pomaknemo preko črtne kode, pero preko odbitega žarka razbere vzorec ožjih in širših črt. ter vmesnih presledkov in ga pošlje procesorju, ki ta vzorec spremeni v zaporedje Števk. Pri tem je pomembno, da svetlobno pero pomaknemo preko črtne kode kar se da enakomerno hitro, saj bi na primer krajša upočasnitev za prejeti signal v peresu pomenila isto, kol tla je trenutno osvetljena črta ali presledek malo širši, kot je v resnici. Zaradi možnosti napake pri branju Črtne kode so danes na voljo vse boljše in boljše, a tudi 5000347009242 3838975510104 clražje, priprave za branje. Na primer pri laserski pripravi s pomičnim žarkom Laserski žarek večkrat (tudi po stokrat v eni sekundi) prečeše črtno kodo in tako lahko s primerjavo rezultatov dosežemo večjo natančnost in manjšo možnost napake. Drugi način, ki tudi zmanjšuje možnost napake pri branju, pa je skrit v sami kodi. Pravimo, daje koda sestavljena tako, daje možno zaznati napake pri branju, ki se najpogosteje ponavljajo.1 Zgradbo črtne kode si bomo ogledali na primeru, ki je najbolj razširjen. To je koda EAN13 (European Article Number), ki ji v ZDA iz razumljivih razlogov pravijo UPG (Universal Product Code). Ta koda se uporablja za živila, revije in drugo potrošno blago. Sestavljena je iz trinajstih števk si, ■ ■ ■, s 13, kjer je s, € {0, 1,.. ., 9}, i — 1, 2,.,., 13. Št.evki .<¡1 in s2 navadno določata državo (ali skupino držav), kjer je bil izdelek napravljen. Števke «3,... ,Sj določajo proizvajalca. Kode proizvajalcev določi državna agencija, ki skrbi za standardizacijo kod. Kode za Ss,. .., s[2 določi proizvajalec sam in jih le posreduje agenciji za kode. Z njimi opiše, za kateri izdelek gre. Zadnja števka ¿¡3 pa skrbi za zaznavanje napak. Izbrana je tako, daje število S = «1 + 3s3 4- s3 + 384 + s5 +----h 3jsj2 + 8,3 (I) deljivo z 10. Kot je razvidno iz zgledov črtnih kod, prva števka nima črtnega ekvivalenta. Tako trinajsta števka pravzaprav služi identifikaciji prve. Kot zgled si oglejmo črtno kodo, ki jo najdemo na škatli z Alpskim mlekom Ljubljanskih mlekarn 3 ______ 1 Tudi to kili ko opazimo v trgovini, kjer mora prodajalka včasih tudi dvakrat ali trikrat prebrati isto kodo. 3838800000756 Takoj opazimo, da je koda Slovenije 38, Bralca vabim, da. pogleda v domači hladilnik ali na polico s hrano in ugotovi, kakšna je koda Republike Hrvaške, Da razočaranje ne bo preveliko, se spomnimo, da so bile kode državam dodeljene že mnogo pred obstojem naše države ter tla je možno ločevanje drŽav tudi preko izbire kod proizvajalcev, ki se za slovenske začnejo s števko 3, za hrvaške pa drugače. Najpogostejša napaka pri branju črtne kode je, ko pride do napake pri branju natanko ene izmed števk. Koda EAN 13 odkrije takšne napake, v kar se bo bralec zlahka prepričal. Druga najpogostejša napaka pri branju je, da se dve sosednji števki, recimo $j in s^j, zamenjata. Recimo, da je prava koda sj,. .., s13, prebrana, pa s\,. .., ,f[3. Naj bosta s in s' ustrezni kontrolni vsoti, določeni z (I), Tedaj je: s - s' = s j + 3,s,*+1 - s,-+i - 3 Si = 2.si+i - 2s{ , kadar je i lih. Ce pa je i sod, je S — s' = — 2.Sj + i . To pomeni, da koda odkrije takšno zamenjavo natanko tedaj, ko je |sf - si+1| ^ 5. Obstaja še m nogo drugih načinov zapisovanja 111 dekodiranja črtnih kod. Pri prehrambenih in drugih drobnih izdelkih je precej razširjena tudi krajša oblika kode EAN, ki ima le osem števk. Na hitro si oglejmo še standard kode ISBN (International Standard Cook Number), ki ga najdemo na vseh novejših knjigah» Ta koda je sestavljena, iz desetih števk in jo določi založnik knjige. Prva šlevka ustreza jeziku, v katerem je knjiga napisana. Naslednjih nekaj števk določa založnika, sledi pa. številka knjige pri tem založniku. Kode velikih založnikov so krajše, da jim ostane več mest za številko knjige. Zadnja števka kode ISBN je zopet namenjena, zaznavanju napak. Izbrana je tako, daje število si +2.S3+3S3 +----h 10*10 deljivo z II. Pri tem se lahko zgodi, da mora biti s]n = 10. V uumeričnem zapisu pod črtno kodo je ta možnost označena z 'X\ Bralec se bo hitro laliko prepričal, daje koda ISBN sestavljena tako, cla opazi vsako napako na enem samem mestu in vsako napako, ki je posledica zamenjave dveh sosednjih števk. Za konec pa si oglejmo še, kako iz črt in vmesnih presledkov določimo, za katero zaporedje št.evk gre. Ogledali si hotno le kodiranje pri EAN13. Za določitev začetka, konca in sredine črtne kode imamo t ri pare (nekoliko daljših) navpičnih črt, ki služijo le kontroli pri branju. Širina presledka med črtama v vsakem od teh parov določa osnovno širino h kode. Isto širino h imata tudi obe črti. Vmesni prostor je razdeljen na ustrezno število intervalov širine 7/f, vsak tak interval pa na 7 pasov širine h. Če je tak pas bel, to pomeni bit 0, črn pas pa ustreza bitu I, Vsaka števka ima 7-bitno kodo, ki je odvisna od tega, na katerem mostu se nahaja. Števke iz prve polovice so kodirane tako, kot kažeta prvi in drugi stolpec v tabeli 1, Števka Levi del - koda A Levi del - koda B Desna polovica 0 0001101 0100111 1110010 1 0011001 011001I 1100110 2 0010011 0011011 1101100 3 0111101 0100001 l000010 A 0100011 001l101 1011100 5 0110001 0111001 1001110 6 0101111 0000101 1010000 7 011101l 0010001 1000100 8 0110111 0001001 1001000 9 000101I 0010111 1110100 Tabela 1. Bil ud kodiranje štnvfc v ki k! i EAN13. števke iz druge polovice črtne kode pa tako, kot prikazuje tretji stolpec tabele. Za števke iz prve polovice ni natanko določeno, kdaj uporabimo kodo A in kdaj kodo 15. Podroben pregled črtne kode alpskega mleka, katere začetni del je močno povečan na sliki 1, pokaže, da črtna koda ustreza zaporedju bitov: i o i ju o n 1.011 n oijooioo; ooo i ou i, p 100 i_t niou 11 o 1,01 o 10 AS 3 8 8 O OB 0 0 0 7 5 6 C Pri tem zaporedja bitov A, 13 iu C ustrezajo levemu robu, sredini in desnemu robu. h,h,h, 0110111101111010001001 8 8 101 Slika 1. Povečava začetka črtne kode, Ker iz sedmih bitov lahko sestavimo kar 128 različnih kod, v EAN13 pa je porabljenih le deset izmed njih, nam takšno kodiranje omogoča dodatno preverjanje napak. Bralec sam lahko razmisli, ali koda EAN13 omogoča, da čitalnik črtne kode ugotovi, ali bere z leve proti desni ali z desne proti levi. Bojan M oh ar