Les variables
Les boîtes dans lesquelles l'ordinateur retient vos données.
Après cette fiche, vous saurez :
- comprendre à quoi sert une variable
- créer une variable de type int et lui donner une valeur
- afficher le contenu d'une variable
- reconnaître le rectangle dans un ordinogramme
1Pourquoi a-t-on besoin de variables ?
Jusqu'ici, tout ce que vous affichiez était écrit en dur dans le programme.
Console.WriteLine("Radakass a 50 HP");
Ça fonctionne, mais c'est très limité. Si Radakass perd des points de vie, il faut
retaper le nombre à la main partout. Et l'ordinateur ne peut rien calculer, parce
qu'il ne sait même pas que 50 est un nombre : entre guillemets, pour lui,
c'est du texte.
Il nous faut un endroit où retenir une valeur, pour pouvoir la réutiliser et la modifier. Cet endroit s'appelle une variable.
2Une variable, c'est une boîte
Une variable a trois caractéristiques :
- une étiquette : son nom, pour la retrouver ;
- un type : ce qu'elle a le droit de contenir ;
- un contenu : ce qu'il y a dedans en ce moment.
Cliquez sur les boutons pour voir ce qui se passe.
À retenir
La boîte ne contient qu'une seule valeur à la fois.
Quand on en met une nouvelle, l'ancienne est effacée. Elle est perdue.
3Créer une variable
Cela se fait en deux temps.
1. Déclarer : je crée la boîte
int hp;Deux mots seulement :
| Mot | Ce qu'il veut dire |
|---|---|
int | Le type. Ici : un nombre entier. Le mot vient de l'anglais integer. |
hp | Le nom de la boîte. C'est vous qui le choisissez. |
À ce stade, la boîte existe, mais elle est vide.
2. Donner une valeur : je remplis la boîte
hp = 50;Le 50 s'écrit sans guillemets. Ce n'est pas du texte, c'est un
nombre.
Les deux d'un coup
On peut aussi tout écrire sur une seule ligne :
int hp = 50;
Les deux façons sont correctes. Choisissez celle que vous préférez.
Attention
On écrit int une seule fois, au moment de créer
la boîte.
int hp; hp = 50; // correct : on remplit la boîte int hp = 40; // refusé : la boîte hp existe déjà
Une fois la boîte créée, on ne fait plus que changer son contenu.
4Afficher une variable
Pour afficher le contenu d'une boîte à l'intérieur d'une phrase, il faut deux choses : un dollar devant le guillemet, et le nom de la boîte entre accolades.
int hp = 50; Console.WriteLine($"Radakass a {hp} HP");
Radakass a 50 HP
L'ordinateur remplace {hp} par le contenu de la boîte.
Attention
Sans le dollar, ça ne marche pas.
Console.WriteLine("Radakass a {hp} HP"); // affiche : Radakass a {hp} HP Console.WriteLine($"Radakass a {hp} HP"); // affiche : Radakass a 50 HP
Le dollar est minuscule, mais il est indispensable. C'est l'oubli le plus fréquent au début. Prenez le réflexe : dès qu'il y a des accolades dans un texte, il faut un dollar devant.
On peut mettre plusieurs boîtes dans la même phrase :
int hp = 50; int nbEvents = 3; Console.WriteLine($"Radakass a {hp} HP et a vécu {nbEvents} évènements");
Radakass a 50 HP et a vécu 3 évènements
5Le signe = ne veut pas dire « égal »
C'est un point important, et il gêne beaucoup de débutants.
En mathématiques, = veut dire « est égal à ». Les deux côtés sont
équivalents.
En programmation, ce n'est pas ça du tout. Le signe = veut dire
« reçoit ».
hp = 50;Cela se lit : « hp reçoit 50 ». On lit de droite à gauche : on prend ce qui est à droite, et on le range dans la boîte de gauche.
À retenir
Retenez cette image : le = est une flèche qui va
de la droite vers la gauche.
hp ← 50
C'est cette idée qui vous permettra de comprendre, à la fiche suivante, une ligne
qui semble impossible en mathématiques : hp = hp - 2;
6Bien nommer ses variables
Le nom n'a aucune importance pour l'ordinateur. Il en a énormément pour vous.
// Difficile à comprendre int x = 50; int y = 0; // Clair int hp = 50; int nbEvents = 0;
Les règles à respecter
- Pas d'espace, pas d'accent.
- Ne pas commencer par un chiffre.
- Une minuscule au début, puis une majuscule à chaque nouveau mot :
nbEvents,totalAchats.
Attention
Les majuscules comptent, comme pour
Console.WriteLine.
hp, HP et Hp sont trois boîtes
différentes. Si vous créez hp et que vous écrivez ensuite
HP, l'ordinateur vous dira qu'il ne connaît pas cette boîte.
7Il existe d'autres types de boîtes
Cette année, vous en utiliserez surtout quatre. Pour l'instant, nous ne travaillons qu'avec le premier.
| Type | Contient | Quand ? |
|---|---|---|
int | Un nombre entier | Maintenant |
string | Du texte | Fiche 6 |
double | Un nombre à virgule | Plus tard |
bool | Vrai ou faux | Plus tard |
Ne cherchez pas à retenir les trois derniers aujourd'hui. Sachez simplement qu'ils
existent, et que int ne sert qu'aux nombres entiers.
8L'ordinogramme : une nouvelle forme
Vous connaissez déjà l'ovale (début et fin) et le trapèze (afficher). En voici une troisième.
| Forme | Ce qu'elle veut dire |
|---|---|
| Un ovale | Le début ou la fin |
| Un trapèze | Afficher quelque chose |
| Un rectangle | Un traitement : donner une valeur à une variable, faire un calcul |
Retenez-le ainsi : le rectangle, c'est ce que l'ordinateur fait dans sa tête. On ne le voit pas à l'écran.
Et le programme correspondant :
int hp = 50; Console.WriteLine($"Radakass a {hp} HP");
Le rectangle correspond à la ligne qui remplit la boîte. Le trapèze correspond à la ligne qui affiche.
À retenir
La différence est simple :
- Rectangle → l'ordinateur travaille, on ne voit rien.
- Trapèze → quelque chose apparaît à l'écran.
→Exercices
Ces exercices reprennent l'aventure de Radakass, commencée en classe.
Recopiez ce programme et lancez-le.
int hp; hp = 50; Console.WriteLine("*****************************"); Console.WriteLine("Première aventure de Radakass"); Console.WriteLine("*****************************"); Console.WriteLine(); Console.WriteLine($"Radakass a {hp} HP");
Solution
***************************** Première aventure de Radakass ***************************** Radakass a 50 HP
Trois vérifications si ça ne marche pas :
- Le
$est bien devant le guillemet de la dernière ligne. hpest écrit exactement pareil aux deux endroits, en minuscules.- Le
50est écrit sans guillemets.
Un test parlant : enlevez le $ et relancez. Vous verrez
s'afficher Radakass a {hp} HP. C'est la preuve que le dollar sert
vraiment à quelque chose.
Reprenez le programme de l'exercice 1.
- Créez une deuxième variable appelée
nbEvents, de typeint, et donnez-lui la valeur0. - Ajoutez une ligne qui affiche Radakass a vécu 0 évènements, en utilisant la variable.
- Changez la valeur de départ de
hpà100et relancez. Combien de lignes avez-vous dû modifier ?
Solution
int hp; int nbEvents; hp = 100; nbEvents = 0; Console.WriteLine("*****************************"); Console.WriteLine("Première aventure de Radakass"); Console.WriteLine("*****************************"); Console.WriteLine(); Console.WriteLine($"Radakass a {hp} HP"); Console.WriteLine($"Radakass a vécu {nbEvents} évènements");
***************************** Première aventure de Radakass ***************************** Radakass a 100 HP Radakass a vécu 0 évènements
Réponse à la question 3 : une seule ligne.
C'est tout l'intérêt des variables. La valeur n'est écrite qu'à un seul endroit. Partout ailleurs, on utilise le nom de la boîte.
Sans variable, il aurait fallu retrouver et corriger chaque 50 du
programme — et en oublier un est vite arrivé.
Créez la fiche d'un personnage de jeu vidéo.
- Trois variables de type
int: les points de vie, la force, et le nombre de pièces d'or. - Donnez-leur les valeurs de votre choix.
- Affichez une fiche encadrée avec les trois valeurs.
Donnez à vos variables des noms clairs.
Solution
int hp; int force; int piecesOr; hp = 80; force = 12; piecesOr = 250; Console.WriteLine("+---------------------------+"); Console.WriteLine(" GRIMBOLD"); Console.WriteLine("+---------------------------+"); Console.WriteLine($" Points de vie : {hp}"); Console.WriteLine($" Force : {force}"); Console.WriteLine($" Pièces d'or : {piecesOr}"); Console.WriteLine("+---------------------------+");
+---------------------------+
GRIMBOLD
+---------------------------+
Points de vie : 80
Force : 12
Pièces d'or : 250
+---------------------------+Les noms hp, force et piecesOr se
comprennent sans explication. C'est exactement ce qu'on demande.
Remarquez piecesOr : pas d'espace, pas d'accent, et une majuscule au
début du deuxième mot.
Je sais faire
- Je sais créer une variable avec int.
- Je sais lui donner une valeur.
- Je sais l'afficher avec le dollar et les accolades.
- Je sais que le signe = veut dire « reçoit », pas « égal ».
- Je reconnais le rectangle dans un ordinogramme.
Une case qui coince ? Relisez la partie concernée avant de passer à la fiche suivante.