function modulo_10 returns int (valor_calculo as char):
def var i as int.
def var j as int.
def var k as int.
def var count-num as int.
def var vl-num as int.
def var fator as int.
def var soma as int.
def var divide as int.
def var digito as int.
count-num = length(string(valor_calculo)).
j = count-num.
k = 2.
fator = 0.
soma = 0.
do i = 1 to count-num:
vl-num = int(substring(string(valor_calculo), j, 1)).
fator = k * vl-num.
if length(string(fator), "CHARACTER") = 2 then
soma = soma + int(substring(string(fator), 1, 1)) + int(substring(string(fator), 2, 1)).
else
soma = soma + fator.
if k = 2 then
k = 1.
else
k = k + 1.
j = j - 1.
end.
divide = soma modulo 10.
digito = 10 - divide.
/*Observação: se o dígito for igual a 10, será assumido o valor 0*/
if digito = 10 then
digito = 0.
return digito.
end function.
terça-feira, 29 de dezembro de 2009
Função Modulo 10, para Progress(Datasul), muito usada para calculo de digitos verificadores.
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário