SGN |
Signe |
|---|---|
| Visual Basic | |
Syntaxe
|
Function SGN(n As Variant) As Integer |
Paramètres
| Nom | Description |
|---|---|
| n | Ce paramètre permet d'indiquer l'expression contenant le nombre à traiter |
Retour
| Valeur | Description |
|---|---|
| -1 | Cette valeur indique un nombre négatif |
| 0 | Cette valeur indique un nombre nulle |
| 1 | Cette valeur indique un nombre positif |
Description
Cette fonction trigonométrique retourne le signe d'un nombre.
Algorithme
|
MODULE SGN(valeur) SI valeur < 0 ALORS RETOURNE -1 SINON SI valeur = 0 ALORS RETOURNE 0 SINON RETOURNE 1 FIN SI |
Remarques
- La fonction SGN est une fonction simple mais fondamentale pour déterminer rapidement si un nombre est positif, nul ou négatif. Elle renvoie -1, 0 ou 1 selon le signe du nombre. Cette approche standardisée permet d'écrire des tests de conditions plus compacts et de simplifier la logique dans de nombreux algorithmes.
- La syntaxe Function SGN(n As Variant) As Integer montre que la fonction accepte un Variant, ce qui lui permet de traiter différentes sortes de données numériques (Integer, Double,...). Cela rend SGN très flexible, mais également plus sensible aux erreurs si des types non numériques lui sont passés par inadvertance.
- L'algorithme sous-jacent de SGN est extrêmement direct : il repose sur une simple comparaison à zéro. C'est un excellent exemple d'algorithme minimaliste, assurant des performances optimales pour des traitements de masse où il faudrait vérifier rapidement le signe d'un grand nombre de valeurs.
- Le fait que SGN soit classée comme une fonction trigonométrique peut surprendre, car elle ne manipule pas directement des angles ou des fonctions sinus/cosinus. En réalité, elle est utilisée notamment dans des calculs liés aux vecteurs et à l'orientation, justifiant son classement dans cette catégorie.
- L'exemple d'utilisation montre que la fonction se comporte exactement comme prévu pour des valeurs négatives, nulles et positives. Cela permet de vérifier facilement que l'implémentation est conforme aux attentes théoriques. Remarquons cependant que toutes les entrées de l'exemple sont entières ; il serait pertinent de tester aussi des nombres réels (décimaux).
- Un détail subtil : la fonction retourne toujours un Integer, même si le paramètre passé est un nombre flottant. Cela garantit que le retour est toujours standardisé à trois seules valeurs possibles (-1, 0, 1), simplifiant le traitement des résultats dans des structures de contrôle comme SELECT CASE ou IF.
- L'utilisation de SGN peut être précieuse dans des programmes de simulation physique, de traitement de données financières ou d'algorithmes mathématiques. Par exemple, elle sert à décider rapidement du sens de déplacement d'un objet ou de l'évolution d'une courbe sans nécessiter plusieurs lignes de code conditionnel.
- Enfin, il est important de signaler que l'appel de SGN sur des entrées non numériques (comme du texte ou des objets) entraînera une erreur d'exécution. Même si le type Variant accepte beaucoup de formes, il est judicieux, dans un code professionnel, de vérifier ou de contrôler les types avant d'appeler la fonction pour éviter des plantages.
Exemple
Voici un exemple d'une utilisation typique de cette fonction :
on obtiendra le résultat suivant :
Sgn(-910) = -1Sgn(-1) = -1
Sgn(0) = 0
Sgn(10) = 1
Sgn(1) = 1
Sgn(100) = 1
Dernière mise à jour : Lundi, le 19 novembre 2012