SQRT |
Racine carré |
|---|---|
| Cobol | |
Syntaxe
| FUNCTION SQRT(exp) |
Paramètres
| Nom | Description |
|---|---|
| exp | Ce paramètre permet d'indiquer l'expression contenant le nombre à traiter. |
Description
Cette fonction retourne la racine carrée d'une valeur.
Algorithme
|
MODULE SQRT(X) SI X = 0.0 ALORS RETOURNE 0.0 SINON M ← 1.0 XN ← X BOUCLE FAIRE TANT QUE XN >= 2.0 XN ← 0.25 x XN M ← 2.0 x M FIN BOUCLE FAIRE TANT QUE BOUCLE FAIRE TANT QUE XN < 0.5 XN ← 4.0 x XN M ← 0.5 x M FIN BOUCLE FAIRE TANT QUE A ← XN B ← 1.0 - XN BOUCLE REPETER A ← A x (1.0 + 0.5 x B) B ← 0.25 x (3.0 + B) x B x B FIN BOUCLE JUSQU'A B ← 1.0E - 15 RETOURNE A x M FIN SI |
Remarques
- La fonction SQRT permet d'effectuer une opération mathématique avancée de manière simple : Elle retourne la racine carrée positive d'un nombre, ce qui est utile dans les calculs statistiques, financiers ou scientifiques. Cette fonction évite d'avoir à coder manuellement un algorithme de racine carrée.
- Le paramètre exp doit contenir une valeur numérique valide et positive : Si l'expression fournie est négative, le résultat est indéfini en COBOL standard, car la racine carrée d'un nombre négatif n'est pas un réel. Cela peut entraîner des erreurs à l'exécution ou des résultats incorrects si le cas n'est pas géré.
- SQRT peut être utilisée directement dans des expressions complexes : Par exemple, on peut écrire COMPUTE result = FUNCTION SQRT(var1 + var2) * 5, ce qui permet d'enchaîner les opérations mathématiques sans étape intermédiaire, ce qui est à la fois concis et performant.
- Cette fonction fait partie des intrinsic functions de COBOL : Les fonctions intrinsèques comme SQRT, ABS, MAX,..., sont directement reconnues par le compilateur sans qu'il soit nécessaire d'inclure de bibliothèque externe. Cela simplifie leur usage tout en garantissant la portabilité.
- Il est important de prévoir le bon type et la bonne taille de la variable recevant le résultat : Le résultat de SQRT sera souvent un nombre décimal. Il faut donc s'assurer que la variable cible (exemple result) dispose d'une clause PIC adéquate pour éviter les pertes de précision ou les erreurs de troncature.
- La précision du résultat dépend du compilateur COBOL utilisé : Selon l'environnement (Micro Focus, IBM, GnuCOBOL...), le traitement des décimales et l'arrondi peuvent varier. Il est conseillé de faire des tests de précision si le résultat est utilisé dans des calculs sensibles.
- La fonction SQRT est une alternative fiable à un calcul par approximation manuelle : Autrefois, sans fonctions intégrées, les programmeurs devaient utiliser des boucles ou des divisions successives pour estimer la racine carrée. SQRT élimine cette complexité, rendant le code plus lisible et plus performant.
- Elle s'utilise exclusivement dans une instruction COMPUTE ou une expression équivalente : COBOL ne permet pas d'utiliser des fonctions arithmétiques directement en dehors de contextes de calculs. Ainsi, FUNCTION SQRT(x) doit toujours être placé dans une affectation ou une opération pour être évalué.
Dernière mise à jour : Jeudi, le 28 juillet 2011