Você está na página 1de 3

UNIVERSIDADE SÃO FRANCISCO

Disciplina – Algoritmos computacionais


Trabalho individual – Data de entrega: 09/12/2016 (DIA DA AVALIAÇÃO N3)
Profª Estefania Bissoni

 Este trabalho é individual e deverá ser desenvolvido na linguagem de programação Python.


 Você deverá colar o código fonte do programa juntamente com o enunciado e os testes de
execução no Microsoft Word. Imprimir e entregar para a Professora no dia da N3.
 Não esqueça de colocar o seu nome e RA.
 O trabalho deverá ser entregue no seguinte formato:
o Enunciado do trabalho;
o Código fonte;
o Execução de 2 testes do programa (o primeiro para CPF válido e outro teste para CPF
inválido.
 A nota do trabalho poderá sofrer alterações caso não esteja no formato solicitado pela
professora.

Quando se está trabalhando em um sistema corporativo, é


comum a necessidade de validar CPF. Muita gente não sabe
que um CPF para ser válido não basta apenas atender à
máscara “###.###.###-##” (o caractere ‘#’ representa um
número), existe uma regra matemática que também deve ser
verificada para um CPF ser considerado válido. Se você acha
que é complicado verificar se um CPF é válido ou não, você
vai se surpreender!

REGRA PARA VALIDAR CPF


O cálculo para validar um CPF é especificado pelo Ministério da Fazenda, que disponibiliza no
próprio site as funções (em javascript) para validação de CPF. Vamos entender como funciona.
O CPF é formado por 11 dígitos numéricos que seguem a máscara “###.###.###-##”, a
verificação do CPF acontece utilizando os 9 primeiros dígitos e, com um cálculo simples,
verificando se o resultado corresponde aos dois últimos dígitos (depois do sinal “-“).

Vamos usar como exemplo o CPF:  232.315.171-17.


Os 2 últimos dígitos, nesse caso 17, são os "validadores" do CPF. Mas como fazemos para valida-
los? Como chegar a esses dígitos?
Validação do primeiro dígito:
Para o primeiro dígito (1) devemos usar os 9 primeiros números do CPF, multiplicando de 10 à 2,
como ilustrado na tabela abaixo:

CPF 2 3 2 3 1 5 1 7 1

Multiplicadores 10 9 8 7 6 5 4 3 2

Resultado 20 2 16 2 6 2 4 21 2 Total: 142


7 1 5

2 * 10 + 3 * 9 + 2 * 8 + 3 * 7 + 1 * 6 + 5 * 5 + 1 * 4 + 7 * 3 + 1 * 2 


O resultado é: 142

O próximo passo da verificação também é simples, basta multiplicarmos esse resultado por 10 e
dividirmos (%) por 11. O % (módulo) retorna o resto da divisão.

(142 * 10) % 11 = 1

O resultado que nos interessa na verdade é o RESTO da divisão. Se ele for igual ao primeiro
dígito verificador (primeiro dígito depois do ‘-‘), a primeira parte da validação está correta.
Observação Importante: Se o resto da divisão for igual a 10, nós o consideramos como 0.

Validação do segundo dígito:


A validação do segundo dígito é semelhante à primeira, porém vamos considerar os 9 primeiros
dígitos, mais o primeiro dígito verificador, e vamos multiplicar esses 10 números pela
sequencia decrescente de 11 a 2. Vejamos:

CPF 2 3 2 3 1 5 1 7 1 1

Multiplicadore 11 10 9 8 7 6 5 4 3 2
s
Resultado 22 30 18 2 7 30 5 2 3 2 Total: 169
4 8
2 * 11 + 3 * 10 + 2 * 9 + 3 * 8 + 1 * 7 + 5 * 6 + 1 * 5 + 7 * 4 + 1 * 3 + 1 * 2
O resultado é: 169

Seguindo o mesmo processo da primeira verificação, multiplicamos o valor da soma por 10 e


dividimos por 11. O % (módulo) retorna o resto da divisão.

(169 * 10) % 11 = 7


Verificamos, se o resto corresponde ao segundo dígito verificador.

Com essa verificação, constatamos que o CPF 232.315.171-17 é: VÁLIDO.

Você também pode gostar