« Programmation C/Mathématiques » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Nathael (discussion | contributions)
Remove comment added to main page
DannyS712 (discussion | contributions)
m <source> -> <syntaxhighlight> (phab:T237267)
 
Ligne 2 : Ligne 2 :
Pour pouvoir utiliser les fonctions mathématiques, il faut utiliser l'en-tête <code><math.h></code>, ainsi que <code><errno.h></code> pour gérer les erreurs :
Pour pouvoir utiliser les fonctions mathématiques, il faut utiliser l'en-tête <code><math.h></code>, ainsi que <code><errno.h></code> pour gérer les erreurs :


<source lang="c">
<syntaxhighlight lang="c">
#include <math.h>
#include <math.h>
#include <errno.h>
#include <errno.h>
</syntaxhighlight>
</source>


Comme pour un certain nombre de fonctions de la bibliothèques standard, il est en effet nécessaire d'utiliser <code><errno.h></code> pour détecter l'erreur d'une fonction mathématique (voir le chapitre sur la gestion d'erreurs pour voir comment utiliser <code><errno.h></code>).
Comme pour un certain nombre de fonctions de la bibliothèques standard, il est en effet nécessaire d'utiliser <code><errno.h></code> pour détecter l'erreur d'une fonction mathématique (voir le chapitre sur la gestion d'erreurs pour voir comment utiliser <code><errno.h></code>).
Ligne 14 : Ligne 14 :
== Exponentiations ==
== Exponentiations ==


<source lang="c">
<syntaxhighlight lang="c">
double exp ( double x );
double exp ( double x );
double pow ( double x, double y );
double pow ( double x, double y );
</syntaxhighlight>
</source>


''exp'' calcule ''e'' élevé à la puissance de ''x'' (<math>e^x</math>) où ''e'' est la base des logarithmes naturels (ln(e) = 1). ''pow'' calcule la valeur de ''x'' élévé à la puissance ''y'' (<math>x^y</math>).
''exp'' calcule ''e'' élevé à la puissance de ''x'' (<math>e^x</math>) où ''e'' est la base des logarithmes naturels (ln(e) = 1). ''pow'' calcule la valeur de ''x'' élévé à la puissance ''y'' (<math>x^y</math>).
Ligne 27 : Ligne 27 :
== Logarithmes ==
== Logarithmes ==


<source lang="c">
<syntaxhighlight lang="c">
double log ( double x );
double log ( double x );
double log10 ( double x );
double log10 ( double x );
</syntaxhighlight>
</source>


''log'' calcule le logarithme néperien de ''x'' (noté généralement ln(x) en mathématiques). ''log10'' calcule le logarithme à base 10 de ''x''.
''log'' calcule le logarithme néperien de ''x'' (noté généralement ln(x) en mathématiques). ''log10'' calcule le logarithme à base 10 de ''x''.
Ligne 40 : Ligne 40 :
== Racine carrée ==
== Racine carrée ==


<source lang="c">
<syntaxhighlight lang="c">
double sqrt ( double x );
double sqrt ( double x );
</syntaxhighlight>
</source>


Renvoie la racine carrée de ''x''.
Renvoie la racine carrée de ''x''.
Ligne 51 : Ligne 51 :
== Sinus, cosinus, tangente ==
== Sinus, cosinus, tangente ==


<source lang="c">
<syntaxhighlight lang="c">
double sin ( double x );
double sin ( double x );
double cos ( double x );
double cos ( double x );
double tan ( double x );
double tan ( double x );
</syntaxhighlight>
</source>


== Arc sinus, arc cosinus ==
== Arc sinus, arc cosinus ==


<source lang="c">
<syntaxhighlight lang="c">
double asin ( double x );
double asin ( double x );
double acos ( double x );
double acos ( double x );
</source>Note : les angles retournés sont en radians (intervalle <math>]-\frac{\pi}{2} ; \frac{\pi}{2}]</math> pour asin et <math>]-\pi ; \pi]</math> pour acos).
</syntaxhighlight>Note : les angles retournés sont en radians (intervalle <math>]-\frac{\pi}{2} ; \frac{\pi}{2}]</math> pour asin et <math>]-\pi ; \pi]</math> pour acos).


=== Erreurs ===
=== Erreurs ===
Ligne 69 : Ligne 69 :
== Arc tangente ==
== Arc tangente ==


<source lang="c">
<syntaxhighlight lang="c">
double atan ( double x );
double atan ( double x );
double atan2 ( double y, double x );
double atan2 ( double y, double x );
</syntaxhighlight>
</source>


<noinclude>
<noinclude>

Version actuelle du 16 avril 2020 à 09:34

Pour pouvoir utiliser les fonctions mathématiques, il faut utiliser l'en-tête <math.h>, ainsi que <errno.h> pour gérer les erreurs :

#include <math.h>
#include <errno.h>

Comme pour un certain nombre de fonctions de la bibliothèques standard, il est en effet nécessaire d'utiliser <errno.h> pour détecter l'erreur d'une fonction mathématique (voir le chapitre sur la gestion d'erreurs pour voir comment utiliser <errno.h>).

Note : Sur certains compilateurs comme GCC, il est nécessaire d'ajouter durant l'édition des liens une option pour que la « bibliothèque mathématique » soit liée au programme. Pour GCC, cette option est -lm. Sans cette option, le programme pourra compiler, mais le résultat à l'exécution sera surprenant.

Exponentiations[modifier | modifier le wikicode]

double exp ( double x );
double pow ( double x, double y );

exp calcule e élevé à la puissance de x () où e est la base des logarithmes naturels (ln(e) = 1). pow calcule la valeur de x élévé à la puissance y ().

Erreurs[modifier | modifier le wikicode]

La fonction pow peut déclencher l'erreur suivante :

  • EDOM : x est négatif, et y n’est pas un entier.

Logarithmes[modifier | modifier le wikicode]

double log ( double x );
double log10 ( double x );

log calcule le logarithme néperien de x (noté généralement ln(x) en mathématiques). log10 calcule le logarithme à base 10 de x.

Erreurs[modifier | modifier le wikicode]

  • EDOM : x est négatif ;
  • ERANGE : x est nul.

Racine carrée[modifier | modifier le wikicode]

double sqrt ( double x );

Renvoie la racine carrée de x.

Erreurs[modifier | modifier le wikicode]

  • EDOM : x est négatif.

Sinus, cosinus, tangente[modifier | modifier le wikicode]

double sin ( double x );
double cos ( double x );
double tan ( double x );

Arc sinus, arc cosinus[modifier | modifier le wikicode]

double asin ( double x );
double acos ( double x );

Note : les angles retournés sont en radians (intervalle pour asin et pour acos).

Erreurs[modifier | modifier le wikicode]

  • EDOM : x est inférieur à -1 ou supérieur à 1.

Arc tangente[modifier | modifier le wikicode]

double atan ( double x );
double atan2 ( double y, double x );