Je vous ai donné l'exemple de la mémoire de la calculatrice avant parce que dans le monde de l'informatique le principe de base est le même. Il y a quelque part, dans votre ordinateur, des composants électroniques qui sont capables de contenir une valeur et de la conserver pendant un certain temps. La manière dont tout cela fonctionne exactement est très complexe.
Je vous rassure tout de suite, on n'a absolument pas besoin de comprendre comment ça marche pour pouvoir, nous aussi, mettre des valeurs dans la mémoire du PC. Toute la partie compliquée sera gérée par le compilateur et le système d'exploitation. Elle est pas belle la vie ?
La seule et unique chose que vous avez besoin de savoir, c'est qu'une
variable est une partie de la mémoire que l'ordinateur nous prête pour y mettre des valeurs. Imaginez que l'ordinateur possède dans ses entrailles une grande armoire. Cette armoire possède des milliers (des milliards) de petits tiroirs, ce sont des endroits que nous allons pouvoir utiliser pour mettre nos variables.
Dans le cas d'une calculatrice toute simple, on ne peut généralement stocker qu'un seul nombre à la fois. Vous vous doutez bien que dans le cas d'un programme, il va falloir conserver plus d'une chose simultanément. Il faut donc un moyen de différencier les variables pour pouvoir par la suite y accéder. Chaque variable possède donc un
nom. C'est en quelque sorte l'étiquette qui est collée sur le tiroir.
L'autre chose qui distingue la calculatrice de l'ordinateur, c'est que nous aimerions pouvoir stocker des tas de choses différentes, des nombres, des lettres, des phrases, des images, etc. C'est ce qu'on appelle le
type d'une variable. Vous pouvez vous imaginez cela comme étant la forme du tiroir. On utilise en effet pas les mêmes tiroirs pour stocker des bouteilles ou des livres.
Les noms de variables
Commençons par la question du nom des variables. En C++, il y a quelques règles qui régissent les différents noms autorisés ou interdits.
- Les noms de variables sont constitués de lettres, de chiffres et du tiret-bas _ uniquement.
- Le premier caractère doit être une lettre (majuscule ou minuscule).
- On ne peut pas utiliser d'accents.
- On ne peut pas utiliser d'espaces dans le nom.
Le mieux est encore de vous donner quelques exemples. Les noms
ageZero,
nom_du_zero ou encore
NOMBRE_ZEROS sont tous des noms valides.
AgeZéro,
_nomzero ne le sont par contre pas.
A cela s'ajoute une règle supplémentaire qui est valable pour tout ce que l'on écrit en C++ et pas seulement pour les variables. Le langage fait la différence entre les majuscules et les minuscules. En termes techniques, on dit que C++ est
sensible à la casse. Donc,
nomZero,
nomzero,
NOMZERO et
NomZeRo sont tous des noms de variables différents.
Pour des questions de lisibilité, il est important d'utiliser des noms de variables qui décrivent bien ce qu'elles contiennent. On préfèrera donc choisir ageUtilisateur comme nom plutôt que maVar ou variable1.
Pour le compilateur, cela ne joue aucun rôle. Mais pour vous et pour les gens qui travailleront avec vous sur le même programme, c'est très important.
Personnellement, j'utilise une "convention" partagée par beaucoup de programmeurs. Dans tous les gros projets regroupant des milliers de programmeurs on trouve des règles très strictes et parfois difficiles à suivre. Celles que je vous propose ici permettent de garder une bonne lisibilité et surtout vous permettront de bien comprendre tous les exemples dans la suite de ce cours.
- Les noms de variables commencent par une minuscule.
- Si le nom se décompose en plusieurs mots, ceux-ci sont collés les uns aux autres.
- Chaque nouveau mot (excepté le premier) commence par une majuscule.
Voyons ça avec des exemples. Prenons le cas d'une variable censée contenir l'âge de l'utilisateur du programme.
- AgeUtilisateur: Non, car la première lettre est une majuscule.
- age_utilisateur: Non, car les mots ne sont pas collés
- ageutilisateur: Non, car le deuxième mot ne commence pas par une majuscule.
- maVar: Non, car le nom ne décrit pas ce que contient la variable.
- ageUtilisateur: Ok.
Je vous conseille fortement d'utiliser la même convention. Rendre son code lisible et facilement compréhensible par d'autres programmeurs est très important.
Les types de variables
Reprenons. Nous avons appris qu'une variable a un nom et un type. Nous savons comment nommer nos variables, voyons maintenant leurs différents types. L'ordinateur aime savoir ce qu'il a dans sa mémoire, il faut donc indiquer quel type d'élément va contenir la variable que nous aimerions utiliser. Est-ce un nombre, un mot, une lettre ? Il faut le spécifier.
Voici donc la liste des types de variables que l'on peut utiliser en C++.
| Nom du type | Ce qu'il peut contenir |
|---|
| bool |
Peut contenir deux valeurs "vrai" (true) ou "faux" (false). |
| char |
Une lettre. |
| int |
Un nombre entier. |
| unsigned int |
Un nombre entier positif ou nul. |
| double |
Un nombre à virgule. |
| string |
Une chaîne de caractères. C'est-à-dire une suite de lettres, un mot, une phrase. |
Si vous tapez un de ces noms de type dans votre IDE, vous devriez voir le mot se colorer. L'IDE l'a reconnu, c'est bien la preuve que je ne vous raconte pas des salades. Le cas de string est différent; nous verrons plus loin pourquoi. Je peux vous assurer qu'on va beaucoup en reparler.
Quand on a besoin d'une variable, il faut donc se poser la question du genre de choses qu'elle va contenir. Si vous avez besoin d'une variable pour stocker le nombre de personnes qui utilisent votre programme, alors utilisez un
int ou
unsigned int, pour stocker le poids d'un gigot, on utilisera un
double et pour conserver en mémoire le nom de votre meilleur ami, on choisira une chaîne de caractères
string.
Mais, à quoi sert le type bool ? J'en ai jamais entendu parler.
C'est ce qu'on appelle un booléen. C'est-à-dire une variable qui ne peut prendre que deux valeurs, vrai (
true en anglais) ou faux (
false en anglais). On les utilise par exemple pour stocker des informations comme, la lumière est-elle allumée ? L'utilisateur a-t-il le droit d'utiliser cette fonctionnalité ? Le mot de passe est-il correct?
Si vous avez besoin de conserver le résultat d'une question de ce genre, alors pensez à ce type de variable.