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:***** / 3
SłabyŚwietny 
Wpisany przez Tomasz Lubiński, 28 sierpnia 2007 20:00

By kod UPC-A mógł być automatycznie przeczytany przez urządzenia skanujące musi zostać przetworzony do postaci kodu kreskowego. Kod kreskowy UPC-A składa się z 95 białych i czarny prążków znajdujących się jeden przy drugim. Przyjmujemy, że 1 oznacza pasek ciemny, a 0 oznacza pasek jasny. kodowanie pasków
    Kod kreskowy ma następującą strukturę
  • lewe paski ochronne (ang. start sentinel) kodowane są jako: 101
  • pierwszych 6 cyfr kodowanych lewostronnie
  • środkowe paski ochronne (ang. central sentinel) kodowane jako: 01010
  • kolejne 6 cyfr kodowanych prawostronnie
  • prawe paski ochronne (ang. stop sentinel) kodowane są jako: 101


Poniżej przedstawiono tabelę kodowania lewo i prawostronnego. Zwróć uwagę że po prawej stronie wszystkie liczby zakodowane są z parzystą liczbą jedynek, a po lewej z nieparzystą liczbą jedynek - pozwala to na sprawdzenie czy kod nie jest czytany do góry nogami podczas jego skanowania.

cyfrakodowanie lewostronnekodowanie
prawostronne
000011011110010
100110011100110
200100111101100
301111011000010
401000111011100
501100011001110
601011111010000
701110111000100
801101111001000
900010111110100


Przykład:

    Zbudujemy zatem kod kreskowy dla kodu 054132691452
  • lewe paski ochronne (ang. start sentinel) kodowane są jako: 101
  • 1 cyfra to 0, kodujemy ją lewostronnie jako: 0001101
  • 2 cyfra to 5, kodujemy ją lewostronnie jako: 0110001
  • 3 cyfra to 4, kodujemy ją lewostronnie jako: 0100011
  • 4 cyfra to 1, kodujemy ją lewostronnie jako: 0011001
  • 5 cyfra to 3, kodujemy ją lewostronnie jako: 0111101
  • 6 cyfra to 2, kodujemy ją lewostronnie jako: 0010011
  • środkowe paski ochronne (ang. central sentinel) kodowane jako: 01010
  • 7 cyfra to 6, kodujemy ją prawostronnie jako: 1010000
  • 8 cyfra to 9, kodujemy ją prawostronnie jako: 1110100
  • 9 cyfra to 1, kodujemy ją prawostronnie jako: 1100110
  • 10 cyfra to 4, kodujemy ją prawostronnie jako: 1011100
  • 11 cyfra to 5, kodujemy ją prawostronnie jako: 1001110
  • 12 cyfra to 2, kodujemy ją prawostronnie jako: 1101100
  • prawe paski ochronne (ang. stop sentinel) kodowane są jako: 101
Zatem gotowy kod kreskowy to:
10100011010110001010001100110010111101001001101010101000011101001100110101110010011101101100101
Co po zapisaniu w wersji graficznej (z wydłużonymi paskami ochronnymi, paskami kodującymi numer systemu oraz paskami kodującymi sumę kontrolną) wygląda nasepująco - numer systemu wstawiamy przed kodem, a cyfrę kontrolną za kodem:
UPC-A

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Tomasz LubińskiC#Microsoft Visual Studio 2010
.cs
.cs
***** / 0
Tomasz LubińskiC/C++Borland Builder 6
.cpp
.cpp
***** / 1
Tomasz LubińskiDelphi/PascalBorland Delphi 5
.pas
.pas
***** / 2
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: 28 sierpnia 2012 20:26
Dodaj komentarz