Archives de catégorie : COBOL Exemple

Exemple – FONCTION SUM

Voici des exemples de programme utilisant SUM :

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

DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS-AUXILIARES.
    05  VALEUR-1       PIC 9(009)       VALUE 1. 
    05  VALEUR-2       PIC 9(009)       VALUE 2. 
    05  VALEUR-3       PIC 9(009)       VALUE 3. 
    05  VALEUR-4       PIC 9(009)       VALUE 4. 
    05  VALEUR-A       PIC 9(009)       VALUE ZEROES. 

PROCEDURE DIVISION.

001-INIT.

Exemple 1

    MOVE 100 TO VALEUR-A    
    MOVE FUNCTION SUM(VALEUR-1 VALEUR-2 VALEUR-3 VALEUR-4) TO VALEUR-A
 
    DISPLAY "VALEUR-1 ...... " VALEUR-1  
    DISPLAY "VALEUR-2 ...... " VALEUR-2  
    DISPLAY "VALEUR-3 ...... " VALEUR-3  
    DISPLAY "VALEUR-4 ...... " VALEUR-4  
    DISPLAY "VALEUR-A ...... " VALEUR-A

* Resultat de test:

VALEUR-1 ...... 000000001
VALEUR-2 ...... 000000002
VALEUR-3 ...... 000000003
VALEUR-4 ...... 000000004
VALEUR-A ...... 000000010

Exemple 2

    MOVE 100 TO VALEUR-A    
    COMPUTE VALEUR-A = FUNCTION SUM(VALEUR-1 VALEUR-2 VALEUR-3 VALEUR-4 VALEUR-A)
 
    DISPLAY "VALEUR-1 ...... " VALEUR-1  
    DISPLAY "VALEUR-2 ...... " VALEUR-2  
    DISPLAY "VALEUR-3 ...... " VALEUR-3  
    DISPLAY "VALEUR-4 ...... " VALEUR-4  
    DISPLAY "VALEUR-A ...... " VALEUR-A

* Resultat de test:

VALEUR-1 ...... 000000001
VALEUR-2 ...... 000000002
VALEUR-3 ...... 000000003
VALEUR-4 ...... 000000004
VALEUR-A ...... 000000110

    STOP RUN.

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)

Exemple – ADD

Voici des exemples de programme utilisant le ADD :

IDENTIFICATION DIVISION.
PROGRAM-ID.  ADD.
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  VALERR-3      PIC 9(009)       VALUE ZEROES. 

PROCEDURE DIVISION.

001-INIT.

Exemple 1

    MOVE 8 TO VALEUR-1
    ADD  3 TO VALEUR-1

    DISPLAY "VALEUR-1 " VALEUR-1
	
STOP RUN.
 
* Resultat du test:

* VALEUR-1 000000011

Exemple 2

    MOVE 7      TO VALEUR-1
    MOVE 8      TO VALEUR-2
    ADD VALOR-1 TO VALEUR-2	

    DISPLAY "VALEUR-1 " VALEUR-1 
    DISPLAY "VALEUR-2 " VALEUR-2 
	
STOP RUN.

* Resultat du test:

* VALEUR-1 000000007
* VALEUR-2 000000015

Exemple 3

    MOVE 4              TO VALEUR-1
    MOVE 2              TO VALEUR-2
    MOVE 1              TO VALEUR-3
    ADD VALEUR-1 VALEUR-2 TO VALEUR-3 
	
    DISPLAY "VALEUR-1 " VALEUR-1 
    DISPLAY "VALEUR-2 " VALEUR-2 
    DISPLAY "VALEUR-3 " VALEUR-3 
	
STOP RUN.

* Resultat du test:

* VALEUR-1 000000004
* VALEUR-2 000000002
* VALEUR-3 000000007

Exemple 4

    MOVE 30        TO VALEUR-1
    MOVE 20        TO VALEUR-2
    ADD 50 VALEUR-1 TO VALEUR-2	

    DISPLAY "VALEUR-1 " VALEUR-1 
    DISPLAY "VALEUR-2 " VALEUR-2 
	
STOP RUN.
 
* Resultat du test:

* VALEUR-1 000000030
* VALEUR-2 000000100

Exemple 5

    MOVE 30 TO VALEUR-1
    MOVE 20 TO VALEUR-2
    MOVE 40 TO VALEUR-3
    ADD 60 VALEUR-1 VALEUR-2 GIVING VALEUR-3	

    DISPLAY "VALEUR-1 " VALEUR-1 
    DISPLAY "VALEUR-2 " VALEUR-2 
    DISPLAY "VALEUR-3 " VALEUR-3 
	
STOP RUN.

* Resultat du test:

* VALEUR-1 000000030
* VALEUR-2 000000020
* VALEUR-3 000000110

