Você está na página 1de 2

Algoritmo de CPF [WEB01]

Uma rotina muito utilizada por programadores em softwares comerciais a da validao do Cadastro de Pessoa Fsica (CPF). Muitos pegam estas rotinas prontas na internet, milhares de sites oferecem nas mais diversas linguagens de programao. Ao invs de voc confiar seu software a essas rotinas que tal voc mesmo desenvolver a sua tendo a certeza que a mesma est certa e funciona perfeitamente? Para isso fomos atrs do algoritmo responsvel pela validao de acordo com as regras do Ministrio da Fazenda para voc mesmo fazer seu algoritmo e ter certeza de que o mesmo funcionar corretamente alm de ter o controle do mesmo para eventuais modificaes. Entendendo a Validao O CPF composto por onze algarismos, onde os dois ltimos so chamados de dgitos verificadores, ou seja, os dois ltimos dgitos so criados a partir dos nove primeiros. O clculo feito em duas etapas utilizando o mdulo de diviso 11. Para exemplificar melhor iremos calcular os dgitos verificadores de um CPF hipottico, por exemplo, 222.333.666-XX. Calculando o Primeiro Dgito Verificador O primeiro dgito calculado com a distribuio dos dgitos colocando-se os valores 10,9,8,7,6,5,4,3,2 conforme a representao abaixo:

2 10 2 10 20

2 9 2 9 18

2 8 2 8 16

3 7 3 7 21

3 6 3 6 18

3 5 3 5 15

6 4 6 4 24

6 3 6 3 18

6 2 6 2 12

Na seqncia multiplicaremos os valores de cada coluna, confira:

Em seguida efetuaremos o somatrio dos resultados (20+18+...+18+12), o resultado obtido (162) ser divido por 11. Considere como quociente apenas o valor inteiro, o resto da diviso ser responsvel pelo clculo do primeiro dgito verificador. Vamos acompanhar: 162 dividido por 11 obtemos 14 de quociente e 8 de resto da diviso. Caso o resto da diviso seja menor que 2, o nosso primeiro dgito verificador se torna 0 (zero), caso contrrio subtrai-se o valor obtido de 11, que nosso caso, sendo assim nosso dgito verificador 11-8, ou seja, 3 (trs), j temos parte do CPF, confira: 222.333.666-3X. Calculando o Segundo Dgito Verificador Para o clculo do segundo dgito ser usado o primeiro dgito verificador j calculado. Montaremos uma tabela semelhante a 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 clculo. Veja:

2 11

2 10

2 9

3 8

3 7

3 6

6 5

6 4

6 3

3 2

Na prxima etapa faremos como na situao do clculo do primeiro dgito verificador, multiplicaremos os valores de cada coluna e efetuaremos o somatrio dos resultados obtidos: 22+20+18+24+21+18+30+24+18+6=201.

2 11 22

2 10 20

2 9 18

3 8 24

3 7 21

3 6 18

6 5 30

6 4 24

6 3 18

3 2 6

Agora pegamos esse valor e dividimos por 11. Considere novamente apenas o valor inteiro do quociente, e com o resto da diviso, no nosso caso 3, usaremos para o clculo do segundo dgito verificador, assim como na primeira parte. Caso o valor do resto da diviso seja menor que 2, esse valor passa automaticamente a ser zero. Caso contrrio necessrio subtrair o valor obtido de 11 para se obter o dgito verificador. Neste caso chegamos ao final dos clculos e descobrimos que os dgitos verificadores do nosso CPF hipottico so os nmeros 3 e 8, portanto o CPF ficaria assim: 222.333.666-38.

Referncias [WEB01] Clube da Informtica. Disponvel em: http://www.clubedainformatica.com.br

Você também pode gostar