Outils d'utilisateurs

Outils du Site


calculs_arithmetiques

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

calculs_arithmetiques [2016/07/26 15:56]
gbdivers
calculs_arithmetiques [2019/01/04 20:43] (Version actuelle)
nico [Les nombres décimaux, hexadécimaux, octaux et binaires]
Ligne 136: Ligne 136:
 Imaginons par exemple que vous souhaitez écrire des nombres en n'utilisant que huit chiffres (0 à 7 - base 8). Dans ce cas, nous pouvons compter de la façon suivante : 0, 1, 2, 3, 4, 5, 6, 7. Arrivé au huitième chiffre, nous ne pouvons pas écrire "8", puisque ce chiffre n'est pas autorisé dans ce système. Donc, il faut passer à un nombre à deux chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, etc. Imaginons par exemple que vous souhaitez écrire des nombres en n'utilisant que huit chiffres (0 à 7 - base 8). Dans ce cas, nous pouvons compter de la façon suivante : 0, 1, 2, 3, 4, 5, 6, 7. Arrivé au huitième chiffre, nous ne pouvons pas écrire "8", puisque ce chiffre n'est pas autorisé dans ce système. Donc, il faut passer à un nombre à deux chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, etc.
  
-En C++, il est possible d'écrire et afficher des nombres écrits selon des bases différentes de 10. Pour des raisons historiques et matérielles, les ordinateurs savent manipuler les nombres en base 2 (binaire), 8 (octal), 10 (décimal) et 16 (hexadécimal). Pour écrire un nombre dans une base différente de 10, il faut commencer le nombre par le chiffre 0 puis un caractère optionnel pour spécifier la base : rien pour octal, ''x'' ou ''X'' pour l'hexadécimal et ''b'' pour le binaire. Les chiffres autorisés pour écrire un nombre dépendent de la base utilisée : de 0 à 7 pour l'octal, de 0 à 9 et de a à f (ou A à F) pour l'hexadécimal et 0 et 1 pour le binaire.+En C++, il est possible d'écrire et afficher des nombres écrits selon des bases différentes de 10. Pour des raisons historiques et matérielles, les ordinateurs savent manipuler les nombres en base 2 (binaire), 8 (octal), 10 (décimal) et 16 (hexadécimal). Pour écrire un nombre dans une base différente de 10, il faut commencer le nombre par le chiffre 0 puis un caractère optionnel pour spécifier la base : rien pour octal, ''x'' ou ''X'' pour l'hexadécimal et ''b'' pour le binaire. Les chiffres autorisés pour écrire un nombre dépendent de la base utilisée : de 0 à 7 pour l'octal, de 0 à 9 pour la décimal et de a à f (ou A à F) pour l'hexadécimal et 0 et 1 pour le binaire.
  
 Le code suivant permet d'afficher la valeur de 10 selon la base : Le code suivant permet d'afficher la valeur de 10 selon la base :
Ligne 264: Ligne 264:
 <note>Faites bien la distinction entre l'opération écrite entre guillemets "123 + 456", qui est donc interprétée comme une chaîne de caractères et non évaluée, et la même chose en dehors des guillemets, qui sera interprétée comme une expression mathématique et évaluée.</note> <note>Faites bien la distinction entre l'opération écrite entre guillemets "123 + 456", qui est donc interprétée comme une chaîne de caractères et non évaluée, et la même chose en dehors des guillemets, qui sera interprétée comme une expression mathématique et évaluée.</note>
  
-Il est également possible de calculer des divisions entières avec l'opérateur division ''/'' et de calculer le reste d'une division entière avec l'opérateur ''%''. Pour rappel, la division entière permet de calculer le résultat d'une division en utilisant uniquement des nombres entiers (c'est le premier type de division que vous avez appris à l'école). Ainsi :+Il est également possible de calculer des divisions entières avec l'opérateur division ''/'' et de calculer le reste d'une division entière avec l'opérateur ''%'' (cette opération s'appelle le "modulo"). Pour rappel, la division entière permet de calculer le résultat d'une division en utilisant uniquement des nombres entiers (c'est le premier type de division que vous avez appris à l'école). 
  
-  * avec une division entière : 11 divisé par donne et reste +{{ :division.png?150 |}} 
-  * avec une division réelle : 11 divisé par donne 2,75.+ 
 +En orange, le dividende. En bleu, le diviseur. En vert, le quotient (le résultat de la division entière). Et en jaune, le reste de la division (le modulo). Une division entière peut se réécrire sous forme d'une multiplication et d'une addition: 
 + 
 +$$ 1234 = 56 \times 22 + 2 $$ 
 + 
 +Et plus généralement, le reste d'une division entière est le nombre entier qui respecte l'équation suivante (toutes les variables étant des entiers), de façon a ce que le reste est compris entre 0 et le quotient-1. 
 + 
 +$$ \text{dividende}= \text{diviseur}\times \text{quotient}+ \text{reste}\qquad (\text{avec} ~ 0 \leq \text{reste}< \text{quotient}) $$ 
 + 
 +La division réelle retourne un nombre réel : 
 + 
 +  * avec une division entière : 1234 divisé par 56 donne 22 et reste 
 +  * avec une division réelle : 1234 divisé par 56 donne 22,0357.
  
 <code cpp main.cpp> <code cpp main.cpp>
Ligne 318: Ligne 330:
 </code> </code>
  
-Comme vous le voyez dans ce code d'exemple, les nombres réelles sont écrit avec un point en C++ (notation anglaise) et non une virgule (comme en francais). +Comme vous le voyez dans ce code d'exemple, les nombres réelles sont écrit avec un point en C++ (notation anglaise) et non une virgule (comme en français). 
 </note> </note>
  
Ligne 400: Ligne 412:
 On parle en C++ de "comportement indéfini", //undefined behavior// en anglais, que l'on abrège parfois avec les initiales "UB". Cela signifie qu'un programme utilisant un tel code aura un comportement aléatoire et pourra faire n'importe quoi : provoquer une erreur, donner un résultat quelconque ou encore sembler fonctionner correctement. Les comportements indéfinis sont difficiles à corriger, puisque cela ne produit pas forcement un message d'erreur clair. On parle en C++ de "comportement indéfini", //undefined behavior// en anglais, que l'on abrège parfois avec les initiales "UB". Cela signifie qu'un programme utilisant un tel code aura un comportement aléatoire et pourra faire n'importe quoi : provoquer une erreur, donner un résultat quelconque ou encore sembler fonctionner correctement. Les comportements indéfinis sont difficiles à corriger, puisque cela ne produit pas forcement un message d'erreur clair.
  
-Ainsi, l'exécution du programme précédent se déroule sans erreur à l'exécution. Par contre, la valeur affichée par ''std::cout'' est aléatoire (dans Coliru.com) et n'a pas de sens en termes mathématiques :+Ainsi, l'exécution du programme précédent se déroule sans erreur à l'exécution. Par contre, la valeur affichée par ''std::cout'' est aléatoire (dans coliru.com) et n'a pas de sens en termes mathématiques :
  
 <code> <code>
calculs_arithmetiques.1469541368.txt.gz · Dernière modification: 2016/07/26 15:56 par gbdivers