Cálculo em BASIC para validação de CPF
Pré-requisitos para compreensão do tutorial:
• Lista das questões
• Desvios
• Formulário multimídia
• Resultados
• Conhecimentos básicos de lógica de programação
Cálculo em BASIC é uma função que permite o desenvolvimento de novos controles de consistência,
além das funções nativas do software Sphinx que possibilitam padronizar o formato das respostas e
impedir erros durante a digitação. Neste tutorial o cálculo será aplicado em um caso de validação de CPF
– Cadastro de Pessoa Física.
Observação: configure os controles sempre após ter definido o questionário.
O Cadastro de Pessoa Física (CPF) é a identificação do contribuinte pessoa física perante a Secretaria da
Receita Federal do Brasil (RFB). Por se tratar de um código único por indivíduo, é muito utilizado como
variável de localização de um determinado indivíduo em uma base de dados.
Para verificar a confiabilidade de um CPF, é necessário efetuar uma série de cálculos, onde o resultado
obtido deverá ser igual aos dois últimos dígitos, denominados de dígitos verificadores.
Utilizaremos para exemplificar o CPF fictício123.456.789-09.
Validando o primeiro dígito verificador
1º passo: para encontrar o primeiro dígito verificador basta criar uma tabela de 3 linhas e 9 colunas.
Na primeira linha insira a sequência numérica de 10 a 2, conforme o exemplo abaixo:
10
9
8
7
6
5
4
3
2
2º passo: na segunda linha insira os 9 primeiros dígitos do CPF, conforme o exemplo abaixo:
10
1
9
2
8
3
7
4
6
5
5
6
4
7
3
8
2
9
3º passo: agora, multiplique cada coluna e insira o resultado na terceira linha, conforme o exemplo
abaixo:
10
1
10
9
2
18
8
3
24
7
4
28
6
5
30
5
6
30
4
7
28
3
8
24
2
9
18
4º passo: some todos os resultados e divida por 11: (10+18+24+28+30+30+28+24+18)/11 = x
Considere como quociente apenas o valor inteiro. Caso o resto da divisão seja menor que 2, o primeiro
dígito verificador deverá ser igual a 0 (zero), caso contrário subtrai-se o valor obtido de 11 e o resultado
obtido será o valor do primeiro dígito verificador.
(10+18+24+28+30+30+28+24+18)/11 =
Neste caso, como o valor do resto foi menor que 2, o primeiro dígito verificador receberá como resultado
o valor
0
(zero) 123.456.789-0x
Validando o segundo dígito verificador
1º passo: para encontrar o segundo dígito verificador basta criar uma tabela de 3 linhas e 10 colunas
(uma coluna a mais em consideração com a tabela anterior). Na primeira linha insira a sequência
numérica de 11 a 2, conforme o exemplo abaixo:
11
10
9
8
7
6
5
4
3
2
2º passo: na segunda linha insira os 10 primeiros dígitos do CPF, incluindo o primeiro dígito já
encontrado, conforme o exemplo abaixo:
11
1
10
2
9
3
8
4
7
5
6
6
5
7
4
8
3
9
2
0
3º passo: agora, multiplique cada coluna e insira o resultado na terceira linha, conforme o exemplo
abaixo:
11
1
11
10
2
20
9
3
27
8
4
32
Some todos os resultados e divida por 11:
(11+20+27+32+35+36+35+32+27+0)/11 = x
7
5
35
6
6
36
5
7
35
4
8
32
3
9
27
2
0
0
Considere como quociente apenas o valor inteiro. Caso o resto da divisão seja menor que 2, o primeiro
dígito verificador deverá ser igual a 0 (zero), caso contrário subtrai-se o valor obtido de 11 e o resultado
obtido será o valor do primeiro dígito verificador.
(11+20+27+32+35+36+35+32+27+0)/11 =
11-02 = 09
Neste caso, como o valor do resto foi igual a 2, subtraiu-se o valor obtido de 11 e o resultado do
segundo dígito verificador será 9 123.456.789-09
Validando um CPF no Sphinx
1º passo: posicione-se no 1º estágio Elaboração do questionário e acesse o ambiente Formulário
multimídia.
2º passo: com o formulário já elaborado, acesse o menu superior Dados e clique na opção Calcular... .
3º passo: na janela apresentada, clique no botão Calcular uma nova variável e em seguida no botão
Avançar.
4º passo: na próxima tela, marque o item Cálculo automático e utilize o espaço em branco para inserir o
código fonte do cálculo de validação do CPF apresentado abaixo:
n1 = Val(Left(CPF,1))
aux1 = Right(CPF,10)
n2 = Val(Left(aux1,1))
aux2 = Right(aux1,9)
n3 = Val(Left(aux2,1))
aux3 = Right(aux2,8)
n4 = Val(Left(aux3,1))
aux4 = Right(aux3,7)
n5 = Val(Left(aux4,1))
aux5 = Right(aux4,6)
n6 = Val(Left(aux5,1))
aux6 = Right(aux5,5)
n7 = Val(Left(aux6,1))
aux7 = Right(aux6,4)
n8 = Val(Left(aux7,1))
aux8 = Right(aux7,3)
n9 = Val(Left(aux8,1))
aux9 = Right(aux8,2)
n10 = Val(Left(aux9,1))
soma = (n1 * 10) + (n2 * 9) + (n3 * 8) + (n4 * 7) + (n5 * 6) + (n6 * 5) + (n7 * 4) + (n8 * 3) + (n9 * 2)
div = soma Mod 11
If div < 2 Then
primeiro = 0
Else
primeiro = 11 - div
EndIf
soma2 = (n1 * 11) + (n2 * 10) + (n3 * 9) + (n4 * 8) + (n5 * 7) + (n6 * 6) + (n7 * 5) + (n8 * 4) + (n9 * 3) + (n10 * 2)
div2 = soma2 Mod 11
If div2 < 2 Then
segundo = 0
Else
segundo = 11 - div2
EndIf
digito = primeiro & segundo
If digito = Right(CPF,2) Then
v = "Válido"
Else
v = "CPF Inválido"
EndIf
5º passo: clique no botão Avançar e avance para a próxima tela;
6º passo: na tela seguinte, defina o título, o nome da variável, escolha como tipo de questão Texto e
clique em Concluir;
7º passo: insira a questão no formulário e formate a mesma conforme o desejado.
8º passo: para inserir a mensagem de restrição, caso o CPF seja inválido, acesse o menu superior
Formulários e clique na opção Propriedades do formulário.
9º passo: na janela apresentada, acesse a aba Restrições e clique no botão Novo:
10º passo: crie as seguintes condições: CPF diferente de vazio (CPF = “”) e Valida_cpf igual a “CPF
Inválido”
11º passo: no campo m ensagem , di gi te a m ensagem q u e será aprese ntad a, ex em pl o
“ Verifique o s c am po s sinalizados abaixo:” e clique em “OK”
Para finalizar, publique o formulário ou acesse através do Sphinx Operador e teste.
Download

Cálculo em BASIC para validação de CPF