Auxílios do VisualAge Generator

EZEG10

EZEG10 gera um dígito de verificação de módulo 10.

Usos

Você pode utilizar EZEG10 como o nome de função em uma instrução de chamada da função.

A seqüência de chamada para EZEG10 é:

>>-EZEG10---(--xxxx--,---yyyy--,---zzzz--)--;------------------><
 

xxxx
Item de dados de caractere em armazenamento de trabalho que contém o número para o qual se quer gerar um dígito de verificação e que inclui uma posição para o dígito de verificação.

yyy
Um item de dados binário de menos de 5 dígitos que contém o número de caracteres a ser usado no item xxxx e o dígito de verificação.

zzzz
Item de dados binário de menos de 5 dígitos que retorna 0 se o dígito de verificação do módulo 10 tiver sido gerado e 1 se não não tiver sido.

Ambientes de Destino

Suportado em todos os ambientes sem considerações de compatibilidade.

Exemplo

No exemplo dado, myinput é definido como dados de caracteres que contêm o valor 1734280 (o 0 da direita é a posição do dígito gerado, podendo ser qualquer valor na entrada), mylength é um item de dados binário que contém o valor 7 e myresult é um item de dados binário cujo valor será definido pela rotina de EZEG10.

EZEG10(myinput,mylength,myresult);

EZEG10 deriva o dígito de verificação de módulo 10, usando o seguinte algoritmo:

  1. Multiplique a posição das unidade do número base dos dados de origem por 2 e multiplique cada posição alternada, da direita para a esquerda, por 2:

    1    7    3    4    2    8    0 (dígito gerado)
       x 2       x 2       x 2
       ___       ___       ___
        14         8        16
    
  2. Somar os dígitos dos produtos aos dígitos do número base que não foram multiplicados por 2:
    1 + 1 + 4 + 3 + 8 + 2 + 1 + 6 = 26
    
  3. Subtrair a soma do próximo número mais alto terminado em 0 para obter o dígito de autoverificação. (Se a diferença for 10, 0 é usado.)
       30 - 26 = 4
    

    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.


[ Início da Página | Página Anterior | Próxima Página | Índice ]