program validaCPF;
uses crt;
var
cpf : string[11];
digito : string[1];
digitointeiro : integer;
enfeite : integer;
i : integer;
digitocalculado : integer;
soma : integer;
digito1 : integer;
finaldocpf : string[2];
finalcalculado : string[2];
auxiliar : string;
digito2 : integer;
begin
write( 'Digite deu CPF: ');
readln(cpf);
finaldocpf := copy(cpf,10,2);
delete(cpf,10,2);
writeln('cpf = ' , cpf);
// Calcular primeiro Digito
for i:=1 to 9 do
begin
digito := copy(cpf,i,1);
val(digito, digitointeiro, enfeite);
digitocalculado := digitointeiro *(11-i);
soma := soma + digitocalculado;
writeln(digitointeiro, ' X ' , 11 - i, ' = ', digitocalculado);
end;
writeln('soma = ', soma);
digito1 := soma mod 11;
if(digito1 < 2) then
digito1 :=0
else
digito1 := 11 - digito1;
writeln('digito1 = ', digito1);
str(digito1, auxiliar);
cpf := concat(cpf,auxiliar);
finalcalculado := auxiliar;
writeln(' CPF ', cpf);
writeln(' Final = ', finaldocpf);
writeln(' Calculado ', finalcalculado);
// Calcular segumdo Digito
soma := 0;
for i:=1 to 10 do
begin
digito := copy(cpf,i,1);
val(digito, digitointeiro, enfeite);
digitocalculado := digitointeiro *(12-i);
soma := soma + digitocalculado;
writeln(digitointeiro, ' X ' , 12 - i, ' = ', digitocalculado);
end;
writeln('soma = ', soma);
digito2 := soma mod 11;
if(digito2 < 2) then
digito2 := 0
else
digito2 := 11 - digito2;
writeln('digito2 = ', digito2);
str(digito2, auxiliar);
cpf := concat(cpf,auxiliar);
finalcalculado := concat(finalcalculado, auxiliar);
writeln(' CPF ', cpf);
writeln(' Final = ', finaldocpf);
writeln(' Calculado ', finalcalculado);
if(finaldocpf <> finalcalculado) then
writeln('CPF Invalido')
else
writeln('CPF Valido ');
readkey;
end.
Nenhum comentário:
Postar um comentário