COBOL - Funções intrínsecas - REVERSE


Volta a página anterior

Volta ao Menu Principal


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

COBOL - Funções intrínsecas - REVERSE
Intrinsic functions - Enterprise COBOL for z/OS 6.3.0

A função REVERSE retorna uma sequência de caracteres exatamente do mesmo tamanho que o argumento, cujos caracteres são exatamente os mesmos que os especificados no argumento, exceto que eles estão na ordem inversa.
Para argumentos do tipo nacional, as posições dos caracteres são invertidas.

O tipo de função depende do tipo do argumento, da seguinte maneira:

Tipo de argumento Tipo de função
Alphabetic Alphanumeric
Alphanumeric Alphanumeric
National National

argument-1
Deve ser de classe alfabética, alfanumérica ou nacional e deve ter pelo menos um caracter.

O valor retornado é uma sequência de caracteres do mesmo tamanho que o argument-1 , com os caracteres do argument-1 na ordem inversa.
Por exemplo, se o argumento-1 contiver ABC, o valor retornado será CBA.

Exemplo:

       IDENTIFICATION DIVISION.
       PROGRAM-ID. REVERSE.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  WS-VAR1 PIC X(26) VALUE 'ABCDEFGHIJKLMNOPQRSTUVXXYZ'.
       01  WS-VAR3 PIC X(26).
       01  WS-VAR2.
           05  WS-REV OCCURS 0 TO 26 TIMES DEPENDING ON WS-LEN PIC X. 
       01  WS-I    PIC 9(3) VALUE 0.
       01  WS-J    PIC 9(2) VALUE 1. 
       01  WS-LEN  PIC 9(3) VALUE 0. 
       01  WS-CNT  PIC 9(3) VALUE 0.

       PROCEDURE DIVISION.

           MOVE FUNCTION REVERSE (WS-VAR1) TO WS-VAR3
           DISPLAY 'FUNCTION REVERSE : ' WS-VAR3. 

      * OU sem usar a função REVERSE

           INSPECT WS-VAR1 TALLYING WS-CNT FOR TRAILING SPACES.
           MOVE FUNCTION LENGTH(WS-VAR1) TO WS-LEN.
           COMPUTE WS-LEN = WS-LEN - WS-CNT.
           PERFORM VARYING WS-I FROM WS-LEN BY -1 UNTIL WS-I = 0
                   MOVE WS-VAR1(WS-I:1) TO WS-REV(WS-J)
                   ADD 1 TO WS-J
           END-PERFORM

           DISPLAY 'Entrada          : ' WS-VAR1. 
           DISPLAY 'Saida            : ' WS-VAR2. 

           STOP RUN.

Resultado:

       FUNCTION REVERSE : ZYXXVUTSRQPONMLKJIHGFEDCBA
       Entrada          : ABCDEFGHIJKLMNOPQRSTUVXXYZ
       Saida            : ZYXXVUTSRQPONMLKJIHGFEDCBA


© Copyright IBM Corp.