Erros detectados pelo algarismo de controlo do Código de Barras

Em primeiro lugar, vejamos o que acontece quando ocorre um erro singular (erro em apenas um algarismo). Quando nos enganamos num algarismo numa posição ímpar \((x_{1}, x_{3}, ...)\) é óbvio que o algarismo de controlo irá ser diferente. E no caso dos algarismos nas posições pares \((x_{2}, x_{4}, ...)\), o mesmo acontece, uma vez que três é primo com dez. Vejamos um exemplo: imaginemos que em vez de escrevermos o código de barras \(1\;\;234567 \;\;89123C\), escrevemos o \(1\;\;234557\;\;89123C\). Vejamos o que acontece à parcela correspondente ao \(x_{6}\). No caso correcto apareceria \(6 \times 3 = 8 (\mbox{mod }10)\), enquanto que no errado surgiria \(5 \times 3 = 5 (\mbox{mod }10)\). Pode-se verificar que qualquer que fosse o algarismo que colocássemos em vez do seis, este iria alterar a parcela correspondente ao \(x_{6}\) e, consequentemente, o algarismo de controlo. Portanto, qualquer erro singular irá ser detectado por este algarismo de controlo.

E as transposições consecutivas (trocas de dois algarismos consecutivos)? Todas as transposições consecutivas podem ser detectadas por este algarismo de controlo? Vejamos o caso em que trocamos apenas os dois primeiros algarismos do número do Código de Barras. Na tabela seguinte, podemos ver o valor da soma das parcelas correspondentes a \(x_{1}\) e a \(x_{2}\) (em módulo \(10\)), bem como a soma que se obteria se estes dois primeiros algarismos fossem trocados (entre-parênteses).

  \[x_{2}\]
0 1 2 3 4 5 6 7 8 9
\(x_{1}\) 0 0 (0) 3 (1) 6 (2) 9 (3) 2 (4) 5 (5) 8 (6) 1 (7) 4 (8) 7 (9)
1 1 (3) 4 (4) 7 (5) 0 (6) 3 (7) 6 (8) 9 (9) 2 (0) 5 (1) 8 (2)
2 2 (6) 5 (7) 8 (8) 1 (9) 4 (0) 7 (1) 0 (2) 3 (3) 6 (4) 9 (5)
3 3 (9) 6 (0) 9 (1) 2 (2) 5 (3) 8 (4) 1 (5) 4 (6) 7 (7) 0 (8)
4 4 (2) 7 (3) 0 (4) 3 (5) 6 (6) 9 (7) 2 (8) 5 (9) 8 (0) 1 (1)
5 5 (5) 8 (6) 1 (7) 4 (8) 7 (9) 0 (0) 3 (1) 6 (2) 9 (3) 2 (4)
6 6 (8) 9 (9) 2 (0) 5 (1) 8 (2) 1 (3) 4 (4) 7 (5) 0 (6) 3 (7)
7 7 (1) 0 (2) 3 (3) 6 (4) 9 (5) 2 (6) 5 (7) 8 (8) 1 (9) 4 (0)
8 8 (4) 1 (5) 4 (6) 7 (7) 0 (8) 3 (9) 6 (0) 9 (1) 2 (2) 5 (3)
9 9 (7) 2 (8) 5 (9) 8 (0) 1 (1) 4 (2) 7 (3) 0 (4) 3 (5) 6 (6)

Como pode reparar, neste método existem várias transposições consecutivas que não são detectadas: a troca de \(05\) por \(50\), a troca de \(16\) por \(61\), a troca \(27\) por \(72\), a troca \(38\) por \(83\), a troca \(49\) por \(94\) e os seus recíprocos.

Se quiser confirmar experimentalmente a taxa de controlo destes dois tipos de erro (ou pura e simplesmente se quiser saber se os códigos de barras dos seus produtos estão correctos) clique aqui.

Para saber mais sobre a detecção de erros neste tipo de sistemas de identificação, clique aqui.

Para além deste exemplo, os algarismos de controlo estão presentes em muitas outras situações como, por exemplo, no Bilhete de Identidade, no NIB, no Cartão Visa, nas Notas de Euro,...