algorytm.org

EAN-14



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-14
Ocena użytkowników:***** / 7
SłabyŚwietny 
Wpisany przez Tomasz Lubiński, 01 września 2007 10:35

Produkty sprzedawane w detalu oznaczone są najczęściej kodem EAN-13. Czasem mogą być one sprzedawane w formie "zgrupowanej" - np. w postaci tekturowego kartonu, palety, skrzynki, itp. Jeżeli opakowanie takie zawiera zawsze identyczne jednostki i jest ich zawsze stała ilość, to wówczas identyfikuje się je poprzez nadanie mu oddzielnego numeru EAN-13 lub nadanie im numeru EAN-14 z wykorzystaniem numeru jednostek handlowych, które są zawarte w środku.
Taki numer EAN-14 powstaje z numeru EAN-13 uzupełnionego o numer będący cyfrą wskaźnikową (wariantem). Numer EAN-13 składa się z 12 cyfr identyfikujących produkt i 1 cyfry kontrolnej na końcu. EAN-14 ma natomiast następującą budowę:
  • cyfra wskaźnikowa (wariant)
  • 12 cyfr identyfikujących produkt z kodu EAN-13
  • cyfra kontrolna
Cyfra Wskaźnikowa przyjmuje wartości od 1 do 8 i oznacza zawszą stałą określoną przez producenta liczbę produktów w opakowaniu. Cyfra 0 lub 9 oznacza zmienną liczbę produktów w opakowaniu.
Cyfra kontrolna obliczana jest następująco:
  • najpierw obliczamy sumę ważoną wszystkich cyfr z wyjątkiem cyfry kontrolnej, wagi poszczególnych cyfr wynoszą 3 1 3 1 3 1 3 1 3 1 3 1 3,
  • sumę ważoną dzielimy modulo 10,
  • wynik z poprzedniego kroku odejmujemy od 10 i znów dzielimy modulo 10.
Jeżeli cyfra kontrolna jest zgodna z obliczoną to numer EAN-14 jest prawidłowy.

Przykład:

Załóżmy, że pewien producent produkuje produkt o numerze EAN-13 5916485101314, chce teraz wypuścić na rynek dwa warianty opakowań zbiorczych - jeden zawierający 6 sztuk produktu, oraz drugi zawierający 10 sztuk produktu. Do ich oznaczenia wykorzysta numer EAN-14. Pierwszy wariant zawierający 6 sztuk postanowił oznaczyć cyfrą wskaźnikową 1, a drugi wartiant zawierający 10 sztuk cyfrą wskaźnikową 2. Utwórzmy zatem te numery EAN-14.

Pierwszy będzie wyglądał następująco 1591648510131x, gdzie x jest cyfrą kontrolną, którą obliczymy poniżej.
3*1 + 1*5 + 3*9 + 1*1 + 3*6 + 1*4 + 3*8 + 1*5 + 3*1 + 1*0 + 3*1 + 1*3 + 3*1 = 3 + 5 + 27 + 1 + 18 + 4 + 24 + 5 + 3 + 0 + 3 + 3 + 3 = 99.
99 mod 10 = 9.
Wynik ten odejmujemy od 10 i znów dzielimy modulo 10, 10 - 9 = 1, 1 mod 10 = 1. Zatem cyfrą kontrolną jest 1, co daje nam kompletny pierwszy numer EAN-14: 15916485101311.

Drugi numer będzie wyglądał następująco 2591648510131x, gdzie x jest cyfrą kontrolną, którą obliczymy poniżej.
3*2 + 1*5 + 3*9 + 1*1 + 3*6 + 1*4 + 3*8 + 1*5 + 3*1 + 1*0 + 3*1 + 1*3 + 3*1 = 6 + 5 + 27 + 1 + 18 + 4 + 24 + 5 + 3 + 0 + 3 + 3 + 3 = 102.
102 mod 10 = 2.
Wynik ten odejmujemy od 10 i znów dzielimy modulo 10, 10 - 2 = 8, 8 mod 10 = 8. Zatem cyfrą kontrolną jest 8, co daje nam kompletny drugi numer EAN-14: 25916485101318.

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

Poprawiony: 29 sierpnia 2012 20:21
Komentarze
photo
0 # GfxBro 2011-08-17 15:53
Jak wyglądają tabele kodowania? Widzę, że start/end sentinels są odpowiednio 11010 i 01011, a cyfry i ew. środkowy strażnik?
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
0 # Tomasz Lubiński 2011-08-19 13:23
Taki kod kodowany jest albo kodem EAN-128 albo przy pomocy Interleaved 2 of 5 i wtedy ma nazwę ITF-14 www.algorytm.org/kody-kreskowe/itf-14.html
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz