Algoritmo para calcular digitos verificadores de CPF - Validação com Lógica de Programação

แชร์
ฝัง
  • เผยแพร่เมื่อ 10 ก.พ. 2025
  • Como validar CPF - cálculo dos dígitos de verificação
    Neste vídeo mostro como funciona o cálculo dos dígitos verificadores em um número de CPF (Cadastro de Pessoas Físicas) e como implementar um algoritmo usando lógica de programação e Portugol Studio para realizar a validação de um CPF informado pelo usuário.
    O CPF é composto por 11 dígitos numéricos, no formato XXX.XXX.XXX-YY.
    Os dois últimos dígitos do CPF são conhecidos como "dígitos verificadores" (DV) e são utilizados para verificar a validade do número.
    Os DVs são calculados a partir dos nove primeiros dígitos do CPF, empregando um algoritmo específico, que eu explico aqui.
    Ajude o canal adquirindo meus cursos na Udemy:
    Bancos de Dados com MySQL Básico: bit.ly/35QdWE4
    Lógica de Programação com Português Estruturado: bit.ly/3QKPn22
    Programação em Python do Zero: bit.ly/python-...
    Adquira também livros e outros itens na loja da Bóson Treinamentos na Amazon e ajude o canal a se manter e crescer:
    www.amazon.com...
    Seja membro deste canal e ganhe benefícios:
    / @bosontreinamentos
    Contribua com a Bóson Treinamentos!:
    www.bosontreina...
    Por Fábio dos Reis
    Bóson Treinamentos: www.bosontreina...
    Instagram: / bosontreinamentos
    Linkedin: / f%c3%a1bio-dos-reis-06...
    Quora: pt.quora.com/profile/Fábio-dos-Reis
    Pinterest: / bosontreina
    Outros projetos do autor:
    Diário do Naturalista: www.diariodonat...
    Bóson Ciências e Cultura: / bosonciencias
    Numismática e Finanças Pessoais: www.diarionumi...
    #cpf #logicadeprogramação #algoritmos

ความคิดเห็น • 20

  • @paulocode725
    @paulocode725 ปีที่แล้ว +3

    Essa aula merece 1000 likes! Parabéns e obrigado!

    •  ปีที่แล้ว +1

      Obrigado Paulo!

  • @evaldoaraujo4145
    @evaldoaraujo4145 ปีที่แล้ว +3

    Só pela didática dos 4 primeiros minutos do vídeo já vale um like.

    • @DoctorComputersBgi
      @DoctorComputersBgi ปีที่แล้ว +2

      Nem vou assistir até o final, mas tá salvo , muito útil

    •  ปีที่แล้ว

      Valeu Evaldo!

    • @jacob_segundo1176
      @jacob_segundo1176 ปีที่แล้ว

      @@DoctorComputersBgi eu também, vi só o começo do vídeo.

  • @twentyone4115
    @twentyone4115 ปีที่แล้ว +2

    Ótimo vídeo, não entendia muito sobre a lógica por trás para validar cpf

  • @DoctorComputersBgi
    @DoctorComputersBgi ปีที่แล้ว +3

    Muito útil , não se encontra isso por aí, com a qualidade de explicação do sr. Fábio , outra coisa é passar tudo isso aí para o visualg ou Portugol

  • @assisribeiro8451
    @assisribeiro8451 ปีที่แล้ว +1

    Muito boa aula!!! Perfeita.

  • @leandrocruz6621
    @leandrocruz6621 ปีที่แล้ว +2

    Que top, já de cartões visa Master card

  • @valeriapereira1393
    @valeriapereira1393 ปีที่แล้ว +1

    Uma observacao: as variaveis globais digito1 e digito2 declaradas no inicio do programa nao foram usadas.

  • @V_CYBERWARE
    @V_CYBERWARE ปีที่แล้ว +1

    👋

  • @jacob_segundo1176
    @jacob_segundo1176 ปีที่แล้ว +1

    fiz esse calculo em C, só não fiz a conversão de string para inteiro. o usuário digita um número e dá enter, assim sucessivamente.
    no futuro vou passar pro delphi, pra ter uma interface gráfica.

    • @RafaelRodrigues-cq2im
      @RafaelRodrigues-cq2im ปีที่แล้ว

      Eu fiz em C++, mas converti a string em inteiro.
      Não encontrei algo semelhante ao usado no vídeo para fazer tal conversão e acabei fazendo algo que funcionou, mas estou convencido que não é a melhor forma.
      Você ou alguém pode me indicar uma função que seja equivalente, em C ou C++, às que o professor usou ?
      Obrigado.

    • @jacob_segundo1176
      @jacob_segundo1176 ปีที่แล้ว

      @@RafaelRodrigues-cq2im pra converter tem a função atoi, mas não consegui converter caráctere por carácter, isso tá me dando problema.

    • @RafaelRodrigues-cq2im
      @RafaelRodrigues-cq2im ปีที่แล้ว

      Também tentei usar essa função, mas não funcionou.
      Como os caracteres de '0' a '9' na tabela ASCII são sequênciais (de 48 a 57 em decimal) eu fiz um laço de repetição que pega cada char do vetor de string (no exemplo abaixo eu chamei de num), subtrai pelo char '0' e adiciona o resultado em outro vetor(vet) do tipo int. Veja:
      for(i = 0; i < 11; i++)
      {
      vet[i] = int(num[i] - '0');
      }

  • @vitorGHR_2010
    @vitorGHR_2010 ปีที่แล้ว

    resposta do exericio proposto com formatacao do cpf:
    programa
    {
    // bibliotecas
    inclua biblioteca Util

    // variaveis globais
    inteiro cpf_gerado[11]

    funcao inicio()
    {
    para (inteiro i = 0; i < 9; i++) {
    cpf_gerado[i] = Util.sorteia(1, 9)
    }
    gerar_cpf_valido(cpf_gerado)
    }
    funcao gerar_cpf_valido(inteiro cpf[]) {
    inteiro i, j
    inteiro soma, resto
    inteiro dv1, dv2
    // gera digito verificador 1
    j = 10
    soma = 0
    para (i = 0; i < 9; i++) {
    soma += cpf[i] * j
    j--
    }
    resto = soma % 11
    se (resto < 2) {
    dv1 = 0
    } senao {
    dv1 = 11 - resto
    }
    // gera digito verificador 2
    j = 11
    soma = 0
    para (i = 0; i < 10; i++) {
    soma += cpf[i] * j
    j--
    }
    resto = soma % 11
    se (resto < 2) {
    dv2 = 0
    } senao {
    dv2 = 11 - resto
    }
    // coloca os digitos verificadores no cpf
    cpf[9] = dv1
    cpf[10] = dv2
    mostra_cpf(cpf)
    }
    funcao mostra_cpf(inteiro cpf[]) {

    escreva("CPF valido gerado:
    ")

    para (inteiro i = 0; i < 11; i++) {

    se ((i == 2) ou (i == 5)) {
    escreva(cpf[i], ".")
    } senao se (i == 8) {
    escreva(cpf[i], "-")
    } senao {
    escreva(cpf[i])
    }

    }
    }
    }