Vous devez choisir quel type numérique utiliser selon vos besoins. La voie de la facilité consiste à prendre le type le
plus élevé comme un entier long ou pire, un réel en double précision afin d’être tranquille. En informatique comme
dans beaucoup de métiers, il faut choisir la formule la plus économique. On parle ici d’économie de moyens. Qu’un
programme donne le résultat attendu n’est pas suffisant, il faut aussi qu’il le fasse vite, bien et en consommant le
moins de ressources possibles. Le fait de disposer de plusieurs gigaoctets n’est pas un critère suffisant pour
programmer n’importe comment. Une liste de mille valeurs comprises entre 0 et 100 « coûtera » 1000 octets (soit pas
loin de 1 ko) dans un type byte, mais 8000 octets (pas loin de 8 ko) soit 8 fois plus dans une type réel à double
précision. Cela peut sembler faible, mais non seulement l’ordinateur doit manipuler 8 cases mémoire au lieu d’une,
mais en plus il doit en permanence convertir une valeur qu’il pense être un nombre réel avec des chiffres après la
virgule en entier, alors que c’est déjà le cas ! Quand vous verrez plus bas la formule mathématique nécessaire, vous
vous rendrez compte du gâchis !
Utilisez les types qui vont bien avec les valeurs qui vont bien. En algorithmique, c’est bien plus simple. Rien ne vous
empêche de préciser que vous manipulez des entiers ou des réels, mais vous pouvez aussi indiquer tout simplement
que vous utilisez des variables contenant des valeurs numériques avec le pseudotype "numérique". Vous devrez
cependant être plus circonspect quand vous convertirez votre algorithme en vrai langage de programmation. D’une
manière générale, deux types numériques sont utilisés en algorithmique :
q Les entiers : nombres sans virgule, négatifs ou positifs ;
q Les réels : nombres à virgule, positifs ou négatifs.
Les variables se déclarent toutes au début de l’algorithme. Si durant la rédaction de celuici vous remarquez que vous
en avez besoin d’autres, vous les rajouterez au début.
VAR
montant:réel
somme,moyenne:réels
qte :entier
Pour les variables contenant des nombres réels, ces derniers s’écrivent avec une vraie virgule comme en français
"3,14" ou avec le point décimal, cependant dans les langages de programmation, ce sera bien souvent le point qui
sera utilisé "3.14".
En Java, les types portent les mêmes noms, en anglais, des types situés dans le tableau précédent, mais ne dispose
pas de types non signés. Autrement dit, une variable numérique peut contenir des nombres positifs ou négatifs, mais
l’intervalle de valeurs se trouve "un peu" réduite. Le seul type non signé est le type char (le type caractère) pour des
raisons évidentes que vous verrez plus bas.
Dans l’exemple suivant, tous les types numériques classiques de Java sont déclarés. Les noms des variables sont
assez parlants pour les comprendre. Puis chaque variable se voit assignée la valeur maximale qu’elle peut supporter.
Ce programme amène trois remarques :
q Le réel 32 bits (float) voit sa définition forcée : le compilateur indique une erreur signifiant un risque de perte
de précision autrement. Il est aussi possible d’ajouter un "D" à la fin pour forcer un double ou un "F" pour un
float, car Java considère les valeurs réelles saisies comme étant du type double par défaut.
Type numérique
Plage de valeurs possibles
Byte (char)
0 à 255
Entier simple signé (int)
32 768 à 32 767
Entier simple non signé
0 à 65535
Entier long signé (long)
2 147 483 648 à 2 147 483 647
Entier long non signé
0 à 4294967295
Réel simple précision (float)
Négatif : 3,40x10
38 à 1,40x10
45
Positif : 1,40x10 45 à 3,40x10 38
Réel double précision (double)
Négatif : 1,79x10 308 à 4,94x10 324
Positif : 4,94x10 324 à 1,79x10 308
- 3 -
© ENI Editions - All rigths reserved - Jonifar lina
24
plus élevé comme un entier long ou pire, un réel en double précision afin d’être tranquille. En informatique comme
dans beaucoup de métiers, il faut choisir la formule la plus économique. On parle ici d’économie de moyens. Qu’un
programme donne le résultat attendu n’est pas suffisant, il faut aussi qu’il le fasse vite, bien et en consommant le
moins de ressources possibles. Le fait de disposer de plusieurs gigaoctets n’est pas un critère suffisant pour
programmer n’importe comment. Une liste de mille valeurs comprises entre 0 et 100 « coûtera » 1000 octets (soit pas
loin de 1 ko) dans un type byte, mais 8000 octets (pas loin de 8 ko) soit 8 fois plus dans une type réel à double
précision. Cela peut sembler faible, mais non seulement l’ordinateur doit manipuler 8 cases mémoire au lieu d’une,
mais en plus il doit en permanence convertir une valeur qu’il pense être un nombre réel avec des chiffres après la
virgule en entier, alors que c’est déjà le cas ! Quand vous verrez plus bas la formule mathématique nécessaire, vous
vous rendrez compte du gâchis !
Utilisez les types qui vont bien avec les valeurs qui vont bien. En algorithmique, c’est bien plus simple. Rien ne vous
empêche de préciser que vous manipulez des entiers ou des réels, mais vous pouvez aussi indiquer tout simplement
que vous utilisez des variables contenant des valeurs numériques avec le pseudotype "numérique". Vous devrez
cependant être plus circonspect quand vous convertirez votre algorithme en vrai langage de programmation. D’une
manière générale, deux types numériques sont utilisés en algorithmique :
q Les entiers : nombres sans virgule, négatifs ou positifs ;
q Les réels : nombres à virgule, positifs ou négatifs.
Les variables se déclarent toutes au début de l’algorithme. Si durant la rédaction de celuici vous remarquez que vous
en avez besoin d’autres, vous les rajouterez au début.
VAR
montant:réel
somme,moyenne:réels
qte :entier
Pour les variables contenant des nombres réels, ces derniers s’écrivent avec une vraie virgule comme en français
"3,14" ou avec le point décimal, cependant dans les langages de programmation, ce sera bien souvent le point qui
sera utilisé "3.14".
En Java, les types portent les mêmes noms, en anglais, des types situés dans le tableau précédent, mais ne dispose
pas de types non signés. Autrement dit, une variable numérique peut contenir des nombres positifs ou négatifs, mais
l’intervalle de valeurs se trouve "un peu" réduite. Le seul type non signé est le type char (le type caractère) pour des
raisons évidentes que vous verrez plus bas.
Dans l’exemple suivant, tous les types numériques classiques de Java sont déclarés. Les noms des variables sont
assez parlants pour les comprendre. Puis chaque variable se voit assignée la valeur maximale qu’elle peut supporter.
Ce programme amène trois remarques :
q Le réel 32 bits (float) voit sa définition forcée : le compilateur indique une erreur signifiant un risque de perte
de précision autrement. Il est aussi possible d’ajouter un "D" à la fin pour forcer un double ou un "F" pour un
float, car Java considère les valeurs réelles saisies comme étant du type double par défaut.
Type numérique
Plage de valeurs possibles
Byte (char)
0 à 255
Entier simple signé (int)
32 768 à 32 767
Entier simple non signé
0 à 65535
Entier long signé (long)
2 147 483 648 à 2 147 483 647
Entier long non signé
0 à 4294967295
Réel simple précision (float)
Négatif : 3,40x10
38 à 1,40x10
45
Positif : 1,40x10 45 à 3,40x10 38
Réel double précision (double)
Négatif : 1,79x10 308 à 4,94x10 324
Positif : 4,94x10 324 à 1,79x10 308
- 3 -
© ENI Editions - All rigths reserved - Jonifar lina
24
