Darkside  

Voltar   Darkside > >

Responder
 
Thread Tools
ds
Trooper
 

Default Algoritimo para verificar CPF

28-10-09, 22:38 #1
Oi galera, vou fazer um programa em C pra verificar CPF e queria saber se esse algoritimo aqui esta certo.

Code:
Entendendo a Validação
 
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 hipotético, por exemplo, 222.333.666-XX.
 
Calculando o 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:
2	2	2	3	3	3	6	6	6
10	9	8	7	6	5	4	3	2
Na seqüência multiplicaremos os valores de cada coluna, confira:
2	2	2	3	3	3	6	6	6
10	9	8	7	6	5	4	3	2
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 9 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-9, ou seja, 2 (dois), já temos parte do CPF, confira: 222.333.666-2X.
 
Calculando o 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 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 cálculo. Veja:
2	2	2	3	3	3	6	6	6	2
11	10	9	8	7	6	5	4	3	2
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=199. 
2	2	2	3	3	3	6	6	6	2
11	10	9	8	7	6	5	4	3	2
22	20	18	24	21	18	30	24	18	4
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 1, 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 2 e 0, portanto o CPF ficaria assim: 222.333.666-20.





ds is offline   Reply With Quote
Lev
Trooper
 

27-11-09, 17:28 #2
Cara, fala com o Gabeleu, ele tem um código desse em C já pronto. A gente fez na faculdade mas eu nem tenho.

Lev is offline   Reply With Quote
Responder

Thread Tools

Regras de postagem
Você não pode criar novos tópicos
Você não pode postar
Você não pode enviar anexos
Você não pode editar seus posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Atalho para Fóruns



O formato de hora é GMT -2. horário: 17:20.


Powered by vBulletin®
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2014 DragonByte Technologies Ltd.
User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2014 DragonByte Technologies Ltd.
Minecraft