Suma lub cyfra kontrolna - cd.

 EAN - European Article Number

kod kreskowy Numer EAN13 to ten numer pisany pod kodem kreskowym na praktycznie każdym artykule kupowanym w sklepie.
W numerze EAN-13 dwie lub trzy pierwsze cyfry (prefiks) oznaczają kod kraju lub rodzaju produktu, a kolejne cyfry to identyfikator producenta, numer produktu i cyfra kontrolna dla 12 wcześniejszych cyfr.
Specjalna grupa numerów zaczynająca się od cyfry 2 oznacza produkty o zmiennej ilości lub cenie np. jabłka, marchew, paczkowane mięso itp. W tym przypadku w samym numerze EAN13 zakodowany jest indywidualny numer produktu w bazie danych konkretnego sklepu oraz waga lub cena danego produktu. Część numeru EAN13 zawierająca wagę lub cenę ma dodatkową cyfrę kontrolną obliczaną innym rodzajem algorytmu.
W przypadku książek, periodyków lub nagrań muzyki zamiast kodu kraju producenta lub dystrybutora stosuje się prefiksy 978 lub 979 i numer ISBN lub prefiks 977 dla ISSN.
Nadawaniem numerów EAN zajmuje się w Polsce Centrum Kodów Kreskowych w Instytucie Logistyki i Magazynowania w Poznaniu.
W swoich broszurach podają taki opis algorytmu obliczania cyfry kontrolnej:
Kolejność obliczeń:

  1. zsumować wartości cyfr na miejscach parzystych,
  2. pomnożyć wynik pozycji a) przez liczbę 3,
  3. zsumować wartości cyfr na miejscach nieparzystych, zaczynając od miejsca trzeciego,
  4. zsumować wyniki pozycji b) i c),
  5. cyfrą kontrolną jest najmniejsza liczba, która po dodaniu do wyniku pozycji d) tworzy liczbę będącą wielokrotnością liczby 10.

Uwaga: w powyższym algorytmie cyfry w numerze numeruje się od prawej. Cyfra kontrolna ma więc numer 1.

Ten troche zawiły opis można zamienić na poniższy algorytm.
obliczamy sumę iloczynów cyfr przez ich wagi;
wagi wynoszą kolejno 1,3,1,3,1,3,1,3,1,3,1,3,1,3
sumę dzielimy Modulo 10,
jeśli wynik jest różny od 0 to wynik odejmujemy od 10
Przykład dla numeru EAN13     5 901234 123457

          1 3 1 3 1 3 1 3 1 3 1 3     -> wagi
        * 5 9 0 1 2 3 4 1 2 3 4 5     -> nr EAN13  
                                        (bez cyfry kontr.)
        -------------------------
suma= (1*5+3*9+1*0+3*1+1*2+3*3+1*4+3*1+1*2+3*3+1*4+3*5)=
    = (  5+ 27+  0+  3+  2+  9+  4+  3+  2+  9+  4+ 15)= 83
 
           83 mod 10 = 3 ----> (10-3) cyfra kontrolna 7

Więcej informacji o kodach EAN-13 można znaleźć na stronach www.gs1pl.org/symboliki.php
Na mojej stronie barcode można wygenerować obrazek zawierający kod paskowy dla dowolnego numeru EAN-13.

Na stronie www.gepir.pl/Strony/party_by_gtin.aspx można zidentyfikować producenta na podstawie numeru pod kodem paskowym EAN/UCC-8, EAN/UCC-13, SSCC, GLN.

Dla towarów z Austrii, Danii, Niemiec, Polski i chyba z całej Europy producenta można zdekodować (nazwa firmy, adres, tel, fax, email) na stronie GS1 Germany http://www.gepir.de/v31_client/getin.aspx

Jeśli ktoś potrzebuje procedurę do generowania cyfry kontrolnej dla EAN13 w VBA (Visual Basic for Application) dla Accessa v.8 to zapraszam na http://access.w.interia.pl/ean13_vba.html. Jest tam ładnie skomentowany kod.

Formuła w Excelu, umożliwiająca obliczanie cyfry kontrolnej numerów 13-cyfrowych. Plik udostępniany uczestnikom systemu GS1 przez firmę Platinet. ExcelFile LINK  

Dla numeru EAN8
obliczamy sumę iloczynów cyfr przez ich wagi
wagi wynoszą kolejno 3,1,3,1,3,1,3
sumę dzielimy Modulo 10
jeśli wynik jest różny od 0 to wynik odejmujemy od 10
Przykład dla numeru EAN8 5901 2344

           3 1 3 1 3 1 3        -> wagi
         * 5 9 0 1 2 3 4        -> nr EAN8  
                                  (bez cyfry kontr.)
        -----------------
suma= (3*5+1*9+3*0+1*1+3*2+1*3+3*4 )=
    = ( 15+  9+  0+  1+  6+  3+ 12 )=  46
 
           46 mod 10 = 6 ----> (10-6) cyfra kontrolna 4

Kody kreskowe postNET
Kod PostNET stosowany m. in. na kopertach przez USPS (ang. United States Postal Service) aby przyspieszyć sortowanie i przesyłanie listów. W przeciwieństwie do większości kodów kreskowych kodowanych za pomocą różnej szerokości pasków i odstępów, kod PostNET kodowany jest za pomocą wysokości pasków. Paski są takiej samej szerokości lecz różnią się wysokością.
Kod PostNET może kodować 5-cyfrowy kod pocztowy (am. ZIP code), rozszerzony kod o 4 cyfry (PostNET 9 = ZIP+4) lub 11-cyfrowy kod (PostNET 11 =DPC). Za pomocą PostNET można więc kodować kody pocztowe typowe dla USA (5 lub 9 cyfrowe). Dodatkowe dwie cyfry są używane do kodowania numeru domu lub skrytki pocztowej.
Kod PostNET zawsze zawiera cyfrę kontrolną na końcu.

Sposób sprawdzenia poprawności kodu PostNET "80122-19052":
sumujemy wszystkie cyfry numeru; jeśli ostatnia cyfra sumy wynosi 0 (zero) to kod jest poprawny.

  • Zsumować wszystkie cyfry z kodu
    8 + 0 + 1 + 2 + 2 + 1 + 9 + 0 + 5 + 2 = 30
  • Ostatnia cyfra jest zerem więc kod jest poprawny.

Sposób obliczania cyfry kontrolnej dla kodu "80122-1905":

  1. Zsumować wszystkie cyfry z kodu
    8 + 0 + 1 + 2 + 2 + 1 + 9 + 0 + 5 = 28
  2. Obliczyć resztę z dzielenia wyniku z punktu 1 przez 10
    28 mod 10 = 8
  3. Od liczby 10 odjąć wynik z punktu 2
    10 - 8 = 2
  4. Sumą kontrolną jest wynik z punktu 3. Jeżeli wynik ten byłby równy 10, to cyfrą kontrolną byłaby cyfra 0.
    80122-1905 2

Więcej na temat kodów kreskowych, budowy numeru EAN-13, EAN-8, ISBN itp
   wipos.p.lodz.pl/zylla/ut/barcode/ albo
   www.peernet.com/reports/barcodes.html
   Jak zostać wydawcą czyli jak zdobyć numer ISBN


ciąg dalszy


          Licznik = (od 2 stycznia 2001)
          ostatnie poprawki

Valid HTML 4.01!