Jump to content
Fórum Script Brasil
  • 0

Fazer um programa em C para pedir ao usuário todos os 12 primeiros dígitos de um CNPJ


Alyni

Question

Fazer um programa em C para pedir ao usuário todos os 12 primeiros dígitos de um CNPJ usando obrigatoriamente a Estrutura FOR para guardar dígito a dígito e em um vetor denominado CNPJ_VETOR que deve ser obrigatoriamente um vetor de números inteiros.(NÃO SERÁ PERMITIDO USAR STRING NESTE PROGRAMA POIS SE USAR STRING NÃO SERÁ CONSIDERADA ESTA QUESTÃO) Depois com estes dígitos calcular o Primeiro e Segundo Dígito Verificador conforme regra abaixo. E depois imprimir na tela o seguinte

“O primeiro dígito verificador para este CNPJ é N”
(onde N é o primeiro dígito verificador que você calculou )
“O segundo dígito verificador para este CNPJ é M “
(onde N é o primeiro dígito verificador que você calculou )

“Logo o CNPJ completo é MMMMMMMMMMDD “

onde MMMMMMMMMMMM são os pirmeiros 12 dígitos
e DD o primeiro e segundo dígitos verificadores

REGRA PARA ACHAR PRIMEIRO E SEGUNDO DÍGITO VERIFICADOR DE CNPJ
Os dígitos verificadores (DV) são criados a partir dos doze primeiros. O cálculo é feito em duas etapas utilizando o módulo de divisão 11. Para exemplificar o processo e tornar mais fácil a explicação vamos calcular os dígitos verificadores de um CNPJ hipotético, por exemplo, 11.444.777/0001-XX.

Calculando o Primeiro Dígito Verificador O primeiro dígito é calculado utilizando-se o seguinte algoritmo.

A) Distribua os 12 primeiros dígitos em um quadro colocando os pesos 5,4,3,2,9,8,7,6,5,4,3,2 abaixo da esquerda para a direita, conforme representação abaixo:

1 1 4 4 4 7 7 7 0 0 0 1
5 4 3 2 9 8 7 6 5 4 3 2

B) Multiplique os valores de cada coluna:

1 1 4 4 4 7 7 7 0 0 0 1
5 4 3 2 9 8 7 6 5 4 3 2
 4 12 8 36 56 49 42 0 0 0 2

C) Calcule o somatório dos resultados (5+4+...+0+2) = 214 2 D) O resultado obtido (214) será divido por 11. Considere como quociente apenas o valor inteiro, o resto da divisão será responsável pelo cálculo do primeiro dígito verificador.
Vamos acompanhar: 214 dividido por 11 obtemos 19 como quociente e 5 como resto da divisão. Caso o resto da divisão seja menor que 2, o nosso primeiro dígito verificador se torna 0 (zero), caso contrário subtrai-se o valor obtido de 11, que é nosso caso. Sendo assim nosso dígito verificador é 11-5, ou seja, 6 (seis).

Já temos portanto parte do CNPJ, confira: 11.444.777/0001-6X.

Calculando o Segundo Dígito Verificador

A) Para o cálculo do segundo dígito será usado o primeiro dígito verificador já calculado. Montaremos uma tabela semelhante a anterior só que desta vez usaremos na segunda linha os valores 6,5,4,3,2,9,8,7,6,5,4,3,2 já que estamos incorporando mais um algarismo para esse cálculo. Veja:

1 1 4 4 4 7 7 7 0 0 0 1 6
6 5 4 3 2 9 8 7 6 5 4 3 2

B) Na próxima etapa faremos como na situação do cálculo do primeiro dígito verificador, multiplicaremos os valores de cada coluna e efetuaremos o somatório dos resultados obtidos: (6+5+...+3+12) = 221.

1 1 4 4 4 7 7 7 0 0 0 1 6
6 5 4 3 2 9 8 7 6 5 4 3 2
6 5 16 12 8 63 56 49 0 0 0 3 12

C) Realizamos novamente o cálculo do módulo 11. Dividimos o total do somatório por 11 e consideramos o resto da divisão.
Vamos acompanhar: 230 dividido por 11 obtemos 20 como quociente e 10 como resto da divisão.

D) Caso o valor do resto da divisão seja menor que 2, esse valor passa automaticamente a ser zero, caso contrário (como no nosso exemplo) é necessário subtrair o valor obtido de 11 para se obter o dígito verificador, como realizado no cálculo do primeiro dígito. Logo, 11-10 = 1 é o nosso segundo dígito verificador.

Chegamos ao final dos cálculos e descobrimos que os dígitos verificadores do nosso CNPJ hipotético são os números 6 e 1, portanto o CNPJ ficaria assim: 11.444.777/0001-61.

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.9k
×
×
  • Create New...