END-SUBSTRACT |
Fin de soustraction |
|---|---|
| Cobol | |
Syntaxe
|
SUBTRACT identifier1 [,identifier2] ... FROM identifierm [ROUNDED] [;ON SIZE ERROR imperativestatement] END-SUBTRACT |
|
SUBTRACT identifier1 [,identifier2] ... FROM identifierm GIVING identifiern ROUNDED [;ON SIZE ERROR imperativestatement] END-SUBTRACT |
|
SUBTRACT (CORRESPONDING|CORR) identifier1 FROM identifierm [ROUNDED] [;ON SIZE ERROR imperativestatement] END-SUBTRACT |
Paramètres
| Nom | Description |
|---|---|
| identifier1 | Ce paramètre représente le premier identificateur (variable, champ ou constante) dont la valeur sera soustraite dans l'opération de soustraction. |
| identifier2 | Ce paramètre est un identificateur supplémentaire, facultatif, à soustraire après identifier1. Plusieurs identificateurs peuvent être utilisés dans la soustraction. |
| identifierm | Ce paramètre indique l'identificateur dont la valeur sera modifiée après la soustraction des autres identificateurs. Ce champ reçoit la valeur du calcul. |
| ROUNDED | Ce paramètre permet d'indiquer que le résultat de la soustraction doit être arrondi à une certaine précision, en fonction des règles définies par le langage. |
| identifiern | Ce paramètre est utilisé dans la variante où le résultat de la soustraction est assigné à un nouvel identificateur, identifiern, au lieu de modifier identifierm. |
| ON SIZE ERROR | Ce paramètre permet de spécifier une ou plusieurs instructions à exécuter si une erreur de taille (par exemple, un dépassement de capacité) survient lors de la soustraction. |
| imperativestatement | Ce paramètre définit l'instruction à exécuter en cas d'erreur de taille, spécifiée dans ON SIZE ERROR. |
| CORRESPONDING/CORR | Ce paramètre permet d'effectuer une soustraction correspondant entre des groupes de champs ayant les mêmes noms. Cette forme simplifie les opérations sur des groupes de données. |
Description
Cette instruction permet d'indiquer la fin d'une instruction SUBTRACT.
Remarques
- L'instruction END-SUBTRACT permet de structurer clairement les blocs de soustraction. Elle est particulièrement utile dans les programmes COBOL modernes où la lisibilité et la structuration du code sont essentielles. Elle remplace l'utilisation du point (.) traditionnel et rend la fin du traitement explicite, surtout dans les blocs contenant plusieurs instructions imbriquées.
- Le mot-clef GIVING apporte une souplesse importante à l'instruction SUBTRACT. Il permet de conserver intacte la valeur de l'opérande d'origine (identifierm) tout en transférant le résultat de la soustraction dans une autre variable (identifiern). Cela évite d'écraser les données sources, ce qui est crucial pour les traitements successifs.
- L'option ROUNDED dans l'instruction SUBTRACT permet un contrôle fin des résultats numériques. Lorsque des calculs impliquent des nombres à virgule flottante ou des champs numériques limités en taille, cet ajout garantit que les résultats restent précis et cohérents avec les attentes métier.
- L'utilisation de CORRESPONDING ou CORR permet des soustractions automatiques sur des groupes de données. Cette fonctionnalité est très utile lorsque deux structures partagent des noms de champs identiques : la soustraction se fait alors champ par champ sans avoir à coder chaque opération individuellement, ce qui réduit les erreurs et le code répétitif.
- L'option ON SIZE ERROR sécurise l'exécution des traitements arithmétiques. Lorsqu'un dépassement de capacité survient (par exemple, si le résultat dépasse les limites du champ cible), cette clause permet d'intercepter l'erreur et d'agir immédiatement, évitant ainsi la corruption des données ou un comportement imprévisible.
- L'instruction END-SUBTRACT clarifie la portée des blocs d'instructions. Dans des programmes complexes contenant plusieurs opérations imbriquées, l'utilisation explicite d'un mot de fin comme END-SUBTRACT améliore la compréhension du code, en délimitant visuellement la fin d'un traitement arithmétique.
- SUBTRACT peut être utilisée avec une liste d'identificateurs. Cela permet d'additionner plusieurs valeurs en une seule opération, en les soustrayant successivement du même champ. C'est une méthode efficace pour réaliser des soustractions cumulées, mais elle nécessite une attention particulière pour éviter des résultats erronés.
- La compatibilité entre les types de données est cruciale dans SUBTRACT. Le programmeur doit s'assurer que tous les identificateurs impliqués dans l'opération sont compatibles en termes de type (numérique) et de taille. Un mauvais appariement peut entraîner des erreurs d'exécution, surtout dans le cas de l'utilisation de groupes avec CORRESPONDING.
Dernière mise à jour : Jeudi, le 28 juillet 2011