. Leia um código de cinco algarismos (variável Codigo) e gere o digito verificador (DigitoV) módulo 7 para o mesmo. Supondo que os cinco algarismos do código são ABCDE, uma forma de calcular o dígito desejado, com módulo 7 é: DigitoV = resto da divisão de S por 7, onde S = 6*A + 5*B + 4*C + 3*D + 2*E
S = (6 * A) + (5 * B) + (4 * C) + (3 * D) + (2 * E)
DIGV = S % 7;
Já podemos implementar em diversas linguagens, lembrando que A, B, C, D e E são dígitos de COD. Implementando em Javascript:
COD_NUM = 55480;
COD = COD_NUM+"";
A = parseInt(COD.charAt(0));
B = parseInt(COD.charAt(1));
C = parseInt(COD.charAt(2));
D = parseInt(COD.charAt(3));
E = parseInt(COD.charAt(4));
S = (6 * A) + (5 * B) + (4 * C) + (3 * D) + (2 * E);
DIGV = S % 7;
Para pegar cada valor do codigo informado (ex.: 11111) aplicamos uma operação de MOD para pegar o valor de cada unidade, e neste momento já aplicamos a operação para o calculo de S, salve que o valor do multiplicador começa em 2 e ira incrementando até 6, pois a operação de abstração do digito acontece da direita para esquerada, logo a sequencia fica da seguinte forma: 2*E + 3*D + 4*C + 5*B + 6*A. Logo após aplicamos o MOD de S por 7 para obtermo um inteiro que é nosso código verificador.
#include<stdio.h>
int main(){
int valor, codigo, multiplicador;
printf("Informe o codigo (5 digitos) para verificacao: ");
scanf("%d", &valor);
printf("\n");
codigo = 0;
multiplicador = 2;
while(valor > 0){
codigo += (multiplicador * (valor % 10));
valor = valor / 10;
multiplicador++;
}
printf("Codigo gerado: %d", (codigo%7));
return 0;
}
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar