COBOL - Conditional expressions - National comparisons



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

COBOL - Conditional expressions - National comparisons
Enterprise COBOL for z/OS, V4.2, Language Reference

Uma comparação nacional é uma comparação do valor do caráter nacional de dois operandos da classe nacional.

Quando a condição de relação especifica um operando que não é nacional de classe, esse operando é convertido em um item de dados da categoria nacional antes da comparação.

DBCS
Um operando DBCS é tratado como se tivesse sido movido para um item de dados temporário da categoria nacional do mesmo tamanho que o operando DBCS.
Os caracteres DBCS são convertidos nos caracteres nacionais correspondentes.
A página de código-fonte usada para a conversão é a que está em vigor na opção do compilador CODEPAGE quando o código-fonte foi compilado.

Alphabetic, alphanumeric, alphanumeric-edited, and numeric-edited with usage DISPLAY
O operando é tratado como se tivesse sido movido para um item de dados temporário da categoria nacional do comprimento necessário para representar o número de posições de caracteres naquele operando.
Caracteres alfanuméricos são convertidos nos caracteres nacionais correspondentes.
A página de código-fonte usada para a conversão é a que está em vigor na opção do compilador CODEPAGE quando o código-fonte foi compilado.

Numeric integer
Um operando numérico inteiro é tratado como se tivesse sido movido para um item de dados temporário da categoria alfanumérica com um comprimento igual ao número de dígitos no número inteiro.
O valor não assinado é usado. O item de dados temporário resultante é então convertido como um operando alfanumérico.

External floating-point
Um item de ponto flutuante de exibição é tratado como se fosse um item de dados da categoria alfanumérica, e não como um valor numérico, e depois convertido como um operando alfanumérico.

Um item de ponto flutuante nacional é tratado como se fosse um item de dados da categoria nacional, e não como um valor numérico.

Os movimentos implícitos para as conversões são executados de acordo com as regras da instrução MOVE.

O item de dados nacional da categoria resultante é usado na comparação de dois operandos nacionais.

Comparação de dois operandos nacionais

Se os operandos tiverem comprimento desigual, a comparação continuará como se o operando mais curto fosse preenchido à direita com o caractere de espaço nacional padrão (NX'0020 ') para tornar os operandos de comprimento igual.
A comparação prossegue de acordo com as regras para a comparação de operandos de igual comprimento.

Se os operandos tiverem o mesmo comprimento, a comparação prosseguirá comparando as posições de caracteres nacionais correspondentes nos dois operandos, começando na posição mais à esquerda, até que caracteres nacionais desiguais sejam encontrados ou que a posição de caráter nacional mais à direita seja alcançada, o que ocorrer primeiro.
Os operandos são determinados como iguais se todos os caracteres nacionais correspondentes forem iguais.

O caráter nacional desigual encontrado pela primeira vez nos operandos é comparado para determinar a relação dos operandos.
O operando que contém o caractere nacional com o maior valor de intercalação é o operando maior.

O valor de intercalação mais alto é determinado usando o valor hexadecimal de caracteres.

A cláusula PROGRAM COLLATING SEQUENCE não tem efeito nas comparações de operandos nacionais.



© Copyright IBM Corp.