COBOL - Funções intrínsecas - REM


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 - REM
Intrinsic functions - Enterprise COBOL for z/OS 6.3.0

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.