algorytm.org

EAN-13



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

EAN-13
Ocena użytkowników:***** / 8
SłabyŚwietny 
Wpisany przez Tomasz Lubiński, 27 października 2005 21:37

Kod EAN-13 służy do oznaczania produktów i składa się z czterech obszarów:
  • 3 pierwsze cyfry - system numerowania, oznaczający kod kraju ew. rodzaj produktu (patrz. tabela poniżej)
  • kolejne 4 do 7 cyfr - kod wytwórcy
  • następne 2 do 5 cyfr - kod produktu
  • ostatnia cyfra to cyfra kontrolna
Wszystkich cyfr w kodzie jest zawsze 13. W tabeli poniżej przedstawiono wizualnie rozmieszczenie poszczególnych obszarów w zależności od długości kodu wytwórcy.

system
numerowania
kod
wytwórcy
kod
produktu
cyfra
kontrolna
XXXXXXXXXXXXX
XXXXXXXXXXXXX
XXXXXXXXXXXXX
XXXXXXXXXXXXX


Dzięki zastosowaniu zmiennej długości kodu wytwórcy, można lepiej wykorzystać dostępne kody. Mały wytwórca dostanie długi kod wytwórcy i krótki kod produktu. Nastomiast duży producent, który ma w swoim asortymencie tysiące prodkutów, dostanie krótszy kod producenta, tak by był w stanie ponumerować wszystkie swoje wyroby.
Kod produktu jest unikalnym kodem przydzielonym przez producenta. W przeciwieństwie do kodu wytwórcy, producent przydziela kod produktu na własną rękę. Ponieważ EAN gwarantuje, że pierwsza część kodu (kod producenta wraz z systemem numerowania) jest unikalna, to wytwórca musi się tylko upewnić, że do nowych produktów nie używa kodów produktu używanych przez siebie wcześniej.
Cyfra kontrolna umożliwia sprawdzenie poprawności danego kodu. Oblicza się ją następująco. Dla identyfikatora EAN-13 wagi przez które mnożymy kolejne cyfry wynoszą: 1 3 1 3 1 3 1 3 1 3 1 3. Następnie wynik dzielimy modulo 10, i odejmujemy go od 10. Nastepnie ten wynik dzielimy znów modulo 10. Wynik musi być zgodny z ostatnią cyfrą kodu EAN-13.

By kod EAN-13 mógł zostać automatycznie "przeczytany" przez urządzenia skanujące musi zostać przetworzony do postaci kodu kreskowego EAN-13.

Przykład:

Sprawdźmy poprawność kodu: 4902030187729
Mnożymy zatem cyfry przez odpowiednie wagi:
4*1 + 9*3 + 0*1 + 2*3 + 0*1 + 3*3 + 0*1 + 1*3 + 8*1 +7*3 + 7*1 + 2*3 = 4 + 27 + 0 + 6 + 0 + 9 + 0 + 3 + 8 + 21 + 7 + 6 = 91
Teraz dzielimy wynik przez modulo 10
91 mod 10 = 1
Wynik odejmujemy od 10
10 - 1 = 9
I znów dzielimy przez modulo 10 (to zabezpieczenie gdyby w kroku powyżej wyszło nam 10 - wówczas cyfra kontrolna powinna wynosić 0)
9 mod 10 = 9
Sprawdzamy czy ostania cyfra to 9? Tak, a więc podany kod EAN-13 jest prawidłowy.
Ponadto, z tabeli poniżej możemy odczytać iż producentem tego produktu jest Japonia (490).

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Tomasz LubińskiC/C++
.cpp
.cpp
***** / 2
Tomasz LubińskiDelphi/Pascal
.pas
.pas
***** / 4
Tomasz LubińskiJava
.java
.java
***** / 1
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język
programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie


Kody systemu numerowania EAN-13
000-139USA i Kanada
200-299Do użytku wewnętrznego
300-379Francja
380Bułgaria
383Słowenia
385Chorwacja
387Bośnia-Hercegowina
400-449Niemcy
450-459Japonia
460-469Rosja
470Kirgistan
471Tajwan
474Estonia
475Łotwa
476Azerbejdżan
477Litwa
478Uzbekistan
479Sri Lanka
480Filipiny
481Białoruś
482Ukraina
484Mołdawia
485Armenia
486Gruzja
487Kazachstan
489Hong Kong
490-499Japonia
500-509Wielka Brytania
520Grecja
528Liban
529Cypr
531Macedonia
535Malta
539Irlandia
540-549Belgia i Luksemburg
560Portugalia
569Islandia
570-579Dania
590Polska
594Rumunia
599Węgry
600-601RPA
608Bahrain
609Mauritius
611Maroko
613Algeria
619Tunezja
621Syria
622Egipt
624Libia
625Jordania
626Iran
627Kuwejt
628Arabia Saudyjska
629Emiraty Arabskie
640-649Finlandia
690-692Chiny
700-709Norwegia
729Izrael
730-739Szwecja
740Gwatemala
741Salwador
742Honduras
743Nikaragua
744Kostaryka
745Panama
746Dominikana
750Meksyk
759Wenezuela
760-769Szwajcaria
770Kolumbia
773Urugwaj
775Peru
777Boliwia
779Argentyna
780Chile
784Paragwaj
786Ekwador
789-790Brazylia
800-839Włochy
840-849Hiszpania
850Kuba
858Słowacja
859Czechy
860Jugosławia
867Korea Północna
869Turcja
870-879Holandia
880Korea Południowa
885Tajlandia
888Singapur
890Indie
893Wietnam
899Indonezja
900-919Austria
930-939Australia
940-949Nowa Zelandia
950EAN - IDA
955Malezja
977ISSN
978ISBN
979ISMN
980-999Kupony
Poprawiony: 29 sierpnia 2012 20:19
Komentarze
photo
0 # maus 2009-09-09 14:18
na zaliczeniu mialam pyt typu: od czego zalezy ze jedno panstwo otrzyma 2 cyfrowy system numerowania a inne 3 cyfrowy??No wlasnie moze ktos odpowie...
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
+3 # Tomek 2009-09-09 19:19
Państwa większe i bardziej rozwinięte gospodarczo, będą miały system numerowania 2-cyfrowy, np: Japonia (wszystko co zaczyna się na 49 zostało wyprodukowane w Japonii, patrz tabelka powyżej - ma przyporządkowan e numery 490-499). Państwa mniejsze i mniej rozwinięte gospodarczo np: Polska (590) mają numer 3-cyfrowy. Wynika to z tego, że mając numerację 2 cyfrową więcej miejsca pozostaje na numerację producentów i produktów (12-2=10 cyfr, zatem potencjalnie można oznaczyć 10 miliardów produktów), duże rozwinięte państwa produkują większą gamę produktów, które trzeba jakoś oznaczyć. Analogicznie mając numerację 3 cyfrową mniej miejsca pozostaje na producentów i produkty (12-3=9 cyfr, potencjalnie można oznaczyć 1 miliard różnych produktów).
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz