Sexta-feira, 15 de Maio de 2009

Os algoritmos - o código de barras

Hoje em dia todos nós que temos bilhete de identidade (BI) sabemos que há um dígito que aparece à direita do número, isolado e que num próximo artigo veremos para que serve e como se calcula.

Os livros que aparecem nas bibliotecas, pelo menos os mais recentes, estão identificados através de um número que tem o nome de ISBN (International Standard Book Number), constituído por treze dígitos, que acompanham um código de barras. Também, neste caso, o 13º dígito tem uma função e uma forma de cálculo.

Por outro lado, quando compramos um produto qualquer, num hipermercado ou mesmo numa pequena mercearia de bairro, é utilizada uma máqquina que regista todas as compras que fizemos, com os nomes dos produtos, os preços e imprime um talão onde vêm um conjunto de informações.

Onde estão registadas estas informações que a máquina lê quando se passa o produto em frente de uma luz vermelha intermitente, que não é mais do que um scanner?

Todas estas informações estão no código de barras que é conhecido na Europa, onde existe desde 1977, por EAN-13 (European Article Numbering).

Todos nós verificamos que o código de barras (daí o nome) é constituído por barras pretas e brancas, que é lido pelo scanner e transformado na informação que depois é impressa no talão que nos entregam.

 

Para que serve este conjunto de barras e dígitos?

 

- De uma forma rápida são registados todos os preços dos produtos que comprámos e dado o total;

- Ao registar um produto na caixa é imediatamente abatido na estante da loja e também no stock do armazém; isto é, em qualquer momento se pode saber se o produto que um cliente procura existe ou não em armazém e pode ser encomendado;

- Se houver um registo das saídas diárias é possível ter uma ideia bastante segura dos gostos dos clientes e quais os produtos que mais se vendem. Ainda recentemente procurei um produto de que precisava e que já tinha comprado num estabelecimento há algum tempo. Fui informado por um empregado que o produto em causa já não existia à venda, porque tinham decidido deixar de vendê- lo porque era pouco procurado.

Todas estas informações se podem obter através daquele conjunto de barras e dígitos que aparecem nos produtos.

 

A qualquer um de nós já aconteceu que a máquina da caixa se "recusou" a ler o código de barras. O que faz o empregado(a)? Regista os dígitos um a um e lá aparece no visor o preço, o nome, o IVA e todo um conunto de informações que vêm no talão.

E não há enganos? Será que em vez de ser registada uma caixa de cereais não foi foi registado um colchão e o respectivo preço? Estes enganos são raríssimos. No conjunto de dígitos existe um (o 13º - o último da direita) que é chamado o número de controlo (check digit) e permite evitar essas situações. Vejamos o seguinte código de barras:

 

Este código foi retirado de uma lata de calda de pêssego e tem 13 dígitos como se vê. Vamos tentar dar uma pequena explicação sobre os dígitos:

- os três primeiros indicam o país: 560 - Portugal;

- o conjunto de dígitos, que podem ir de quatro a sete  referem-se a uma marca de um país. Neste caso seria a marca de pêssego em calda;

- os três seguintes - 225 - são escolhidos pelo fabricante para identificar os seus produtos;

- resta o último da direita - 1 - número de controlo.

É este último que impede que nós paguemos uma lata de atum em vez de um televisor.

Como se calcula?

É um algoritmo bastante fácil.

- Seleccionamos os 12 primeiros dígitos que neste caso são 560100994225;

- Em primeiro lugar faz-se a adiçao dos dígitos que ocupam uma posição ímpar a partir da esquerda para a direita:

 

                        5 + 0 + 0 + 9 + 4 + 2 = 20

 

- A seguir faz-se a adição de todos os que ocupam um lugar par:

                        6 + 1 + 0 + 9 + 2 + 5 = 23 e a soma obtida multiplica-se por 3

 

                        23 x 3 = 69

 

- Em terceiro lugar somam-se os dois valores obtidos anteriormente

                        20 + 69 = 89

 

O dígito das unidades desta que é 9 subtrai-se ao número 10. O resultado obtido é o número de controlo do código em apreço. Neste caso é:

                       10  -  9 = 1

 

Há uma situação especial. Se o algarismo das unidades for zero, a diferença seria 10, o que é impossível. Neste caso, o algarismo de controlo seria 0.

 

Agora, aí vai o nosso desafio:

 

- Verificar se o número de controlo do código que segue está correcto e que não se refere a um produto português

 

publicado por Frantuco às 19:22
link do artigo | comentar | ver comentários (4) | favorito

.mais sobre mim

.pesquisar

 

.Abril 2011

Dom
Seg
Ter
Qua
Qui
Sex
Sab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

.artigos recentes

. Os algoritmos - o código ...

.arquivos

. Abril 2011

. Fevereiro 2011

. Janeiro 2011

. Novembro 2010

. Junho 2010

. Março 2010

. Fevereiro 2010

. Janeiro 2010

. Dezembro 2009

. Novembro 2009

. Outubro 2009

. Agosto 2009

. Julho 2009

. Junho 2009

. Maio 2009

. Abril 2009

. Março 2009

. Fevereiro 2009

. Janeiro 2009

. Dezembro 2008

. Novembro 2008

. Outubro 2008

. Setembro 2008

.palavras-chave

. todas as tags

.links