Sunteți pe pagina 1din 2

Diminuio da probabilidade de erro na digitao de um cdigo numrico.

O dgito de controlo (check digit)

Seja N = a1a2a3a4a5a6a7a8a9a10 um nmero de dez algarismos representativo de um cdigo de


artigo.
Os erros mais comuns na digitao de um nmero so:
1. Troca de um dos algarismos, como seja:
Nmero correcto: 7 123 409 205. A troca do a7 o nove pelo seis, que lhe fica junto no
teclado, daria: 7 123 406 205.
2. Troca da sequncia de dois algarismos consecutivos.
Retomado o exemplo anterior, se a troca ocorresse entre os algarismos a6 e o a7 ter-se-ia:
7 123 490 205.
fcil implementar um algoritmo que detecte se algum destes dois erros foi cometido na
digitao, escolhendo para o ltimo algarismo neste exemplo o cinco um nmero especfico,
designado por check digit ou dgito de controlo.
Um dos algoritmos mais conhecidos para determinao do dgito de controlo o seguinte 1:
1 Atribui-se inicialmente zero ao dgito de controlo, que se inscreve na ltima posio.
2 Multiplica-se cada dgito pelo nmero indicador da posio que ocupa, ou seja, o primeiro
por 1, o segundo por 2, etc. at ao ltimo.
3 Somam-se os resultados obtidos.
4 Determina-se o resto da diviso desse nmero por 11.
5 O dgito de controlo esse nmero, que dever ser inscrito na ltima posio.
Aplicando o algoritmo ao exemplo acima, tem-se:
1 2 3 4 5 6 7 8 9 10
7 1 2 3 4 0 9 2 0 0
x x x x x x x x x x
1 2 3 4 5 6 7 8 9 10

7 2 6 12 20 0 63 16 0 0

A soma dos valores da ltima linha 126.


A diviso de 126 por 11, d 11 e resto 5.
O dgito de verificao portanto 5, e o cdigo completo 7 123 409 205.
Se se efectuar novamente o clculo anterior, agora com o dgito de verificao correcto na
posio 10, verifica-se que o resto da diviso obtido no passo 4 zero. Esta propriedade
utilizada para efectuar a verificao da correco do cdigo, durante a leitura:
Se ocorrer o erro 1: P = 155, que dividido por 11, d resto um.
Se ocorrer o erro 2: P = 167 que dividido por 11, d resto dois.

1
Este algoritmo especfico o utilizado para o ISBN, International Standard Book Number, que tem 10 dgitos.
Este tipo de algoritmo garante que erros do tipo dos descritos so detectados. Muitos outros erros
de digitao so igualmente detectados com o mesmo tipo de algoritmo. Embora no se possa
dizer que a probabilidade de deixar passar um erro nula, verifica-se que ela , de facto,
extremamente reduzida.
Se o nmero de algarismos do cdigo for diferente de dez, o algoritmo deve ser modificado no passo 5:
5a Se o resto zero, o dgito de controlo o nmero que figura na ltima posio. Se no for, aumenta-
se de uma unidade o valor do dgito que est na ltima posio e repete-se o processo tantas vezes at que
o resto seja zero. O dgito de controlo o nmero que figura ento na ltima posio.
Pode ler uma explicao mais detalhada em:
Jorge Buescu, O Mistrio do Bilhete de Identidade e Outras Histrias, Gradiva, Lisboa, 2001.
Uma busca na internet usando o GOOGLE e a frase check digit produziu mais de 90 000 links,
com diversos algoritmos.
ooo O ooo
O algoritmo de clculo do dgito de controlo para o cdigo de barras EAN-13 2 (que tem 13
dgitos) o seguinte 3:
1 Atribui-se inicialmente zero ao dgito de controlo, que se inscreve na dcima terceira
posio.
2 Multiplicam-se os dgitos nas posies mpares (primeiro, terceiro, quinto, etc. at ao
dcimo terceiro) por 1.
3 Multiplicam-se os dgitos nas posies pares (segundo, quarto, sexto, etc. at ao dcimo
segundo) por 3.
4 Somam-se os resultados obtidos.
5 Determina-se o resto da diviso desse nmero por 10.
6 O dgito de controlo a inscrever na posio 13 a diferena entre 10 e o nmero
determinado no passo 5.
Exemplo: seja o cdigo, ainda sem o dgito de controlo, 560 123 456 789.
Seguindo os passos acima descritos, tem-se:
1 2 3 4 5 6 7 8 9 10 11 12 13
5 6 0 1 2 3 4 5 6 7 8 9 0
x x x x x x x x x x x x x
1 3 1 3 1 3 1 3 1 3 1 3 1
5 18 0 3 2 9 4 15 6 21 8 27 0

A soma dos valores da ltima linha 118.


A diviso de 118 por 10, d 11 e resto 8, e o dgito de controlo 10 8 = 2.
Ento o cdigo completo, com o dgito de controlo 560 123 456 789 2.
Se se efectuar novamente o clculo, agora com o dgito de verificao correcto na posio 13,
verifica-se que o resto da diviso obtido no passo 5 zero. Esta propriedade utilizada para
efectuar a verificao da correco do cdigo, durante a leitura.

2
Uma introduo aos sistemas de codificao de cdigo de barras e algoritmos de clculo do dgito de controlo
pode ser encontrada em http://www.codipor.pt/ean_ucc/ean_ucc.htm.
3
Os cdigos EAN-8, EAN-C e ITL-14 recorrem a variaes deste algoritmo para determinao do dgito de
controlo.

S-ar putea să vă placă și