Pesquisar este blog

segunda-feira, 20 de junho de 2011

Software e Tecnologia: Algoritmo Validação CPF em C

Algoritmo Validação CPF em C

Vamos entender um pouco como funciona o algoritmo do CPF. Na primeira parte estudaremos o funcionamento do cálculo do CPF para validar os dígitos verificadores que fazem a diferenciação de um CPF para outro.

Logo abaixo segue um código que faz a validação do CPF, mas mesmo que você queria desenvolver o seu próprio código, em javascript ou outra linguagem, abaixo segue uma breve explicação.

Esse algoritmo que é responsável pela validação do CPF foi feito de acordo com a regras do Ministério da Fazenda.

Conhecendo o cálculo do algoritmo do CPF

O CPF é composto por onze algarismos, onde os dois últimos são chamados de dígitos verificadores, ou seja, os dois últimos dígitos são criados a partir dos nove primeiros. O cálculo é feito em duas etapas utilizando o módulo de divisão 11.

Para exemplificar melhor, iremos calcular os dígitos verificadores de um CPF imaginário, por exemplo, 222.333.666-XX.

Fazendo o cálculo do primeiro dígito verificador

O primeiro dígito é calculado com a distribuição dos dígitos colocando-se os valores 10, 9, 8, 7, 6, 5, 4, 3, 2 conforme a representação abaixo:

Números do CPF 2 2 2 3 3 3 6 6 6

Valores definidos 10 9 8 7 6 5 4 3 2
para o cálculo


Na seqüência multiplicaremos os valores de cada coluna, confira:

Números do CPF 2 2 2 3 3 3 6 6 6

Valores definidos 10 9 8 7 6 5 4 3 2
para o cálculo

Total 20 18 16 21 18 15 24 18 12

Em seguida efetuaremos o somatório dos resultados (20+18+...+18+12), o resultado obtido (162) será divido por 11. Considere como quociente apenas o valor inteiro, o resto da divisão será responsável pelo cálculo do primeiro dígito verificador.

Vamos acompanhar: 162 dividido por 11 obtemos 14 de quociente e 8 de resto da divisão. Caso o resto da divisão seja menor que 2, o nosso primeiro dígito verificador se torna 0 (zero), caso contrário subtrai-se o valor obtido de 11, que é nosso caso, sendo assim nosso dígito verificador é 11-8, ou seja, 3 (três), já temos parte do CPF, confira: 222.333.666-3X.

Fazendo o cálculo do segundo dígito verificador

Para o cálculo do segundo dígito será usado o primeiro dígito verificador já calculado. Montaremos uma tabela semelhante à anterior, só que desta vez usaremos na segunda linha os valores 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, já que estamos incorporando mais um algarismo para esse cálculo. Veja:

Números do CPF 2 2 2 3 3 3 6 6 6

Valores definidos 11 10 9 8 7 6 5 4 3 2
para o cálculo

Total 22 20 18 24 21 18 30 24 18 6

Na próxima etapa faremos como na situação do cálculo do primeiro dígito verificador. Multiplicaremos os valores de cada coluna e efetuaremos o somatório dos resultados obtidos: 22+20+18+24+21+18+30+24+18+4=201.

Números do CPF 2 2 2 3 3 3 6 6 6

Valores definidos 11 10 9 8 7 6 5 4 3 2
para o cálculo

Total 22 20 18 24 21 18 30 24 18 6

Agora pegamos esse valor e dividimos por 11. Considere novamente apenas o valor inteiro do quociente, e com o resto da divisão, no nosso caso 3, usaremos para o cálculo do segundo dígito verificador, assim como na primeira parte.

Caso o valor do resto da divisão seja menor que 2, esse valor passa automaticamente a ser zero, que é o nosso caso, caso contrário é necessário subtrair o valor obtido de 11 para se obter o dígito verificador.

Neste caso chegamos ao final dos cálculos e descobrimos que os dígitos verificadores do nosso CPF hipotético são os números 3 e 8, portanto o CPF ficaria assim: 222.333.666-38.

Essa explicação foi retirada do endereço: http://imasters.uol.com.br/artigo/2410/javascript/algoritmo_do_cpf/

Download código fonte em C do algoritmo.

Um comentário:

Anônimo disse...

Valeu pela referencia http://softwareetecnologia.blogspot.com/2011/02/validacao-cpf-em-c.html