[informatique] le cobol
L'auberge du voyageur :: Arcanes :: Etudes :: Support
Page 1 sur 1
[informatique] le cobol
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.
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.
L'auberge du voyageur :: Arcanes :: Etudes :: Support
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|