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.