2011-09-26 1 views
2

Possible en double:
cobol difference with Picture having a dash (-) and a having a Xtraits Cobol sont me confondaient

j'attache à se familiariser avec Cobol et ne peut pas comprendre les tirets lors du formatage d'un numéro. J'ai cet exemple:

--9

Ai-je raison à ce qui suit?
Le premier tiret - Si le nombre est négatif mettre un tiret sinon ne le faites pas.
le deuxième tiret - je suis confus avec cela. Il y a déjà un tiret au début pour spécifier si c'est négatif ou positif.
9 - Chiffre numérique (0-9)

Un exemple serait bon. : S

Merci

Répondre

1

Compte tenu de votre previous question, je ne sais pas ce que vous rencontrez des problèmes. Mais essayons à nouveau ...

Dans COBOL, les champs d'affichage numériques peuvent contenir différents types de "ponctuation". Cette "ponctuation" est définie dans la clause PICTURE des éléments. Voici quelques exemples du type de symboles de ponctuation que vous pouvez utiliser: Les points décimaux explicites, les signes plus/moins, les indicateurs CR/DR et les séparateurs de milliers de dollars (virgules en Amérique du Nord). Il existe un ensemble de règles bien définies qui déterminent le type de "ponctuation" pouvant apparaître dans la clause PICTURE et où. Ce lien vers l'édition PICTURE CLAUSE explique comment construire (ou lire) une clause PICTURE donnée. Une chose que vous, et beaucoup d'autres personnes qui découvrent COBOL, est en train de faire, c'est qu'une définition de données dans COBOL spécifie deux types d'informations distinctement différentes concernant les données d'affichage numériques. L'un est la gamme de valeurs qu'il peut contenir et l'autre est la façon dont cette plage de valeurs peut être affichée. Votre exemple: PICTURE --9 me dit deux choses à propos de l'élément de données: 1) Les valeurs sont des nombres entiers compris entre -99 et +99, et 2) L'affichage de cet élément prendra 3 espaces. Si le nombre est positif, des espaces apparaîtront avant le premier chiffre non nul. Si le nombre est négatif, un signe moins apparaîtra immédiatement à gauche du premier chiffre non nul. Considérez l'instruction DISPLAY COBOL suivante:

DISPLAY '>' DISP-NBR '<' 

IF DISP-NBR a une clause PICTURE de: --9 voici comment différentes valeurs seront affichées.

0 displays as: > 0< 
-1 displays as: > -1< 
-11 displays as: >-11< 
10 displays as: > 10< 

Notez que tous les affichages prennent 3 positions de caractères. Au moins 1 chiffre sera toujours affiché (à cause du '9' dans la clause PICTURE), à part cela, aucun zéros de tête n'est affiché. Un signe moins s'affichera uniquement pour les valeurs négatives.Le signe moins, s'il est affiché, sera immédiatement à gauche du premier chiffre affiché.

Maintenant, pour vous répondre à une question précise: Le nombre total de positions de caractères nécessaires pour afficher un élément de données d'affichage numérique est déterminé par la longueur du PICTURE. Vous avez une image de 3 caractères, donc 3 positions de caractères sont nécessaires. Lorsque un signe est spécifié dans l'IMAGE, un espace lui est toujours réservé. C'est ce qui limite la plage des entiers à ceux contenant au plus 2 chiffres. Le deuxième signe moins indique «suppression nulle». La suppression du zéro signifie simplement ne pas imprimer les zéros en tête. Un seul signe moins est imprimé et sera immédiatement à gauche du premier chiffre affiché. COBOL contient beaucoup de flexibilité en ce qui concerne l'affichage des nombres. Comprendre la clause d'affichage numérique PICTURE est la clé pour comprendre comment tout cela fonctionne.

1

de stackoverflow:cobol-difference-with-picture-having-a-dash-and-a-having-a-x

Le tableau de bord signifie que si vous avez un nombre négatif, un tableau de bord sera indiquée à côté (à gauche) du nombre. Un seul tiret sera affiché . Si le nombre est positif, un espace sera affiché pour chaque tiret .

+0

J'ai vu ça. Est-ce que mon exemple signifie que le nombre peut être au maximum de 3 caractères. La plage de numéros – Decrypter

+0

doit être comprise entre -99 et 99, donc seulement 2 caractères, voir http://supportline.microfocus.com/Documentation/books/sx50/lhpdf40g.htm#0018 aussi –