Dans le domaine des mathématiques et de la programmation scientifique, les fonctions trigonométriques inverses occupent une place importante puisqu'elles permettent de retrouver un angle à partir d'une valeur trigonométrique connue. Parmi celles-ci figure l'arc sinus, souvent noté ArcSin, ASin ou encore sin-1, retournant l'angle dont le sinus correspond à une valeur donnée. Cette fonction est fréquemment utilisée dans les calculs de géométrie, de physique, de navigation, d'infographie tridimensionnelle et dans de nombreux problèmes faisant intervenir des triangles et des coordonnées spatiales. Malheureusement, contrairement à plusieurs langages modernes, QuickBASIC ne fournit pas directement de fonction permettant de calculer l'arc sinus. Le programmeur se retrouve donc limité aux fonctions trigonométriques classiques telles que SIN, COS, TAN et à la fonction ATN servant à calculer l'arc tangente. Cette absence peut sembler gênante au premier abord, mais elle n'empêche pas pour autant de réaliser des calculs avancés. En effet, grâce à certaines identités trigonométriques bien connues, il est possible de reconstruire une fonction ArcSin complète à partir des outils déjà disponibles dans le langage.
Le programme QuickBASIC présenté ci-dessous démontre précisément comment créer une fonction personnalisée capable de calculer l'arc sinus avec une excellente précision. L'algorithme utilise la fonction ATN combinée à une expression faisant intervenir la racine carrée afin de reproduire la définition mathématique de l'arc sinus. Une attention particulière est également accordée aux cas particuliers où la valeur fournie est égale à 1 ou à -1, car ces situations nécessitent un traitement spécifique pour éviter certaines limitations numériques. La constante π est utilisée afin d'obtenir des résultats exprimés en radians, qui constituent l'unité standard dans la plupart des calculs scientifiques. Dans l'exemple fourni, le programme calcule l'arc sinus de la valeur 0,5 et retourne le résultat 0,5235987755982989 radians, ce qui correspond exactement à un angle de 30 degrés. Cet exemple illustre parfaitement comment enrichir les capacités mathématiques de QuickBASIC en ajoutant des fonctions absentes du langage d'origine. Il démontre également qu'avec quelques lignes de code seulement, il est possible de disposer d'outils trigonométriques avancés adaptés aux besoins des applications scientifiques, techniques ou éducatives.
Pour remédier à se problème, il suffit de créer une fonction ressemblant à ceci :
on obtiendra le résultat suivant :
ArcSin(0.5)= 0.5235987755982989