Découvrons le COBOL, Irremplaçable et irremplaçé.

Initialisation et manipulation des variables.

C’est parti pour manipuler des variables.

Précisions

Je ne parlerai pas des conditions if/else dans ce chapitre. C’est une notion très simple qui n’est qu’une question de syntaxe comparé aux langages modernes :

IF age < 18 THEN
  DISPLAY apl-mineur
ELSE
  DISPLAY apl-majeur
END-IF.

Il est aussi possible d’utiliser une autre forme de boolean directement dans la déclaration :

DATA DIVISION.
  WORKING-STORAGE SECTION.
    77 note PIC 9(2).
      *> bleu est vraie si sa variable est 10
      88 bleu VALUE 10.
      *> mineur est vraie si sa valeur est comprise entre 0 et 17
      88 mineur VALUE 0 THROUGH 17.
      *> majeur est vraie si sa valeur est comprise entre 18 et 99
      88 majeur VALUE 18 THRU 99. 

C’est très simple ! Et le SWITCH est tout aussi simple et est l’instruction EVALUATE :

EVALUATE age
WHEN age < 17 
DISPLAY 'Mineur'
WHEN age > 18
Display 'Majeur'
WHEN age = 18
DISPLAY 'Vient d''être majeur'
*> WHEN OTHER
*> Au cas où
END-EVALUATE.

La plupart des langages modernes initialisent les variables directement selon leur type. Ainsi il est possible d’afficher une variable nouvellement créée. Selon votre compilateur COBOL ce n’est pas toujours le cas. Essayez ceci :

IDENTIFICATION DIVISION.
PROGRAM-ID. IDENTITE.
DATA DIVISION.
  WORKING-STORAGE SECTION.
    77 age PIC 9(2).
PROCEDURE DIVISION.
DISPLAY age.
STOP RUN.

Avec gnu-cobol ce n’est normalement pas le cas et vous devriez voir s’afficher ’00’. Dans notre cas, le initialize peut être utilisé comme un “reset” de la valeur ou par son utilisation plus complexe à lire dans la documentation. Testez le code suivant. La fonction MOVE permet d’affecter une valeur à une variable.

IDENTIFICATION DIVISION.
PROGRAM-ID. IDENTITE.
DATA DIVISION.
  WORKING-STORAGE SECTION.
    77 age PIC 9(2).
PROCEDURE DIVISION.
MOVE 20 to age.
INITIALIZE age.
DISPLAY age.
STOP RUN.

Vous voyez l’effet qu’a initialize ?

Et pour faire très rapide dans votre apprentissage et parce que vous n’êtes pas plus bête que moi, voici un code. A vous de déchiffrer ce qu’il fait. (Indice : c’est très intuitif)

IDENTIFICATION DIVISION.
PROGRAM-ID. IDENTITE.
DATA DIVISION.
  WORKING-STORAGE SECTION.
    77 a PIC 9(2).
    77 b PIC 9(2).
    77 resultat PIC 9(5).
  SCREEN SECTION.
    1 spl-a.
      2 LINE 5 COL 5 VALUE 'Chiffre 1 :'.
      2 PIC 9(2) TO a REQUIRED.
    1 spl-b.
      2 LINE 6 COL 5 VALUE 'Chiffre 2 :'.
      2 PIC 9(2) TO b REQUIRED.
    1 apl-resultat.
      2 LINE 7 COL 5 VALUE 'Le résultat est :'.
      2 PIC 9(5) FROM resultat.
PROCEDURE DIVISION.
DISPLAY spl-a.
ACCEPT spl-a.
DISPLAY spl-b.
ACCEPT spl-b.
COMPUTE resultat = a * b.
*> Remplacez ensuite par ceci :
*> MOVE 20 TO resultat.
*> ADD 80 TO resultat.
DISPLAY apl-resultat.

STOP RUN.

Remarquez que si vous dépassez la capacité de résultat, celui-ci sera réinitialisé.

COMPUTE : permet de réaliser une opération arithmétique

ADD : Ajoute la valeur à la variable. Opposé de SUBSTRACT.

Il reste nombre d’autres éléments COBOL à apprendre comme les paragraphes, les boucles, les tableaux, les reports, la manipulation de fichiers, la manipulation de base de données relationnelle, etc. Il existe de bons tutoriels là dessus tout en ayant la documentation de GNU-COBOL toujours sous la main pour s’adapter à son lexique, notamment les mots réservés qui sont un très bon point de départ pour apprendre !

J’espère que cette petite découverte vous aura plu. Cela fait suite à ce que j’ai pu apprendre pendant le confinement. A vous d’approfondir comme j’ai pu le faire et de concevoir vos premiers programmes.

Laisser un commentaire