digito verificador
/*AS INFORMAÇÕES QUE SEGUEM, FORAM TOMADAS COMO DEFAULT PARA O PROGRAMA*/
/*1- O vetor que recebe p número a ser verificado, não aceita números negativos, o programa percorre todo vetor verificando a existência de números negativos, ao encontrar um, o programa envia uma mensagem de erro e não prossegue com a operação de verificar se o digito verificador está certo ou não;
2- Durante a Algoritimo do Modulo 11, o resto da divisão pode ser 0 ou 1, ocassionando assim um digito de verificador de dois digitos, o que é incoerente, por defaul, o programa considera, nesses caso, que o digito verificador correto devera ser 1;
3- O menor tamanho do vetor de entrada para codigo_numerico é de 2 valores, 1 número e o dígito verificador, no caso deste vetor ser unitário ou nulo o programa enviará uma mensagem de erro, alegando tamanho insuficiente para codigo_verificador*/
#include
int verificar_digito(int numero[])
{
int i, j, contador, acumulador, verificador; contador = 0; /*Verificando o tamanho do vetor*/ for(i = 0; numero[i] != -1; i++) { contador = contador + 1; } /*Calculando o digito verificador, para isso, observa-se que: numero[9]=numero[contador - 1] = difito verificador = 7, numero[8]=numero[contador - 2] = 8, numero[7]=numero[contador - 3] = 6, numero[6]=numero[contador - 4] = 8, numero[5]=numero[contador - 5] = 1, numero[4]=numero[contador - 6] = 6, numero[3]=numero[contador - 7] = 9, numero[2]=numero[contador - 8] = 5, numero[1]=numero[contador - 9] = 8, numero[0]=numero[contador - 10] = 3. operação = 2*numero[contador - 2] + 3*numero[contador-3] + n*numero[contador-n], contador - n = 0*/ acumulador = 0; for(j = 2; j 0) return (1); else return (0);
} int main ()
{
int codigo_numerico[] = {3, 8, 5, 9, 6, 1, 8, 6, 8, 7, -1}; int verificacao,sinal; int i, tam_vet; tam_vet = 0;
/*Calcular