segunda-feira, 29 de setembro de 2014

Validar CPF Professor Nava





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

Pascal - Lazarus