A matemática dos códigos de barras

06-04-2014 12:37

 

    Ao escrever um texto num computador ou num telemóvel, cometemos por vezes alguns erros de escrita. Contudo, um erro de escrita de uma determinada palavra é, em geral, facilmente detetável por outra pessoa que não tenha escrito esse texto: ou a palavra não faz parte da língua (por exemplo, “Maetmática” em vez de “Matemática”) ou o contexto da frase dar-lhe-á pistas para descobrir qual a palavra correta (por exemplo, “lama” em vez de “alma”). Em ambos os exemplos apresentados, cometeu-se um erro comum: a troca ou transposição de dois caracteres adjacentes. Isto acontece sempre que as teclas correspondentes às letras trocadas são premidas pela ordem errada. Outro erro que também é facilmente detetável surge quando acidentalmente se prime uma tecla errada (por exemplo, “falo” em vez de “faço”).

 

    Mas o que acontece se cometermos um erro de escrita numa sequência de algarismos? Para quem não conheça essa sequência, à primeira vista não existe uma forma de detetar o erro cometido. Ora, se pensarmos na quantidade de sequências de algarismos que utilizamos no dia a dia (número de identificação civil ou número do bilhete de identidade, número de contribuinte, número de identificação bancária, entre outros), apercebemo-nos que é fundamental algum tipo de proteção contra este tipo de erros. Um exemplo curioso que ilustra esta necessidade data de 1990 e foi relatado por um jornal do Michigan, nos Estados Unidos da América. As autoridades locais haviam autorizado a demolição de uma casa localizada numa determinada avenida, com o número 451. Devido a um erro de transposição na escrita do número da casa por parte de um dos elementos da equipa de demolição, constatou-se que a casa entabuada com o número 451 continuava de pé após a intervenção solicitada. Contudo, um pouco mais abaixo, da casa número 415 já só restava a cave!

 

    Foi para evitar situações deste género que, desde meados do século passado, se criaram sistemas de deteção de erros sempre que se lida com números com vários algarismos. A ideia é a de incorporar no final da própria sequência de algarismos um ou mais algarismos suplementares, ditos algarismos de controlo ou dígitos de verificação, que permitem detetar se o número em questão é válido ou se, pelo contrário, foi algures cometido pelo menos um erro de escrita, leitura ou transmissão dos algarismos.

 

    Sempre que fazemos compras encontramos um exemplo deste tipo de sistemas de deteção de erros: o código de barras. Este código é constituído por duas partes: um número (normalmente com 8 a 13 algarismos) e a codificação desse número por barras verticais, de modo a permitir a leitura por um leitor ótico. Apresento, a título de exemplo, o número relativo ao código de barras de uma manteiga produzida no Faial: 5606646000012. São 13 algarismos ao todo: 560 identifica todos os produtos de origem portuguesa; 664600001 identifica o produtor e o respetivo produto; 2 é o algarismo de controlo.

 

 

    Para se verificar se o número do código de barras está correto, procede-se da seguinte forma: fazendo a leitura do número da direita para a esquerda (isto porque se deve começar pelo algarismo de controlo), adicionam-se todos os algarismos que estão nas posições ímpares (primeiro algarismo, terceiro algarismo,…) e adicionam-se todos os que estão nas posições pares (segundo algarismo, quarto algarismo,…); obtêm-se, respetivamente, as somas s1 e s2; por fim, calcula-se o valor de s=s1+3s2 que deverá ser um múltiplo de 10 (ou seja, o seu algarismo das unidades deverá ser 0). Se o resultado final não for um múltiplo de 10, significa que ocorreu um erro e que o número não está correto. Em relação ao exemplo apresentado, fica s1=19, s2=17 e s=19+3x17=70, que é um múltiplo de 10.

 

    Com esta explicação, o leitor passará a ver os códigos de barras com outros olhos e, da próxima vez que se cruzar com um, que tal fazer os cálculos necessários para confirmar a sua validade?

 

 

Ricardo Cunha Teixeira (colaborador do Ciência com Todos e docente/investigador no Departamento de Matemática da U. dos Açores)

 

Tópico: Comentários

Re: código de barras

Data: 12-04-2014 | De: Marinho Lopes

Interessante, não sabia qual era o algoritmo usado para os códigos de barras.

Acho que ficou só a faltar a nota a dizer que para diferentes tipos de números usam-se diferentes algoritmos. No caso dos BI's antigos, por exemplo, multiplicava-se cada algarismo do número pelos algarismos 1, 2, 3, ..., 8 (também da direita para a esquerda), somava-se tudo e o resultado tinha que ser múltiplo de 11.

Abraço.

Re:Re: código de barras

Data: 12-04-2014 | De: Marinho Lopes

P.S.: Esqueci-me de acrescentar que o algarismo de controlo não coincidia necessariamente com o número de pessoas com igual nome no país! :p

Re:Re:Re: código de barras

Data: 14-04-2014 | De: Ricardo Cunha Teixeira

Olá e obrigado pelo feedback!
Nos próximos artigos, cuja publicação já está acordada com o João Pedro, falarei de mais alguns números de identificação, como por exemplo o número de série das notas de Euro e, claro está, não podia deixar de falar no antigo número do BI, atual Número de Identificação Civil (NIC). Abraço!

Código de barras

Data: 11-04-2014 | De: Graciete Virgínia Rietsch Monteiro Fernandes

Felizmente os meus olhos já me permitiram ler este artigo mas ainda estou cansada pois não me lembro se os algarismos abaixo do código já lá existem ou se temos que deduzi-los por qualquer processo.
Quanto ao artigo acho-o muito útil e interessante.
Um abraço para o autor.

Re:Código de barras

Data: 14-04-2014 | De: Ricardo Cunha Teixeira

Olá Graciete!
Agradeço o feedback. Em relação à questão que coloca, a partir dos 13 algarismos, é possível obter as barras que permitem que estes sejam lidos pelo leitor ótico e vice-versa. A questão interessante tem a ver com o seguinte: dos 13 algarismos, 12 são atribuídos em função do país de origem, do produtor e do produto propriamente dito. O 13º algarismo (o algarismo de controlo, que é o primeiro algarismo da direita) não tem qualquer informação; é calculado de forma a que a tal soma de teste que falo no artigo seja um múltiplo de 10. Por exemplo, se com os cálculos efetuados com os outros 12 algarismos, obtivermos a soma de teste S=57, então esse algarismo deve ser 3, de forma a termos 57+3=60, ou seja, um múltiplo de 10. Abraço.

Itens: 1 - 5 de 5

Novo comentário