Exemple 6

IDENTIFICATION DIVISION.
PROGRAM-ID. ADD.
AUTHOR.     LA COMMUNAUTE DU COBOL. 
DATA DIVISION.

WORKING-STORAGE SECTION.
01  WS-AUXILIARES.
    05  WS-A    PIC 9(002).
    05  WS-X    PIC 9(002).
    05  WS-Y    PIC 9(002).
    05  WS-Z    PIC 9(002).
	
PROCEDURE DIVISION.

    SET WS-X TO 10.
    SET WS-Y TO 25.
    ADD WS-X WS-Y TO WS-A GIVING WS-Z.
    DISPLAY "A     = " WS-A
    DISPLAY "X + Y = " WS-Z.
	
STOP RUN.

* Resultat du test:

A     = 00
X + Y = 35

Exemple – ACCEPT

Voici des exemples de programme utilisant le ACCEPT :

Exemple 1

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

* Cet exemple montre comment ACCEPT peut être utilisé
* pour obtenir la date et heure du système.

* Le YYYYMMDD dans « CEPT  DATE-JOUR FROM DATE YYYYMMDD. ».
* est une commande de formatage qui assure qu'un contenu de 
* données d'une Année à 4 chiffres.
* Si non utilisé, l'année fournie par le système sera
* de seulement deux chiffres qui peuvent causer 
* des problèmes en l'an 2000.

DATA DIVISION.
WORKING-STORAGE SECTION.

* YYYYMMDD

01  DATE-JOUR.
    05  ANNEE-DATE      PIC 9(004).
    05  MOIS-DATE       PIC 9(002).
    05  JOUR-DATE       PIC 9(002).

* YYYYDDD

01  JOUR-ANNEE.
    05  FILLER          PIC 9(004).
    05  JOUR-DE-ANNNEE  PIC 9(003).

* HHMMSSss   s = S/100

01  TEMPS-DATE.
    05  HEURE-DATE     PIC 9(002).
    05  MINUTE-DATE    PIC 9(002).
    05  FILLER         PIC 9(004).

PROCEDURE DIVISION.

001-INIT.

    ACCEPT  DATE-JOUR   FROM DATE YYYYMMDD.
    ACCEPT  JOUR-ANNEE  FROM DAY YYYYDDD.
    ACCEPT  TEMPS-DATE  FROM TIME.

    DISPLAY "La date est le " JOUR-DATE "/" MOIS-DATE 
            "/" ANNEE-DATE.
    DISPLAY "Aujourd''hui, on est le jour " JOUR-DE-ANNNEE 
            " de l''année ".
    DISPLAY "L''heure est " HEURE-DATE ":" MINUTE-DATE.

    STOP RUN.

Résultat du test : réalisé le 01/02/2023

La date est le 01/02/2023
Aujourd'hui, on est le jour 32 de l'année
L'heure est 10:38

Exemple 2

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

DATA DIVISION.
WORKING-STORAGE SECTION.

01  WSS-CHAMPS-AUXILIARES.
    05 WS-YYYYMMDD        PIC  X(008)    VALUE SPACES. 
    05 WS-YYMMDD          PIC  X(006)    VALUE SPACES. 
    05 WS-HHMMSS          PIC  X(006)    VALUE SPACES. 
    05 WS-HHMMSSCC        PIC  X(008)    VALUE SPACES. 
    05 WS-JOUR-SEMAINE    PIC  9(001)    VALUE ZEROES. 
    05 WS-ANNEE-JOUR      PIC  9(005)    VALUE ZEROES. 

PROCEDURE DIVISION.
   
001-INIT.

    ACCEPT WS-YYYYMMDD     FROM DATE YYYYMMDD                      
    ACCEPT WS-YYMMDD       FROM DATE                               
    ACCEPT WS-HHMMSS       FROM TIME                               
    ACCEPT WS-HHMMSSCC     FROM TIME                               
    ACCEPT WS-JOUR-SEMAINE FROM DAY-OF-WEEK                        
    ACCEPT WS-ANNEE-JOUR   FROM DAY                                

    DISPLAY "Date du jour              " WS-YYYYMMDD                         
    DISPLAY "Date du jour              " WS-YYMMDD                                    
    DISPLAY "Heure du jour             " WS-HHMMSS                                    
    DISPLAY "Heure du jour             " WS-HHMMSSCC                                  
    DISPLAY "Jour de la semaine        " WS-JOUR-SEMAINE                         
    DISPLAY "Année et jour de l''année " WS-ANNEE-JOUR                                    

    STOP RUN.

Résultat du test : réalisé le 01/02/2023

Date du jour             20230201
Date du jour             230201
Heure du jour            103617
Heure du jour            10361779
Jour de la semaine       3
Année et jour de l'année 23032