sexta-feira, 28 de janeiro de 2011

ALGORITMO DE VALIDAÇÃO DE CPF


 Criar e Validar CPF


Com o CPF (Cadastro de Pessoa Física), é um padrão brasileiro. Após umas perguntas pro oráculo achei na wikipedia um artigo sobre CPF e um texto do iMasters que eu achei mais negócio aprender.
O CPF tem 11 dígitos, os dois últimos são chamados de dígitos verificadores e são
conseqüência dos 9 anteriores. Isso quer dizer que vc pode idealizar qualquer combinação de 9 dígitos e só precisa calcular os dois últimos dígitos para ter um CPF válido.
O primeiro dígito é o um número que depende do resto da soma de uma multiplicação de cada um dos nove dígitos por 10, 9, … 3, 2 por 11. E a do segundo é o mesmo esquema, porém inclui o primeiro dígito verificador, e a multiplicação começa em 11 (11, 10 … 3, 2).
Matematicamente falando, o primeiro dígito é 0 se o resto da divisao de (10 * a + 9 * b + 8 * c + 7 * d + 6 * e + 5 * f + 4 * g + 3 * h + 2 * i)  por 11 for menor que 2 e é a diferença entre 11 e o resto da divisão caso contrário; sendo abcdefghi os nove primeiros números do CPF.
Para exemplificar vou usar 123456789 como os primeiros nove dígitos do CPF.
Dígitos do CPF123456789
Multiplicadores1098765432
Produtos101824283030282418

* Para calcular o primeiro dígito verificador soma-se os produtos e divide por 11. Caso o resto da divisão seja menor que 2 o dígito verificador é 0, senão é a diferença de 11 e o próprio resto.

Com esta tabelinha fica bem mais fácil o cálculo do primeiro dígito verificar, usando módulo 11:
10 + 18 + 24 + 28 + 30 + 30 + 28 + 24 + 18 = 210
210 % 11 = 1
Como 1 é menor que 2, o dígito é 0.
Vamos ao próximo dígito verificador.
Dígitos do CPF1234567890
Multiplicadores111098765432
Produtos1120273235363532270
Somando os produtos temos:
11 + 20 + 27 + 32 + 35 + 36 + 35 + 32 + 27 + 0 = 255
255 % 11 = 2
Como 2 não é menor que 2, o segundo dígito verificador é 11 – 2 = 9.
Assim, o CPF completo é 123456789-09.

Nenhum comentário:

Postar um comentário