[informatique] le cobol

Voir le sujet précédent Voir le sujet suivant Aller en bas

[informatique] le cobol

Message  Imryss le Mar 23 Sep - 19:44

Pour ceux que ça intéresse, j'ai écris vite-fais un petit programme en cobol. Comme je n'ai pas trouvé de compilateur fonctionnel pour windows, je ne peux pas vous dire si ce code est opérationnel mais en théorie il ne manque rien d'important.

       identification division.
         program-ID somme.

        environement division.  
     * programme pour sommer les éléments d'un stock

       input-output section.
       select file1 assign to 'file1.txt'.
       select file2 assign to 'file2.txt'.

       data division.
       file section.
       fd sequential file1
           data record is entree.
       01 entree.
           05 code pic 9(5).
           05 filler pic x.
           05 nom pic x(20).
           05 filler pic x.
           05 qte  pic 9(4).

       fd sequential file2
           data record is sortie.
       01 sortie pic x(6).

       working storage section

       77 addi pic 9(6) value 0.
       77 edition pic zz9(4).

       procedure division.

           perform initialisation.
           perform traitement.
           perform fin.
           stop run.

       initialisation.

           open input file1.
           open output file2.
           read file1 at end
             move high-value to code
             display 'le fichier est vide'
           end-read.

       traitement.

      * on lit chaque enregistrement et on ajoute la quantité au stock. si le fichier est vide on passe directement à la fin

           perform until code = high-value
             add qte to addi
             read file1 at end
               move high-value to code
             end-read
           end-perform
      * on passe par une picture d'édition pour retirer les 0 non significatifs  
           move addi to edition.
           write sortie from edition.
           display 'le stock total est de  : ' edition.

       fin.
           close file1 file2.


Cela vous paraitra probablement assez lourd comme code mais c'est parce que le programme ne fait pas grand chose, du coups la partie procédure division contenant les instructions parait démesurément petite face au reste.

Petite précision. Les variables sont toutes définies en pic quelque chose. Cela n'initialise pas leurs valeurs mais indique quel type de champs elles peuvent contenir. pic 9 signifie un chiffre entre 0 et 9, pic 9(4) signifie un nombre entre 0 9999, pic x signifie n'importe quel caractère alphanumérique, pic a signifie n'importe quel lettre. Il existe aussi des pic spéciaux (S,Z,$,...) qui servent uniquement pour les variables que l'on veut envoyer dans le rapport d'exécution ou dans un fichier destiné à l'impression.

Les variables peuvent être composés de sous-variables imbriqués les unes dans les autres. Les deux chiffres devant chaque variable correspondent à son niveau d'imbrication. Cela va de 01 à 49. En pratique on va de 05 en 05 pour se laisser de la place si on veut rajouter d'autres niveau sans avoir à tout renuméroter. 77 correspond à un niveau spéciale qui ne peut pas être découpé en sous-variables.

_________________
Depuis que j'ai appris à voyager je suis sorti du rêve.

avatar
Imryss
Rocher-qui-bouge
Rocher-qui-bouge

Masculin Nombre de messages : 3705
Age : 28
Localisation : Là où je suis est ma maison
Date d'inscription : 27/10/2008

Voir le profil de l'utilisateur http://auberge-du-voyageur.1fr1.net

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum