COBOL - Conditional expressions - Combined conditions



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

COBOL - Conditional expressions - Combined conditions
Enterprise COBOL for z/OS, V4.2, Language Reference

Duas ou mais condições podem ser logicamente conectadas para formar uma condição combinada.

A condição a ser combinada pode ser uma das seguintes:

  • Uma condição simples
  • Uma condição simples negada
  • Uma condição combinada
  • Uma condição combinada negada (ou seja, o operador lógico NOT seguido de uma condição combinada entre parênteses)
  • Uma combinação das condições anteriores especificadas de acordo com as regras na tabela a seguir

Tabela 1. Condições combinadas - sequências de elementos permitidas

Elemento de condição combinado Mais à esquerda Quando não estiver mais à esquerda, pode ser imediatamente precedido por: Mais à direita Quando não estiver mais à direita, pode ser imediatamente seguido por:
simple- condition Yes

OR
NOT
AND
(

Yes

OR
AND
)

OR
AND

No

simple-condition
)

No

simple-condition
NOT
(

NOT Yes

OR
AND
(

No

simple-condition
(

( Yes

OR
NOT
AND
(

No

simple-condition
NOT
(

) No

simple-condition
)

Yes

OR
AND
)

Parênteses nunca são necessários quando ANDs ou ORs (mas não ambos) são usados ??exclusivamente em uma condição combinada.
No entanto, parênteses podem ser necessários para modificar as regras de precedência implícita para manter a relação lógica correta de operadores e operandos.

Deve haver uma correspondência individual entre parênteses esquerdo e direito, com cada parêntese esquerdo à esquerda do parêntese direito correspondente.

A tabela a seguir ilustra os relacionamentos entre operadores lógicos e as condições C1 e C2.

Tabela 2. Operadores lógicos e resultados da avaliação de condições combinadas

Value for C1 Value for C2 C1 AND C2 C1 OR C2 NOT (C1 AND C2) NOT C1 AND C2 NOT (C1 OR C2) NOT C1 OR C2
True True True True False False False True
False True False True True True False True
True False False True True False False False
False False False False True False True True

Ordem de avaliação das condições

Parênteses, explícitos e implícitos, definem o nível de inclusão dentro de uma condição complexa.
Duas ou mais condições conectadas apenas pelos operadores lógicos AND ou OR no mesmo nível de inclusão estabelecem um nível hierárquico dentro de uma condição complexa.
Portanto, uma condição complexa inteira é uma estrutura aninhada de níveis hierárquicos, com toda a condição complexa sendo o nível hierárquico mais inclusivo.

Nesse contexto, a avaliação das condições dentro de uma condição complexa inteira começa à esquerda da condição.
As condições conectadas constituintes em um nível hierárquico são avaliadas na ordem da esquerda para a direita, e a avaliação desse nível hierárquico termina assim que um valor de verdade é determinado, independentemente de todas as condições conectadas constituintes nesse nível hierárquico terem sido avaliadas.

Os valores são estabelecidos para expressões e funções aritméticas se e quando as condições que os contêm são avaliadas.
Da mesma forma, condições negadas são avaliadas se e quando é necessário avaliar a condição complexa que elas representam.

Por exemplo:

   NOT A IS GREATER THAN B OR A + B IS EQUAL TO C AND D IS POSITIVE

é avaliado como se estivesse entre parênteses da seguinte maneira:

   (NOT (A IS GREATER THAN B)) OR
   (((A + B) IS EQUAL TO C) AND (D IS POSITIVE))

Ordem de avaliação:

  1. (NOT (A IS GREATER THAN B)) é avaliado, fornecendo algum valor intermediário de verdade, t1 .
    Se t1 for verdadeiro, a condição combinada será verdadeira e nenhuma avaliação adicional ocorrerá.
    Se t1 for falso, a avaliação continuará da seguinte forma.

  2. (A + B) é avaliado, dando algum resultado intermediário, x .

  3. (x IS EQUAL TO C) é avaliado, fornecendo algum valor de verdade intermediário, t2 .
    Se t2 for falso, a condição combinada é falsa e nenhuma avaliação adicional ocorre.
    Se t2 for verdadeiro, a avaliação continuará da seguinte forma.

  4. (D IS POSITIVE) é avaliado, fornecendo algum valor de verdade intermediário, t3 .
    Se t3 for falso, a condição combinada é falsa.
    Se t3 for verdadeiro, a condição combinada é verdadeira.


© Copyright IBM Corp.