algorytm.org

UPC-A

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?

UPC-A
Ocena użytkowników:***** / 0
SłabyŚwietny 
Wpisany przez Tomasz Lubiński, 28 sierpnia 2007 19:54

Kod UPC-A (ang. Universal Product Code) służy do oznaczania produktów i składa się z czterech obszarów:
  • numer systemu (1 cyfra),
  • kod producenta (5 cyfr)
  • kod produktu (5 cyfr)
  • cyfra kontrolna (1 cyfra)
Co daje nam w sumie 12 cyfr. Kod ten był pierwszym powszechnie zastosowanym do oznaczania produktów w sprzedaży. Numer systemu określa rodzaj produktu zgodnie z tabelą poniżej:

Numer
systemu
Rodzaj
produktu
0zwykły kod UPC
1zarezerwowany
2waga prduktów ważonych w sklepie
3lekarstwa
4artykuł nie będący żywnością
5kupony
6zarezerwowany
7zwykły kod UPC
8zarezerwowany
9zarezerwowany
Kod producenta - nadawany był przez UCC (ang. Uniform Code Council), teraz pieczę nad nim sprawuje GS1. Ponieważ przy pięciocyfrowym kodzie producenta można nadać 100000 kodów produktów, a nie każdy producent ma tak szeroką gamę asortymentu - powodowało to, że nie wszystkie kombinacje kodu UPC-A były wykorzystywane. Dlatego obecnie niektórzy mniejsi producenci otrzymują dłuższy kod producenta kosztem krótszego kodu produktu - czyli jeżeli producent dostanie 6 cyfrowy kod, to wówczas ma 4 (a nie 5) cyfr na swój kod produktu.
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ż GS1 gwarantuje, że kod producenta jest unikalny, 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:
  • obliczamy sumę ważoną wszyskich cyfr (poza cyfrą kontrolną) składających się na kod, wagi poszczególnych cyfr wynoszą: 3 1 3 1 3 1 3 1 3 1 3
  • sumę ważoną należy podzielić modulo 10,
  • wynik z poprzedniego kroku należy odjąć od 10 i znów podzielić modulo 10.

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

Przykład:

Przeanalizujmy kod 054132691452:
Pierwsza cyfra oznacza numer systemu, jest to 0, co oznacza zwykły kod UPC.
Następnie 5 (lub więcej) cyfr to kod producenta: 54132.
Kolejne 5 (lub mniej) cyfr to kod produktu: 67145.
Ostatnia cyfra to cyfra kontrolna, sprawdźmy czy jest ona prawidłowa. Najpierw policzmy sumę ważoną: 3*0 + 1*5 + 3*4 + 1*1 + 3*3 + 1*2 + 3*6 + 1*9 + 3*1 + 1*4 + 3*5 = 0 + 5 + 12 + 1 + 9 + 2 + 18 + 9 + 3 + 4 + 15 = 78.
Teraz podzielimy wnik modulo 10: 78 mod 10 = 8.
Wynik odejmiemy od 10 i znów podzielimy modulo 10: 10 - 8 = 2, 2 mod 10 = 2.
Ostatnia cyfra jest zgodna z naszym wynikiem, zatem podany numer UPC-A jest prawidłowy.

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Tomasz LubińskiC/C++
.cpp
.cpp
***** / 1
Tomasz LubińskiDelphi/Pascal
.pas
.pas
***** / 1
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

Poprawiony: 29 sierpnia 2012 20:22
Komentarze
photo
-1 # GfxBro 2011-08-17 15:58
Poprzednik EAN13. Różni się tylko rozmieszczeniem znaków na etykiecie oraz długością pasków 2 i ostatniej (kontrolnej) cyfry. Jest w 100% zgodny z EAN13.
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz