Exemple – COMPUTE

Voici des exemple de programme utilisant COMPUTE :

IDENTIFICATION DIVISION.
PROGRAM-ID.  COMPUTE.
AUTHOR.      LA COMMUNAUTE DU COBOL.

DATA DIVISION.
WORKING-STORAGE SECTION.

01  WS-AUXILIARES.
    05  VALEUR-1      PIC 9(009)         VALUE ZEROES. 
    05  VALEUR-2      PIC 9(009)         VALUE ZEROES. 
    05  VALEUR-3      PIC 9(009)         VALUE ZEROES. 
    05  VALEUR-4      PIC 9(009)V9(002)  VALUE ZEROES. 
    05  VALEUR-5      PIC S9(009)        VALUE ZEROES. 
    05  VENTES        PIC 9(009)         VALUE ZEROES. 
    05  QUANTITE      PIC 9(009)         VALUE ZEROES. 

PROCEDURE DIVISION.

001-INIT.

Exemple 1

    MOVE 10 TO QUANTITE
    MOVE 09 TO VALEUR-1
    COMPUTE VENTES  = QUANTITE * VALEUR-1 / 5	

    DISPLAY "QUANTITE     " QUANTITE  
    DISPLAY "VALEUR-1     " VALEUR-1  
    DISPLAY "VENTES       " VENTES  

* Resultat du test:

* QUANTITE     000000010
* VALEUR-1     000000009
* VENTES       000000018

Exemple 2

    MOVE 05 TO VALEUR-1
    DISPLAY "VALEUR-1 AVANT  " VALEUR-1
    COMPUTE VALEUR-1 = VALEUR-1 + 1  
    DISPLAY "VALEUR-1 APRÈS " VALEUR-1
	
* Resultat du test:

* VALEUR-1 AVANT  000000005
* VALEUR-1 APRÈS  000000006

Exemple 3

    MOVE 05 TO VALEUR-1
    MOVE 15 TO VALEUR-2
    COMPUTE VALEUR-3 = VALEUR-1 - VALEUR-2 
    DISPLAY "VALEUR-1        " VALEUR-1  
    DISPLAY "VALEUR-2        " VALEUR-2  
    DISPLAY "VALEUR-3        " VALEUR-3  

* Resultat du test:

* VALEUR-1        000000005
* VALEUR-2        000000015
* VALEUR-3        000000010

Exemple 4

    MOVE 05 TO VALEUR-1
    MOVE 15 TO VALEUR-2
    COMPUTE VALEUR-3 = VALEUR-1 * VALEUR-2
    DISPLAY "VALEUR-1        " VALEUR-1  
    DISPLAY "VALEUR-2        " VALEUR-2  
    DISPLAY "VALEUR-3        " VALEUR-3  

* Resultat du test:

* VALEUR-1        000000005
* VALEUR-2        000000015
* VALEUR-3        000000075

Exemple 5

    MOVE 05 TO VALEUR-1
    MOVE 15 TO VALEUR-2
    COMPUTE VALEUR-3 = VALEUR-1 + VALEUR-2 + 50	
    DISPLAY "VALEUR-1        " VALEUR-1  
    DISPLAY "VALEUR-2        " VALEUR-2  
    DISPLAY "VALEUR-3        " VALEUR-3  

* Resultat du test:

* VALEUR-1        000000005
* VALEUR-2        000000015
* VALEUR-3        000000070

Exemple 6

    MOVE 05 TO VALEUR-1
    DISPLAY "VALEUR-1 AVANT  " VALEUR-1
    COMPUTE VALEUR-1 = VALEUR-1 - 1  
    DISPLAY "VALEUR-1 APRES  " VALEUR-1

* Resultat du test:

* VALEUR-1 AVANT  000000005
* VALEUR-1 APRES  000000004

Exemple 7

    COMPUTE VALEUR-1 VALEUR-2 VALEUR-3 = 2 * 3	
    DISPLAY "VALEUR-1        " VALEUR-1  
    DISPLAY "VALEUR-2        " VALEUR-2  
    DISPLAY "VALEUR-3        " VALEUR-3  

* Resultat du test:

* VALEUR-1        000000006
* VALEUR-2        000000006
* VALEUR-3        000000006

Exemple 8

    COMPUTE VALEUR-1 = 33 - 2 * (5 + 8 / 2 - (4 * 6 - 20 * (9 - 8)))

* Resultat du test:

  33 - 2 * (5 + 8 / 2 - (4 * 6 - 20 * (9 - 8)))
= 33 - 2 * (5 + 8 / 2 - 4)
= 33 - 2 * (5 + 4 - 4)
= 33 - 2 * 5
= 33 - 10

* VALEUR-1        000000023

Exemple 9

    COMPUTE VALEUR-1 = 63 - 2 * (5 + (8 / 2 - 4 * 6 - 20 * (19 - 17)))

* Resultat du test:

= 63 - 2 * (5 + (8 / 2 - 4 * 6 - 20 * 2))
= 63 - 2 * (5 + (4 - 24 - 40))
= 63 - 2 * (5 + (-60))
= 63 - 2 * (-55)
= 63 + 110

* VALEUR-1        000000173

Exemple 10

    COMPUTE VALEUR-5 = -3 * (4 - 6) - 2 * (5 * (3 - 5 * (-7 + 5) - 3))

* Resultat du test:

= -3 * (-2) - 2 * (5 * (3 - 5 * (-2) - 3))
=  6 - 2 * (5 * (3 + 10 - 3))
=  6 - 2 * (5 * 10)
=  6 - 2 * 50
=  6 - 100
= -94

* VALEUR-5       -000000094

Exemple 11

    MOVE 05 TO VALEUR-1
    MOVE 15 TO VALEUR-2
    COMPUTE VALEUR-2 ROUNDED = VALEUR-1 / 5	
    DISPLAY "VALEUR-1        " VALEUR-1  
    DISPLAY "VALEUR-2        " VALEUR-2  

* Resultat du test:

* VALEUR-1 AVANT  000000005
* VALEUR-2 AVANT  000000015

* VALEUR-1 APRES  000000005
* VALEUR-2 APRES  000000001

Exemple 12

    MOVE 11 TO VALEUR-1
    MOVE 03 TO VALEUR-2
    COMPUTE VALEUR-4 ROUNDED = VALEUR-1 / VALEUR-2	
    DISPLAY "VALEUR-1        " VALEUR-1  
    DISPLAY "VALEUR-2        " VALEUR-2  
    DISPLAY "VALEUR-4        " VALEUR-4  

* Resultat du test:

* VALEUR-1        000000011
* VALEUR-2        000000003
* VALEUR-4        000000003.67 (3.66666666666)

Exemple 13

    MOVE 10 TO VALEUR-1
    MOVE 03 TO VALEUR-2
    COMPUTE VALEUR-4 ROUNDED = VALEUR-1 / VALEUR-2	
    DISPLAY "VALEUR-1        " VALEUR-1  
    DISPLAY "VALEUR-2        " VALEUR-2  
    DISPLAY "VALEUR-4        " VALEUR-4  

* Resultat du test:

* VALEUR-1        000000010
* VALEUR-2        000000003
* VALEUR-4        000000003.33 (3.33333333333)