EZEC11 verifica um dígito de verificação do módulo 11.
EZEC11 pode ser utilizado como qualquer um dos seguintes:
A seguir a seqüência de chamada para EZEC11:
>>-EZEC11---(--xxxx--,---yyyy--,---zzzz--)--;------------------><
Quando usado como rotina de edição de campo variável de mapa, o valor é verificado para o comprimento do campo definido para garantir que ele passe na verificação de módulo 11. Se a verificação falhar, o usuário do programa será solicitado a digitar corretamente os dados.
Suportado em todos os ambientes sem considerações de compatibilidade.
No exemplo a seguir, myinput é definido como dados de caracteres contendo o valor 56621865 (o 5 mais à direita é o dígito de alto-verificação entrado, não parte do número base), mylength é um item de dados binário contendo o valor 8 e myresult é um item de dados binário cujo valor será definido pela rotina EZEC11.
EZEC11(myinput,mylength,myresult);
EZEC11 deriva o dígito de verificação de módulo 11, usando o seguinte algoritmo:
5 6 6 2 1 8 6 5 (dígito de autoverificação) x 2 x 7 x 6 x 5 x 4 x 3 x 2 10 42 36 10 4 24 12
10 + 42 + 36 + 10 + 4 + 24 + 12 = 138
12 _________ 11 |138 11 ______ 28 22 _____ 6
Subtrair o resto de 11 para obter o dígito de autoverificação. (Se o resto for 0 ou 1, 0 é usado.)
11 - 6 = 5
O dígito resultante é o de autoverificação. A variável myresult é definida para 0, se o dígito de autoverificação for gerado, ou para 1, se não for.