A função "FUNCTION REM" retorna um valor numérico que é resto do primeiro argumento dividido pelo o segundo argumento.
- argument-1
- é um numérico ou um argumento inteiro
- argument-2
- é um numérico ou um argumento inteiro cujo valor não pode ser igual a zero
Regras:
- 1. O tipo desta função é um numérico - PIC 9(XXX)
- 2. O valor retornado é o resto da divisão do primeiro argumento pelo segundo.
Exemplo 1:
*-----------------------------------------------------------------
WORKING-STORAGE SECTION.
*-----------------------------------------------------------------
01 WS-AUXILIARES.
05 WS-RESULTADO PIC 9(010) VALUE ZEROES.
05 WS-DIF-1 PIC 9(010) VALUE ZEROES.
05 WS-DIF-2 PIC 9(010) VALUE ZEROES.
*-----------------------------------------------------------------
PROCEDURE DIVISION.
*-----------------------------------------------------------------
* SINTAXE DO COMANDO
* EXEMPLO 01:
COMPUTE WSS-RESULTADO = FUNCTION REM (121 , 2)
DISPLAY 'FUNCTION REM ........ - ' WSS-RESULTADO
* RESULTADO: FUNCTION REM ........ - 0000000001
* EXEMPLO 02:
MOVE 00010 TO WS-DIF-1
MOVE 00005 TO WS-DIF-2
COMPUTE WSS-RESULTADO = FUNCTION REM (WS-DIF-1 , WS-DIF-2)
DISPLAY 'FUNCTION REM ........ - ' WSS-RESULTADO
* RESULTADO: FUNCTION REM ........ - 0000000000
Exemplo 2:
IDENTIFICATION DIVISION.
PROGRAM-ID. REM.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-DADOS-TESTE.
05 WS-DIVIDENDO PIC 9(009) VALUE 80.
05 WS-DIVISOR PIC 9(009) VALUE 3.
05 WS-QUOCIENTE PIC 9(009).
05 WS-RESTO PIC 9(009).
PROCEDURE DIVISION.
MOVE FUNCTION REM(WS-DIVIDENDO WS-DIVISOR) TO WS-RESTO
DISPLAY 'WS-DIVIDENDO : ' WS-DIVIDENDO.
DISPLAY 'WS-DIVISOR : ' WS-DIVISOR.
DISPLAY 'WS-QUOCIENTE : ' WS-QUOCIENTE.
DISPLAY 'WS-RESTO : ' WS-RESTO.
* USANDO O COMANDO DIVIDE
DIVIDE WS-DIVIDENDO
BY WS-DIVISOR
GIVING WS-QUOCIENTE
REMAINDER WS-RESTO
DISPLAY 'WS-DIVIDENDO : ' WS-DIVIDENDO.
DISPLAY 'WS-DIVISOR : ' WS-DIVISOR.
DISPLAY 'WS-QUOCIENTE : ' WS-QUOCIENTE.
DISPLAY 'WS-RESTO : ' WS-RESTO.
STOP RUN.
Resultado
WS-DIVIDENDO : 000000080
WS-DIVISOR : 000000003
WS-QUOCIENTE : 000000000
WS-RESTO : 000000002
WS-DIVIDENDO : 000000080
WS-DIVISOR : 000000003
WS-QUOCIENTE : 000000026
WS-RESTO : 000000002
Exemplo 3 para achar o DAY-OF-WEEK
*-----------------------------------------------------------------
WORKING-STORAGE SECTION.
*-----------------------------------------------------------------
* DATA NO FORMATO: AAAAMMDD
01 WS-AUXILIARES.
05 WS-DIA PIC 9(001) VALUE ZEROES.
05 WS-DATA PIC 9(008) VALUE ZEROES.
05 WS-NOMEDIA PIC X(007) VALUE SPACES.
*-----------------------------------------------------------------
PROCEDURE DIVISION.
*-----------------------------------------------------------------
* SINTAXE DO COMANDO
MOVE DATA-QUALQUER TO WS-DATA
COMPUTE WS-DIA = FUNCTION REM (FUNCTION INTEGER-OF-DATE(WS-DATA) , 7)
EVALUATE WS-DIA
WHEN 0
MOVE "Domingo" TO WS-NOMEDIA
WHEN 1
MOVE "Segunda" TO WS-NOMEDIA
WHEN 2
MOVE "Terca " TO WS-NOMEDIA
WHEN 3
MOVE "Quarta " TO WS-NOMEDIA
WHEN 4
MOVE "Quinta " TO WS-NOMEDIA
WHEN 5
MOVE "Sexta " TO WS-NOMEDIA
WHEN 6
MOVE "Sabado " TO WS-NOMEDIA
END-EVALUATE
© Copyright IBM Corp.