Já que criamos um didático gerador de cpfs válidos,
Acho muito justo também criarmos um verificador
De cpfs, isto é muito correto, precisamos saber se
Nossos cpfs criados são válidos, por isto ser tão justo
Criei este programa que faz validação de um cpf inserido
Em sua entrada de dados, acompanhe nas imagens primeiro:
Veja abaixo algumas imagens do programa em execução:
Veja abaixo o código do programa:
#include <stdio.h>
#include <conio.h>
int cpf;
int Restr_caracteres ( char num [ 4 ] ) {
int i, a = 0;
a = strlen ( num );
for ( i = 0; i < a; i++ ) {
if ( num [ i ] < '0' || num [ i ] > '9' )
return 0;
}
return 1;
}
void Verifica_Cpf ( ) {
textcolor ( LIGHTRED );
gotoxy ( 23, 3 );
printf ( "VERIFICADOR DE
CPF" );
textcolor ( LIGHTBLUE );
gotoxy ( 15, 5 );
printf ( "Digite um cpf válido
=> " );
if ( ( cpf == 11 ) ) {
textcolor ( LIGHTRED );
printf ( "%d", cpf );
}
}
void Pausa ( ) {
Sleep ( 400 );
textcolor ( LIGHTRED );
gotoxy ( 20, 22 );
printf ( "PRESSIONE
QUALQUER TECLA" );
getche ( );
}
void Janela ( ) {
int n, c;
c = 0;
for ( n = 2; n <= 24; n++ )
for ( c = 3; c <= 63; c++ ) {
gotoxy ( c, n );
textbackground ( WHITE );
printf ( "
" );
}
}
int main ( ) {
system ( "title
VERIFICADOR DE CPF" );
int Vet_cpf [ 12 ];
int Vet_cpf_2 [ 12 ];
int Vet_cpf_3 [ 12 ];
int val_cpf [ 10 ] = { 10, 9, 8, 7, 6, 5, 4, 3, 2 };
int val_cpf_2 [ 11 ] = { 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 };
char c_pf [ 20 ];
int erro = 0;
do {
int a = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, l = 0, o = 0,
u = 0, cont = 0;
do {
Janela ( );
Verifica_Cpf ( );
if ( erro == 1 ) {
Verifica_Cpf ( );
}
textcolor ( LIGHTRED );
gets ( c_pf );
////////////////////////////////////////////////////////////////////
cont = 0;
for ( i = 0; c_pf [ i ] != '\0'; i = i + 1 ) {
if ( c_pf [ i ] )
cont = cont + 1;
}
////////////////////////////////////////////////////////////////////
if ( Restr_caracteres ( c_pf ) == 0 ) {
textcolor ( LIGHTBLUE );
gotoxy ( 20, 7 );
printf ( "Voce
digitou ==> " );
textcolor ( LIGHTRED );
printf ( "%s", c_pf );
textcolor ( BLACK );
gotoxy ( 20, 9 );
printf ( "\aIsto não é um
cpf válido !" );
Pausa ( );
erro = 1;
continue;
}
if ( cont < 11 || cont > 11 ) {
textcolor ( LIGHTBLUE );
gotoxy ( 20, 7 );
printf ( "\aO cpf só pode
ter " );
textcolor ( LIGHTRED );
printf ( "11 " );
textcolor ( LIGHTBLUE );
printf ( "números " );
Pausa ( );
erro = 1;
continue;
}
break;
} while ( ( cont < 11 || cont > 11 ) );
////////////////////////////////////////////////////////////////////////
textcolor ( LIGHTBLUE );
gotoxy ( 15, 7 );
printf ( "Ao lado o cpf
informado => " );
textcolor ( LIGHTRED );
a = 0;
for ( i = 0; i < 12; i++ ) {
if ( i == 3 )
printf ( "." );
if ( i == 6 )
printf ( "." );
if ( i == 9 )
printf ( "-" );
printf ( "%c", c_pf [ i ] );
}
//Convertemos o vetor de char em inteiro
while ( c_pf [ a ] != '\0' ) {
Vet_cpf [ a ] = c_pf [ a ] - '0';
a++;
}
o = Vet_cpf [ 9 ];
u = Vet_cpf [ 10 ];
for ( i = 0; i < 9; i++ ) {
Vet_cpf_2 [ i ] = Vet_cpf [ i ] * val_cpf [ i ];
e = e += Vet_cpf_2 [ i ];
}
f = e % 11;
g = 11 - f;
if ( g > 9 )
g = 0;
Vet_cpf [ 9 ] = g;
for ( i = 0; i < 10; i++ ) {
Vet_cpf_3 [ i ] = Vet_cpf [ i ] * val_cpf_2 [ i ];
h = h += Vet_cpf_3 [ i ];
}
j = h % 11;
l = 11 - j;
if ( l > 9 )
l = 0;
textcolor ( LIGHTRED );
gotoxy ( 15, 9 );
if ( g == o && l == u )
printf ( "O cpf é válido" );
else printf ( "O cpf não é válido" );
Pausa ( );
} while ( 1 );
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.