O comando COMPUTE atribui o valor de uma expressão aritmética a uma referência especificada. O COMPUTE é uma palavra-chave e não pode ser abreviada.
>>-COMPUTE--refence--=--expression--;--------------------->
reference
Um válido z / OS depurador COBOL referência numérica.
expression
Um válido z / OS depurador COBOL expressão numérica.
Notas:
- Se você estiver depurando um programa COBOL otimizado, COMPUTE para atribuir um valor a uma variável de programa somente se você SET WARNING OFF comando.
- Se você está depurando um programa COBOL otimizado e você especificar uma expressão , você pode fazer referência a variáveis do programa que não foram descartados pelo otimizador.
- Se z/OS depurador foi iniciado devido a uma condição computacional ou uma atenção interromper, usando uma atribuição para definir uma variável pode não dar os resultados esperados. Isto é devido à incerteza de valores de variáveis dentro de declarações em oposição aos seus valores em limites de declaração.
- COMPUTE atribui um valor apenas a um único receptor; Diferentemente de COBOL, variáveis de receptor múltiplas não são suportadas.
- A Palavra-chave "EQUAL" não é suportada ("=" deve ser utilizado).
- Palavra-chaves ROUNDED e SIZE ERROR não são suportadas, por isso END-COMPUTE não é suportado.
- COMPUTE não pode ser utilizado para executar um cálculo com um campo de data janelas se a expressão é constituída por mais do que um operando.
- Qualquer campo de data expandido especificado como um operando na expressão é tratado como um campo nondate.
- O resultado da avaliação da expressão é sempre considerada como sendo um campo nondate.
- Se a expressão é constituída por um único operando numérico, o COMPUTE será tratado como um MOVE portanto, sujeitas às mesmas regras que o comando MOVE.
- Se o parâmetro DATA do comando PLAYBACK ENABLE estiver em vigor para a unidade de compilação, COMPUTE pode ser usado enquanto você repete as instruções gravadas usando o comando PLAYBACK. O objetivo do comando COMPUTE deve ser uma variável de sessão.
- O valor atribuído a uma variável é sempre atribuído ao armazenamento para essa variável. Em um programa otimizado, uma variável pode ser temporariamente atribuída a um registrador, e um novo valor atribuído a essa variável não altera necessariamente o valor usado pelo programa.
Exemplos:
- Atribuir a variável X o valor de A + 6.
COMPUTE X = A + 6;
- Atribuir à variável mycode o valor Z/OS Debugger variável %PATHCODE + 1.
COMPUTE mycode = %PATHCODE + 1;
- Atribuir a variável XX O resultado da expressão (A + E (1)) / C * 2.
COMPUTE XX = (A + E(1)) ⁄ C * 2;
Você também pode usar elementos de tabela em tais atribuições como mostrado no exemplo a seguir.
COMPUTE itm-2(1,2) = (a + 10) ⁄ e(2);