bonjour,
j'aurais fait ça "à la main"
aujourd'hui il existe peut-être
des fonctions qui font ça "tout seul" ?
01 bin pic s9(4) comp.
01 ref redefines bin.
03 filler pic X.
03 num pic X.
77 maxi pic s9(4) comp value "lg maxi".
77 emis pic X occurs maxi.
77 ind pix s9(4) comp.
....
move 0 to ind.
loop.
add 1 to ind
if ind > maxi then go to fin.
if emis ( ind ) not < "a" and
emis ( ind ) not > "z" then
move emis ( ind ) to num
subtract 32 from ref
move num to emis ( ind ).
go to loop.
fin.
valable pour code Ascii,
a-z = 61 à 7A en héxa
A-Z = 41 à 51, soit 32 de moins.
pas testé, avec sûrement des
fautes de frappe...
j'ai mis des go to, sciemment,
car ça na plait pas à tout le monde.
Depuis le COBOL ANS 85 il existe des fonctions Intrinsèques.
Ce module de 42 fonctions intrinsèques est un identificateur de fonctions dans la Procédure Division. C'est une combinaison syntaxiquement correcte de chaînes de caractères et de séparateurs.
Le format général simplifié est : FUNTION nom de fonction (Argument 1)
Dans le cas qui nous intéresse, c'est à dire transformer une chaîne de caractères Minuscule en une chaîne de caractères Majuscule cela donne :
COB MOVE FUNCTION
UPPER-CASE (I-001030) <=== champ contenant les minuscules
TO I-00130 <=== champ contenant les majuscules
A l'inverse cela donne :
COB MOVE FUNCTION
LOWER-CASE (I-001030) <=== champ contenant les majuscules
TO I-00130 <=== champ contenant les minuscules
****** D'autres exemples :
77 MAX PIC 999 VALUE 100.
Générer 3 NB ENTIERS >= 0 et < MAX
COMPUTE X = MAX * FUNCTION RANDOM
COMPUTE Y = MAX * FUNCTION RANDOM
COMPUTE Z = MAX * FUNCTION RANDOM
DISPLAY "X = " X " Y = " Y " Z = " Z.
****** Calcul d'une moyenne
COMPUTE MOYENNE = FUNCTION MEAN(X, Y, Z)
MOVE MOYENNE TO MOYENNE-E
DISPLAY "La moyenne est de : " MOYENNE-E.
******* Calcul de l'écart type
COMPUTE ECART-TYPE-E =
FUNCTION SQRT (
FUNCTION SUM(
(X - MOYENNE) * (X - MOYENNE),
(Y - MOYENNE) * (Y - MOYENNE),
(Y - MOYENNE) * (Y - MOYENNE)
) / 3
)
DISPLAY "l_écart type (formule) : " ECART-TYPE-E.
Je pourrai vous fournir pour ceux que cela intéresse le tableau des 42
FONCTIONS intrinsèques vac des exemples.
A +
HULK77
__________________________
Ma fabrique de chemises tourne à plein régime !!!