Des cas simples, toujours bon à avoir sous la main, ou ici plus particulièrement sous les yeux et à portée d’internet !
Dans cet article je vais parler de quelques bases de manipulations de données en Cobol:
WORKING-STORAGE SECTION.
01 WORKING-VAR.
05 W-SOLDMOYEN-15-2 PIC S9(15)V9(2) COMP-3.
05 W-SOLDMOYEN-17 PIC S9(17) COMP-3.
PROCEDURE DIVISION.
display 'Variables non renseignées :'
display '15-2 :' W-SOLDMOYEN-15-2
display '17 :' W-SOLDMOYEN-17
move 12,34 to W-SOLDMOYEN-15-2
move 1234 to W-SOLDMOYEN-17
display 'Variables renseignées :'
display '15-2 :' W-SOLDMOYEN-15-2
display '17 :' W-SOLDMOYEN-17
move W-SOLDMOYEN-15-2 to W-SOLDMOYEN-17
display 'Variables après passage de 15-2 à 17 :'
display '15-2 :' W-SOLDMOYEN-15-2
display '17 :' W-SOLDMOYEN-17
compute W-SOLDMOYEN-17 = W-SOLDMOYEN-15-2 * 100
display 'Variables après multiplic. de 15-2 par 100 à 17 :'
display '15-2 :' W-SOLDMOYEN-15-2
display '17 :' W-SOLDMOYEN-17
* Les deux techniques suivantes marchent :
move W-SOLDMOYEN-17 to W-SOLDMOYEN-15-2
* ... laquelle des deux est la meilleure ?
compute W-SOLDMOYEN-15-2 = W-SOLDMOYEN-17
display 'Variables après passage de 17 à 15-2 :'
display '15-2 :' W-SOLDMOYEN-15-2
display '17 :' W-SOLDMOYEN-17
move 12345678901234567 to W-SOLDMOYEN-17
compute W-SOLDMOYEN-15-2 = W-SOLDMOYEN-17
display 'Variable 15-2 après compute de 12345678901234567 :'
display '15-2 :' W-SOLDMOYEN-15-2
display '17 :' W-SOLDMOYEN-17
Ce qui nous donne en sortie :
Variables non renseignées : 15-2 :00000000000000000 17 :00000000000000000 Variables renseignées : 15-2 :00000000000001234 17 :00000000000001234 Variables après passage de 15-2 à 17 : 15-2 :00000000000001234 17 :00000000000000012 Variables après multiplic. de 15-2 par 100 à 17 : 15-2 :00000000000001234 17 :00000000000001234 Variables après passage de 17 à 15-2 : 15-2 :00000000000123400 17 :00000000000001234 Variable 15-2 après compute de 12345678901234567 : 15-2 :34567890123456700 17 :12345678901234567
Voilà pour les manipulations du jour, le but étant de retrouver facilement quelles actions donne quels résultats en étant sûr des données et ne pas avoir à retaper un cas de test ou de faire des displays abusifs ;)