Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-практическое пособие ТЭИС.doc
Скачиваний:
13
Добавлен:
01.03.2025
Размер:
9 Мб
Скачать
☆

Алгоритм расчета контрольного разряда ean

Для расчета контрольного разряда в EAN-8, EAN-13, а также в форматах EAN-14 (ITF-14), UPC-A и UPC-E, используется один и тот же алгоритм вычислений («по модулю 10»):

Пронумеровать все разряды справа налево (например, от 1 до 13 для EAN-13), начиная с позиции контрольного разряда.

Шаг 1: Начиная со 2-го, сложить значения всех ЧЕТНЫХ разрядов.

Шаг 2: Полученную сумму умножить на 3.

Шаг 3: Начиная с 3-го, сложить значения всех НЕЧЕТНЫХ разрядов.

Шаг 4: Сложить результаты, полученные во 2 и 3 шагах.

Шаг 5: Значение контрольного разряда является наименьшим числом, которое в сумме с величиной, полученной в шаге 4, дает число, кратное 10.

Все недоразумения при расчетах возникают, как правило, по причине того, что многие неосознанно неправильно нумеруют разряды слева направо. При нумерации СПРАВА НАЛЕВО нет разницы в порядке расчета контрольного разряда С для 8, 12, 13 или 14-разрядного кода.

Рассмотрим пример расчета контрольного разряда С для кода 560172111001С (формат EAN-13).

Шаг 1. Сложить цифры, стоящие на четных местах: 6+1+2+1+0+1=11,

Шаг 2. Полученную сумму умножить на 3: 11*3=33,

Шаг 3. Сложить цифры, стоящие на нечетных местах, без контрольной цифры: 5+0+7+1+1+0=14,

Шаг 4. Сложить числа, полученные при выполнении 2 и 3 шагов: 33+14=47,

Шаг 5. В числе 47 отбросить десятки - получим 7, 10-7=3.

Итак, после расчета контрольного разряда получим код 5601721110013.

Теперь рассмотрим, как формировать графическое изображение штрих-кода в формате EAN-13 с помощью выбранного шрифта. В штрих-коде выделяют следующие составляющие (см. рис.3.5):

First Flag - графическое изображение первого левого символа,

Second Flag - графическое изображение второго левого символа,

Left Hand - графическое изображение пяти следующих левых символов (левая часть графического изображения штрих-кода),

CENTER - графическое изображение символа, разделяющего левую и правую часть графического изображения штрих-кода (центральный символ),

Right Hand - графическое изображение пяти правых символов (правая часть графического изображения штрих-кода),

Check character - графическое изображение самого правого символа (контрольного символа).

Для формирования графического изображения штрих-кода используется таблица 3.2. Названия колонок таблицы соответствуют перечисленным составляющим штрих-кода. В каждой затемненной клетке таблицы с номером (i,j) содержится символ и в скобках его ASCII код. Если данный символ напечатать в выбранном штрих-кодовом шрифте, то его изображение будет соответствовать графическому изображению цифры i. Номер столбца таблицы - j выбирается в зависимости от того, в какую графическую составляющую входит цифра i.

Таблица 3.2

Данные для формирования графического изображения штрих кода

Символ штрих-кода

First Flag

Second Flag

Left Hand

A

Left Hand

B

Right Hand

Check character

Data Characters

1

2

3

4

5

Символ (код ASCII), определяющий графическое изображение символа штрих-кода

0

!(33)

` (96)

0 (48)

@(64)

P(80)

p(112)

A

A

A

A

A

1

«(34)

a(97)

1(49)

A(65)

Q(81)

q(113)

A

B

A

B

B

2

#(35)

b(98)

2(50)

B(66)

R(82)

r(114)

A

B

B

A

B

3

$(36)

c(99)

3(51)

C(67)

S(83)

s(115)

A

B

B

B

A

4

%(37)

d(100)

4(52)

D(68)

T(84)

t(116)

B

A

A

B

B

5

& (38)

e(101)

5(53)

E(69)

U(85)

u(117)

B

B

A

A

B

6

' (39)

f(102)

6(54)

F(70)

V(86)

v(118)

B

B

B

A

A

7

( (40)

g(103)

7(55)

G(71)

W(87)

w(119)

B

A

B

A

B

8

) (41)

h(104)

8 (56)

H(72)

X(88)

x(120)

B

A

B

B

A

9

*(42)

i(105)

9(57)

I(73)

Y(89)

y(121)

B

B

A

B

A

|(124) – CENTER

Отметим, что в таблице содержится две колонки Left Hand: Left Hand A и Left Hand B. Кроме этого, в таблице присутствует группа колонок Data Characters. В этой группе колонок содержится пятисимвольная маска, определяющая правила формирования левой части графического изображения штрих-кода. Графическое изображение текущего левого символа штрих-кода выбирается из колонки Left Hand A или Left Hand B в зависимости от того, чему равен (A или B) соответствующий символ маски. Маска определяется, исходя из первого символа (First Flag) штрих-кода. Если первый символ i, то маска находится в i-ой строке таблицы 3.2.

Рассмотрим подробнее правила формирования графического изображения штрих-кода. Пусть требуется получить графическое изображение штрих-кода 2001234567893.

Первый символ рассматриваемого штрих-кода равен 2. Графическое изображение 2 кодирует символ # (код ASCII 35). Маска в этом случае равна АВВАВ.

Второй символ равен 0. Графическое изображение 0 кодирует символ ` (код ASCII 96).

Далее в рассматриваемом штрих-коде идут пять символов левой части 01234. Выбор символов, кодирующих их графическое изображение, осуществляется, исходя из символов маски М.

Так первый символ маски М равен А. Следовательно, графическое изображение первого символа левой части, т.е. графическое изображение 0, кодирует символ 0 (код ASCII 48), взятый из соответствующей строки колонки Left Hand A.

Второй символ маски М равен В. Следовательно, графическое изображение 1 (второго символа левой части) кодирует символ A (код ASCII 65), взятый из соответствующей строки колонки Left Hand B.

Аналогично получим, что графическое изображение 2 кодирует символ B(66), 3 – 3(51), 4 – D(68).

Итак, мы получили последовательность символов #`0AB3D, кодирующую First Flag, Second Flag и Left Hand части графического изображения рассматриваемого штрих-кода.

Далее включаем в эту последовательность символ, кодирующий графическое изображение разделителя CENTER. Это всегда символ | (код ASCII 124).

После этого переходим к кодированию правой части (Right Hand) графического изображения штрих-кода. Кодирование правой части в отличие от кодирования левой части не зависит от маски.

В рассматриваемом штрих-коде правая часть состоит из символов 56789. Графическое изображение 5 кодирует символ U(85), взятый из соответствующей строки колонки Right Hand.

Аналогично получим, что графическое изображение 6 кодирует символ V(86), 7 – W(87), 8 – X(88), 9 – Y(89).

В завершение кодируем контрольный символ (Check character). В рассматриваемом штрих-коде этот символ равен 3. Графическое изображение 3 кодирует символ s(115), взятый из соответствующей строки колонки Check character.

Итак, графическое изображение штрих-кода 2001234567893 кодирует последовательность симолов #`0AB3D|UVWXYs. Само графическое изображение этого штрих-кода представлено на рис.3.6.

Алгоритм формирования графического изображения штрих-кода представлен блок-схемой на рис.3.7.