Boa tarde pessoal, alguém pode me ajudar com a questão abaixo: agradeço muito! o cpf é o número usado

pela receita federal do brasil para identificar os contribuintes pessoas físicas. o cpf é composto por 11 algarismos. destes 11 algarismos os dois últimos são usados para verificar se os primeiros 9 foram digitados corretamente. eles são chamados de algarismos verificadores. por exemplo, considere o cpf exemplo 123.456.789-09. este cpf na realidade é 123 456 789, os algarismos 0 e 9 servem para que os programas da receita federal verifiquem se os 9 primeiros estão corretos. os algarismos 0 e 9 são gerados automaticamente pelos computadores da receita quando alguém se inscreve como contribuinte. o algoritmo de geração dos dois últimos algarismos é descrito a seguir. para o primeiro dígito verificador, o 0, no nosso exemplo, o algoritmo é o seguinte: multiplique o primeiro algarismo do cpf por 10, o segundo por 9, e assim sucessivamente até o nono algarismo do código e some todos estes resultados. neste exemplo teríamos, soma1 = (1*10) + (2*9) + (3*8) + + (9*2) calcule o resto da divisão inteira por 11 desta soma1. se este resto for 0 ou 1 então o algarismo do primeiro dígito verificador é 0 caso contrário o algarismo é o resultado da subtração (11 – resto). para o segundo dígito verificador, no nosso caso o 9, o algoritmo é o seguinte: multiplique o primeiro algarismo por 11, o segundo por 10, e assim sucessivamente até o nono algarismo do código e some todos estes resultados. neste exemplo teríamos soma2 = (1*11) + (2*10) + (3*9) + + (9*3) some este resultado ao dobro do primeiro dígito verificador que foi calculado (valor = soma2 + 2 * digito1) . calcule o resto da divisão inteira por 11 deste valor. se este resto for 0 ou 1 então o algarismo é 0 caso contrário o algarismo é o resultado da subtração (11 – resto). escreva um algoritmo que leia todos os algarismos de um cpf e imprima se ele é valido ou não. considere que o usuário irá digitar os algarismos do cpf separados por um espaço em branco. esta maneira de fornecer o cpf não é comum, mas no nosso caso irá facilitar o processamento. exemplos de uso do programa. exemplo 1: entre com o cpf 1 2 3 4 5 6 7 8 9 0 9 cpf válido. exemplo 2: entre com o cpf 1 2 3 4 5 6 7 8 9 9 9 cpf inválido

1 Resposta

  • Tay

    Eu daria assim

    dimension cpf[11) de inteiros
    soma = 0 

    para i= 1 até 9 passo 1 faça
        leia(cpf[i])
        soma = soma + cpf[i] * (11-i) 
    fim-para

    digito1 = resto(soma,11) 
    se digito1 <= 1 entao
         digito1 = 0 
    senao
         digito1 = 11- digito
    fim-se

    soma = 0 
    para i = 1 até 9 passo 1 faça
        soma = soma + cpf[i] * (12-i)
    fim-para

    digito2 = resto( soma + digito1*2,11) 
    se digito2 <= 1 entao
         digito2 = 0 
    senao
         digito2 = 11- digito
    fim-se

    escreva "Digito 1", digito1
    escreva "digito 2", digito2

Clique aqui para adicionar a sua resposta.