Коды обнаружения ошибок

При построении кодов следует также предусматривать возможность автоматического обнаружения ошибок ручного их введения. Для этого коды дополняют контрольным разрядом, определяется по установленному алгоритму. Алгоритм расчета контрольного разряда предусматривает использование значений отдельных разрядов кода.

Коды, которые включают контрольный разряд, получили название кодов обнаружения ошибок.

Для расчета контрольного разряда широко используются алгоритмы (методы) контроля модулями 9,10,11,13 и тому подобное. их суть в том, что сначала рассчитывается сумма значений разрядов кода или сумма произведений (S). Произведения получают после умножения значения каждого разряда кода i) на его вес (ni) или на его порядковый номер в коде, а именно: Di = pi * ni. Далее сумму S делят на выбранный модуль m и полученный остаток d отнимают от модуля. Разница k = md (или ее меньше разряд) как контрольный разряд приписывается к коду.

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

Таблица 1.6

Построение кодов обнаружения ошибок

Код, p

Вес, ni

Произведения, Di

Сумма, S

Остаток, d

k

Код исправления ошибок

274

13

2

9

2749

1580

14

3

8

15808

14691

21

10

1

146911

274

3, 2,1

6,14, 4

24

2

9

2749

1580

4, 3, 2,1

4,15,16,0

35

2

9

15809

14691

5, 4, 3, 2,1

5,16,18,18,1

58

3

8

146918

274

4, 2,1

8, 14, 4

26

4

1

+2747

1580

8, 4,2,1

8,20,16,0

44

0

1

15801

14691

16, 8, 4, 2, 1

16 32,24,18,1

91

3

8

146918

В таблице приведены три группы кодов: для первой группы код обнаружения ошибок строится на основе суммы (S) разрядов; для кодов второй группы - на основе порядкового номера разряда в коде для кодов третьей группы - на основе веса кода в разряде (определяется произвольно). Приведенные примеры можно считать традиционными (но не единственным) методами построения кодов обнаружения ошибок. В практической работе может быть множество вариантов построения аналогичных кодов, каждый вариант, в частности, требует разработки своего программного модуля для вычисления контрольного разряда и выявления ошибок кодирования и ошибок ручного ввода кодов в ЭВМ (расчет контрольных разрядов для аналитических бухгалтерских счетов, кодов МФО и идентификационных кодов Единый государственный реестр предприятий и организаций и т.п.).

Алгоритм вычисления контрольного разряда для аналитических бухгалтерских счетов банка базируется на использовании кода МФО банка, константы 1371337137137137137 и кода аналитической части счета. Вычисление контрольного разряда по счету 1210К728011234 для банка, код МФО которого 300001 (30000 без контрольного разряда) выполняется в следующей последовательности:

1. Рассчитывают поразрядные произведения МФО банка и аналитической части кода счета на константу (в полученном результате пишут только младшие разряды произведений, отвергая выше)

2. Добавляют полученные поразрядные произведения

300001210К7280П234

1371337137137137137

3000034100766037298

3 + 0 + 0 + 0 + 0 + 3 + 4 + 1 + 0 + 0 + 7 +

+ 6 + 6 + 0 + 3 + 7 + 2 + 9 + 8 = 59

3. К предыдущему результату прибавляется длина кода счета - число, которое определяет количество знаков в коде счета (в нашем случае число 14)

59 + 14 = 73

4. Последний разряд предыдущего числа всегда умножаем на 7

3x7 = 21

5. Последний разряд числа, полученное на предыдущей стадии, является контрольным разрядом для счета

1

6. Контрольный разряд пишут между синтетической и аналитической частями коду

12101728011234.

Рассмотрим еще один пример вычисления контрольного разряда по счету 1210К7281 для того же банка.

1. Рассчитывают поразрядные произведения МФО банка и аналитической части кода счета на константу (в полученном результате пишут только младшие разряды произведений, отвергая выше)

300001210К7281

1371337137137137137

3000034100766100000

2. Добавляют полученные поразрядные произведения

3 + 0 + 0 + 0 + 0 + 3 + 4 + 1 + 0 + 0 + 7 + + 6 + 6 + 1 + 0 + 0 + 0 + 0 + 0 = 31

3. К предыдущему результату прибавляется длина кода счета - число, которое определяет количество знаков в коде счета (в этом случае число 9)

31 + 9 = 40

4. Последний разряд предыдущего числа всегда умножаем на 7

0x7 = 0.

5. Последний разряд числа, полученное на предыдущей стадии, является контрольным разрядом для счета

0 (121007281)

Вычисления контрольного разряда для МФО банка - 32559 осуществляется в следующей последовательности:

1. Рассчитывают поразрядные произведения МФО банка на константу 137137 и дальше заключают

32559К

137137_

3 + 6 + 35 + 5 + 27 + 0 = 76

2. Последний разряд предыдущего результата умножается на 7 б х 7 = 42

3. Последний результат предыдущего результата является контрольным разрядом для кода МФО

2 (325592)

Расчет контрольного разряда для идентификационного кода Единого государственного реестра предприятий и организаций - 0490301 выполняется по следующему алгоритму:

1. Каждому разряду идентификационного кода, начиная со старшего, предоставляется весовой коэффициент:

Номер разряда числа (Di) Значение весового коэффициента (Wi) для идентификационных кодов <30000000 и> 60000000 Значение весового коэффициента (Wi) для идентификационных кодов> 30000000 и <60000000

1 2 3 4 5 6 7

1 2 3 4 5 6 7

7 1 2 3 4 5 6

2. Подсчитывают сумму (S) произведений цифровых разрядов (Di) на весовой коэффициент разряда идентификационного кода (Wi):

3. Находят остаток от деления предыдущего результата на модуль 11; S mod 11 = Z. Остаток Z является контрольным разрядом идентификационного кода - 57 mod 11 = 2, идентификационный код с контрольным разрядом - 04903012.

4. Если остаток Z является число 10, тогда осуществляется перерасчет контрольного разряда, применяя при этом другую последовательность весовых коэффициентов, которая смещается на два разряда влево (3456789) или (9345678).

Этап классификации и кодирования информации, как правило, заканчивается построением классификаторов экономической информации.

Классификатор - это документ, содержащий систематизированный свод названий объектов сгруппированы, признаков и их кодовых обозначений.

В настоящее время в Украине разработано более 20 национальных классификаторов, которые базируются на принципах методологии международных классификаций, учитывают международные стандарты по учету, маркетингу, торговле. Это Классификатор видов экономической деятельности, Классификатор продукции и услуг, Классификатор стран мира и территорий. Классификатор валют, Классификатор услуг внешнеэкономической деятельности, классификатор товаров внешнеэкономической деятельности, классификатор объектов административно-территориального устройства Украины, классификатор форм собственности и тому подобное. Классификаторы, используемые в пределах государства, называются государственными, в отдельных отраслях - отраслевыми (План счетов бухгалтерского учета в коммерческих банках, План счетов бухгалтерского учета в Национальном банке), на предприятии (в организации) - локальными.

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

 
< Пред   СОДЕРЖАНИЕ   След >