DIV |
Division |
---|---|
Langage C | stdlib.h |
Syntaxe
div_t div(int a,int b); |
Paramètres
Nom | Description |
---|---|
a | Ce paramètre permet d'indiquer le nombre à diviser |
b | Ce paramètre permet d'indiquer le diviseur |
Description
Cette fonction permet de retourner le quotient et le reste séparément en effectuant la division a par b.
Algorithme
MODULE DIV(numer, denom) SI denom = 0 ALORS raise "Erreur de division par zéro" FIN SI * Calculer le quotient de la division entière quotient ← [ numer / denom ] * Division entière * Calculer le reste de la division remainder ← numer modulo denom * Modulo pour obtenir le reste * Créer la structure div_t avec le quotient et le reste result ← div_t(quotient, remainder) RETOURNE result |
Remarques
- Structure div_t : La fonction div renvoie une structure de type div_t, contenant deux membres :
- Division entière : Contrairement à l'opérateur de division «/» retournant un résultat de type flottant (si utilisé avec des types à virgule flottante), la fonction div effectue une division entière, ce qui signifie que le résultat du quotient est arrondi vers zéro, et le reste est toujours de même signe que le numérateur.
- Comportement en cas de division par zéro : Si la fonction div est appelée avec un dénominateur égal à zéro, le comportement est indéfini et peut entraîner un comportement erroné ou un plantage du programme. Il est donc essentiel de vérifier si le dénominateur est nul avant d'appeler la fonction.
- Précision et performance : L'utilisation de div est plus claire et explicite que l'utilisation séparée de l'opérateur de division et du modulo (%) si l'on souhaite obtenir à la fois le quotient et le reste. De plus, dans certains cas, l'utilisation de div peut être légèrement plus efficace, car elle est optimisée pour effectuer la division et le calcul du reste en une seule opération interne.
- Compatibilité avec les types signés : La fonction div fonctionne avec des entiers signés, contrairement à l'opérateur /, pouvant se comporter de manière imprévisible avec les entiers signés si les valeurs dépassent certaines limites (par exemple, la division de INT_MIN par -1). La fonction div garantit un comportement cohérent pour ces cas.
- Utilisation dans les calculs complexes : La fonction div est particulièrement utile dans les situations où les deux résultats, quotient et reste, sont nécessaires. Elle peut être utilisée dans des calculs mathématiques impliquant des algorithmes de division, des calculs de nombres premiers ou des manipulations de chaînes numériques, où il est souvent essentiel d'avoir à la fois le quotient entier et le reste.
Champ | Description |
---|---|
quot | Le quotient de la division entière (c'est-à-dire la partie entière du résultat de la division). |
rem | Le reste de la division entière. Par exemple, si on appelle div(10, 3), la structure résultante contiendra quot = 3 et rem = 1, car 10 divisé par 3 donne un quotient de 3 et un reste de 1. |
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
Essayer maintenant !
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
-
- int main()
- {
- printf("div(-81,9) = %i\n",div(-81,9));
- printf("div(15,3) = %i\n",div(15,3));
- printf("div(16,3) = %i\n",div(16,3));
- printf("div(17,3) = %i\n",div(17,3));
- printf("div(18,3) = %i\n",div(18,3));
- printf("div(19,3) = %i\n",div(19,3));
- printf("div(0,1) = %i\n",div(0,1));
- return 0;
- }
on obtiendra le résultat suivant :
div(-81,9) = -9div(15,3) = 5
div(16,3) = 5
div(17,3) = 5
div(18,3) = 6
div(19,3) = 6
div(0,1) = 0
Voir également
Langage de programmation - C - Référence procédures et fonctions - ldiv
Langage de programmation - C++ - Référence procédures et fonctions - div
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 731.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 67.
Dernière mise à jour : Mardi, le 28 juillet 2015