COBOL - Exemplos simples - Utilização do Nivel 88 - www.cadcobol.com.br



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

COBOL - Exemplos simples - Utilização do Nivel 88 - Itens de Nome de Condição

Um item de nível 88 é usado para dar um nome a uma condição.

Usar um nome de condição tem dois benefícios principais:

  • Ele permite que um nome descritivo seja atribuído ao que, de outra forma, pode não ser uma razão óbvia para um teste.

  • Se uma condição que está sujeita a alteração devido a uma condição além do controle do Desenvolvedor e essa condição é testada em vários lugares na PROCEDURE DIVISION, usar o nome da condição na divisão em vez da condição real permite que o programador que mantém o programa mude os valores que definem a condição em apenas um local na DATA DIVISION, em vez de ter que procurar todas as ocorrências individuais na PROCEDURE DIVISION.

Um pequeno exemplo

       05  WS-COMPANY         PIC 9(004).
           88  WS-BRASILIA    VALUES  3
                                     15
                                     39 THRU 42
                                     76.

       Para testar uma empresa fazendo negócios em Brasilia, sem o item de níveis 88, 
	   você teria que codificar:

      * IF condição simples:

           IF  WS-COMPANY EQUAL  3 OR 15 OR 39 OR
                                40 OR 41 OR 42 OR 76

      * IF com a condição do Nível 88:

           IF  WS-BRASILIA 
               descrever a rotina 
           END-IF

Não seria aparente para a pessoa lendo o código qual condição você estava testando.
Com o 88 no lugar, você poderia codificar o teste assim:

Qualquer pessoa lendo o código poderia dizer para qual condição você estava testando e se a verificação foi feita várias vezes ao longo da PROCEDURE DIVISION e a lista de empresas que fazem negócios na Califórnia muda, é necessário apenas alterar a lista de valores associados ao 88- item de nível.

Embora o nome de dados associado a um item de nível 88 possa ter qualquer valor, o próprio item de nível 88 pode ter apenas um de dois valores, verdadeiro ou falso.
O item é verdadeiro se o item de dados imediatamente acima de 88 tiver algum dos valores associados ao item 88, caso contrário, é falso.

Os itens de nível 88 podem ser associados a itens de grupo ou elementares.

IDENTIFICATION DIVISION.
PROGRAM-ID.  NIVEL88.
AUTHOR.      DORNELLES CARLOS ALBERTO.

* Um programa de exemplo que demonstra o uso do nível 88
* O verbo EVALUATE eh utilizado.

DATA DIVISION.
WORKING-STORAGE SECTION.

01  OPCAO               PIC X(001).
    88 VOGAL            VALUE "a", "e", "i", "o", "u"
                              "A", "E", "I", "O", "U".

    88 CONSOANTE        VALUE "b", "c", "d", "f", "g", "h"
                              "j" THRU "n", "p" THRU "t", "v" THRU "z"
                              "B", "C", "D", "F", "F", "H"
                              "J" THRU "N", "P" THRU "T", "V" THRU "Z".

    88 NUMERO           VALUE "0" THRU "9".

    88 CARACTER-VALIDO  VALUE "a" THRU "z", "A" THRU "Z"
                              "0" THRU "9".

PROCEDURE DIVISION.

001-INICIO.

    DISPLAY "Insira um caracter ou um dígito.".

    ACCEPT OPCAO.

    EVALUATE TRUE
        WHEN VOGAL     DISPLAY "OPCAO " OPCAO " eh uma VOGAL."
        WHEN CONSOANTE DISPLAY "OPCAO " OPCAO " eh uma CONSOANTE."
        WHEN NUMERO    DISPLAY "OPCAO " OPCAO " eh um  NUMERO."
        WHEN OTHER     DISPLAY  OPCAO " OPCAO INVALIDA"
    END-EVALUATE

    STOP RUN.