A matemática dos códigos de barras

0
29

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+3×17=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?





O MEU COMENTÁRIO SOBRE ESTE ARTIGO

Por favor escreva o seu comentário!
Por favor coloque o seu nome aqui
Captcha verification failed!
Falha na pontuação do usuário captcha. Por favor, entre em contato conosco!