Fonctions utiles (Mathématiques et caractères) en C++
Comme nous l'avons dit précédemment, s'il existe une fonction prédéfinie dans la bibliothèque, nous n'avons pas à nous soucier de la définition de la fonction. Nous ajoutons uniquement le fichier d'en-tête correspondant dans lequel la fonction est définie. Cependant, nous devons appeler la fonction, ce qui signifie que nous devons connaître la déclaration de la fonction.
Fonctions mathématiques
Le C++ définit un ensemble de fonctions mathématiques qui peuvent être appelées dans notre programme. Ces fonctions sont prédéfinies et rassemblées sous l'en-tête <cmath>. Le préfixe "c" dans le nom de l'en-tête souligne le fait qu'il est hérité (avec quelques modifications) du langage C.
Fonctions numériques
Les fonctions numériques sont utilisées dans les calculs numériques. Les paramètres sont normalement une ou plusieurs valeurs numériques et le résultat est également une valeur numérique. Le tableau ci-dessous présente certaines des fonctions courantes de cette catégorie ainsi que les déclarations de fonctions.
Le type est un float, un double ou un long double. Dans le cas de la fonction pow, le deuxième argument peut également être un nombre entier. Toutes ces fonctions peuvent accepter différents types d'arguments et peuvent renvoyer une valeur d'un type différent. Cela signifie que ces fonctions sont surchargées.
Fonction | Description |
---|---|
type abs (type x); | Retourne la valeur absolue de x |
type ceil (type x); | Renvoie la plus grande valeur entière inférieure ou égale à x |
type floor (type x); | Renvoie la plus petite valeur entière inférieure ou égale à x |
type log (type x); | Renvoie le logarithme naturel (base e) de x |
type log10 (type x); | Renvoie le logarithme commun (base 10) de x |
type exp (type x); | Retours \(e^x\) |
type pow (type x, type y); | Renvoie \(x^y\) ; notez que y peut aussi être de type int dans ce cas |
type sqrt (type x); | Renvoie la racine carrée de x : \(\sqrt{x}\) |
Exemple 1
#include <iostream> #include <cmath> using namespace std; int main ( ) { cout << "abs (8) = " << abs(8) << endl; cout << "abs (-8) = " << abs(-8) << endl; cout << "floor (12.78) = " << floor (12.78) << endl; cout << "ceil (12.78) = " << ceil (12.78) << endl; cout << "log (100) = " << log (100) << endl; cout << "log10 (100) = " << log10 (100) << endl; cout << "exp (5) = " << exp (5) << endl; cout << "pow (2, 3) = " << pow (2,3) << endl; cout << "sqrt (100) " << sqrt (100); return 0; }
Résultat
abs (8) = 8 abs (-8) = 8 floor (12.78) = 12 ceil (12.78) = 13 log (100) = 4.60517 log10 (100) = 2 exp (5) = 148.413 pow (2, 3) = 8 sqrt (100) 10
Fonctions trigonométriques
Le tableau ci-dessous donne la liste des fonctions trigonométriques courantes. Notez que toutes ces fonctions sont également surchargées. Les entrées de type représentent l'un des types à virgule flottante (float, double et long double).
Fonction | Type de paramètre | Valuer retournée | Description |
---|---|---|---|
type cos (type x); | radians | [−1, +1] | Renvoie le cosinus |
type sin (type x); | radians | [−1, +1] | Renvoie le sinus |
type tan (type x); | radians | Tout | Renvoie la tangente |
type acos (type x); | [−1, +1] | [0, \(\pi\)] | Renvoie le cosinus inverse |
type asin (type x); | [−1, +1] | [0, \(\pi\)] | Renvoie le sinus inverse |
type atan (type x); | Tout | [\(-\frac{\pi}{2}\), \(+\frac{\pi}{2}\)] | Renvoie la tangente inverse |
Exemple 2
#include #include <cmath> using namespace std; int main ( ) { // Définition d'un PI constant et d'un angle de 45 degrés const double PI = 3.141592653589793238462; double degree = PI / 4; cout << "sin (45): " << sin (degree) << endl; cout << "cos (45): " << cos (degree) << endl; cout << "tan (45): " << tan (degree); return 0; }
Résultat
sin (45): 0.707107 cos (45): 0.707107 tan (45): 1
Fonctions de caractères
Nous pouvons appliquer la plupart des opérations dont nous avons parlé pour les types fondamentaux aux types de caractères. On peut aussi utiliser des opérations d'entrée/sortie sur les caractères. De plus, il existe plusieurs fonctions de bibliothèque qui gèrent les caractères en C++. Toutes les fonctions de gestion des caractères se trouvent dans la bibliothèque <cctype>.
Fonctions de classification des caractères
Tous les noms de fonction de classification commencent par le préfixe is, comme iscontrol, isupper, etc. Si le paramètre appartient à la catégorie définie par le nom de la fonction, la fonction renvoie 1 (qui peut être interprété comme vrai) ; sinon, la fonction renvoie 0 (ce qui peut être interprété comme faux). Le tableau ci-dessous présente la liste de ces fonctions. Notez que le paramètre dans chaque fonction est de type int, mais nous passons toujours un caractère comme paramètre (un caractère est un entier plus petit qu'un entier court).
Fonction | Description |
---|---|
int isalnum (int x); | Le paramètre est-il un caractère alphanumérique ? |
int isalpha (int x); | Le paramètre est-il un caractère alphabétique ? |
int iscntrl (int x); | Le paramètre est-il un caractère de contrôle ? |
int isdigit (int x); | Le paramètre est-il un chiffre décimal (0 à 9) ? |
int isgraph (int x); | Le paramètre est-il un caractère imprimable autre qu'un espace ? |
int islower (int x); | Le paramètre est-il une lettre minuscule (a à z) ? |
int isprint (int x); | Le paramètre est-il un caractère imprimable (espace compris) ? |
int ispunct (int x); | Le paramètre est-il un caractère de ponctuation ? |
int isspace (int x); | Le paramètre est-il un caractère d'espacement (espace, retour ou tabulation) ? |
int isupper (int x); | Le paramètre est-il un caractère majuscule (A à Z) ? |
int isxdigit (int x); | Le paramètre est-il un caractère hexadécimal (0-9, a-f ou A-F) ? |
Fonctions de conversion de caractères
Deux fonctions en C++ sont utilisées pour convertir un caractère d'une classe à une autre. Ces fonctions commencent par le préfixe to et renvoient un entier qui est la valeur du caractère converti. Le tableau ci-dessous présente ces deux fonctions.
Fonction | Description |
---|---|
int tolower (int x) | Renvoie le caractère minuscule de son paramètre. |
int toupper (int x) | Renvoie le caractère majuscule de son paramètre. |
Exemple 3
#include <iostream> #include <cctype> using namespace std; int main ( ) { char ch; int cpt = 0; while (cin >> noskipws >> ch) { if (isalpha (ch)){cpt++;} ch = toupper (ch); cout << ch ; } cout << "Le nombre de caractères alphabétiques est : " << cpt; return 0; }
Résultat
Hi mostafa123 how are you today ? HI MOSTAFA123 HOW ARE YOU TODAY ? ^Z Le nombre de caracteres alphabetiques est: 23