Aller au contenu principal

Variables, types et affectation

Ce que ce chapitre apporte

  • Comprendre ce qu'est une variable et son rôle dans un algorithme.
  • Identifier les principaux types de données (entiers, réels, chaînes, booléens).
  • Savoir lire, affecter et afficher des valeurs.
  • Connaître les erreurs fréquentes liées aux types et à l'affectation.

Une variable est une boîte étiquetée : on y range une valeur, on la relit, on la remplace. Tout le reste du parcours en dépend, et deux confusions bloquent presque tout le monde au début : la flèche qui range n'est pas un égal qui compare, et le nom d'une variable n'est pas son contenu. Ce chapitre les traite en premier.

Avant de pouvoir manipuler des informations dans un algorithme, il faut savoir où et comment les stocker. Ce chapitre introduit la notion de **variable** et explique comment représenter différents types de valeurs dans un programme.

Définition d'une variable

Définition

Une variable est un espace mémoire qui porte un nom et contient une valeur. Elle permet de stocker une information pour la réutiliser ou la modifier au cours de l'exécution d'un algorithme.

Pour bien comprendre cette notion, imaginer qu'une variable est comme une boîte étiquetée :

  • L'étiquette correspond au nom de la variable (par exemple age ou nom).
  • À l'intérieur de la boîte, on place une valeur (par exemple 20 ou "Lina").
  • On peut ouvrir la boîte pour voir ce qu'il y a dedans (afficher la valeur), ou remplacer son contenu par une nouvelle valeur (modifier la variable).

En algorithmique, manipuler des variables revient à ouvrir, lire, vider ou remplir ces petites boîtes d'informations.

Exemple (pseudo-code)

Algorithme
pas 1 / 3
Début
age 20
nom "Lina"
Écrire "Bonjour ", nom, ", âge : ", age, " ans."
Fin

programme principal

age20

Ici, l'algorithme crée deux « boîtes » :

  • age contient la valeur 20
  • nom contient la valeur "Lina"

Puis, il combine ces deux informations pour afficher un message personnalisé à l'utilisateur.

La flèche a été vue au chapitre précédent : elle range, de la droite vers la gauche. Ce chapitre ajoute deux choses qu'elle implique et qu'on découvre en général par l'erreur.

Une variable n'existe qu'à partir de sa première affectation
Écrire Écrire total avant d'avoir écrit total ← quelque chose ne donne pas zéro, ni une valeur vide : c'est une erreur. La boîte n'a pas encore été créée.
D'où le réflexe de l'accumulateur : initialiser avant la boucle. somme ← 0 ne sert pas à « remettre à zéro », il sert à faire exister la boîte pour que somme ← somme + i ait un contenu à lire.
Une affectation écrase, sans prévenir
Une variable ne garde qu'une valeur à la fois. age ← 20 puis age ← 25 laisse 25, et le 20 est perdu définitivement. Rien ne le signale : c'est le fonctionnement normal, et c'est pourquoi l'ordre des lignes compte autant.
Erreur fréquente

Écrire 5 ← a est incorrect : on ne peut pas affecter une valeur à une constante. Le sens de la flèche ne doit jamais être inversé. On peut retenir la règle suivante : « la variable reçoit la valeur ». Par exemple, total ← total + 1 signifie que la variable total est mise à jour en ajoutant 1 à sa valeur actuelle.

On peut visualiser cela comme un compteur : chaque fois qu'on ajoute 1, on ouvre la boîte, on regarde la valeur, on y ajoute 1, puis on referme la boîte avec la nouvelle valeur. Ainsi, la boîte « total » garde en mémoire le nombre d'éléments comptés jusqu'ici.

Avant de continuer

  • À quoi sert une variable dans un algorithme ?
  • Quel exemple de variable trouve-t-on dans la vie courante (un compteur, un score, un solde) ?
  • Comment expliquer ce que fait une instruction comme total ← total + 1 ?

Les types de données

Définition

Le type d'une donnée indique la nature de la valeur stockée. Chaque type détermine les opérations possibles sur cette donnée.

Dans la vie quotidienne, toutes les informations ne sont pas de la même nature :
un âge est un nombre, un prénom est un texte, une lampe peut être allumée ou éteinte.
De la même manière, en algorithmique, chaque donnée possède un type qui décrit ce qu'elle représente et ce qu'on peut en faire.

On peut voir cela comme des boîtes de formes différentes :

  • une boîte pour les nombres,
  • une autre pour les textes,
  • une autre encore pour les réponses "oui/non".

Chaque boîte ne peut contenir qu'un seul type d'objet.
Par exemple, une boîte prévue pour des nombres ne peut pas contenir du texte.

TypeExempleDescription
Entiern ← 12Nombre sans virgule, utilisé pour compter
Réelpi ← 3.14Nombre à virgule, utilisé pour mesurer ou calculer des valeurs précises
Chaînenom ← "Alice"Texte entre guillemets, utilisé pour stocker des mots ou des phrases
Booléenactif ← VraiDeux valeurs possibles : Vrai ou Faux, utile pour les tests logiques

Chaque type a donc ses usages :

  • Les entiers servent à compter (ex. le nombre d'élèves dans une classe).
  • Les réels servent à mesurer (ex. la température, une distance, un prix).
  • Les chaînes servent à communiquer (ex. un prénom, un message).
  • Les booléens servent à raisonner (ex. “est-ce que la porte est ouverte ?”).

Exemple

Algorithme
pas 1 / 3
Début
note 15.5
reussi note >= 10
Écrire "Réussi ? ", reussi
Fin

programme principal

note15,5

Explication : Ici, la variable note est un réel (15,5). La variable reussi est un booléen : elle vaut Vrai si la note est supérieure ou égale à 10, sinon Faux. L'affichage produit donc :

Réussi ?  Vrai

Cet exemple montre que les types de données permettent à l'algorithme de comparer, calculer et raisonner selon la nature de l'information manipulée.

Astuce

Bien choisir le type d'une variable, c'est comme choisir la bonne boîte pour ranger un objet. Si l'on range du texte dans une variable prévue pour les nombres, l'algorithme ne saura pas quoi en faire et renverra une erreur. Prendre donc l'habitude de toujours se demander : “quelle est la nature de cette donnée ?”.

Erreur fréquente

Confondre un nombre et une chaîne est une erreur courante. Par exemple :

Algorithme
pas 1 / 2
Début
n "10" // chaîne de caractères
Écrire n + 5 // erreur !
Fin

programme principal

n"10"

Ici, "10" est du texte et non un nombre. L'algorithme ne peut pas additionner du texte et un nombre. Pour corriger cela, il faut convertir la chaîne en entier avant le calcul.

Lecture et affichage

Définition

Les entrées (lecture) permettent de demander une valeur à l'utilisateur, tandis que les sorties (affichage) servent à montrer un résultat. Ces deux opérations constituent la communication entre le programme et l'utilisateur.

On dit qu'un algorithme lit une donnée lorsqu'il attend que l'utilisateur saisisse une valeur (par exemple un nombre, un texte, ou une réponse).
De la même manière, on dit qu'il écrit une donnée lorsqu'il affiche une information à l'écran.
Ces opérations sont indispensables pour interagir avec la personne qui exécute le programme.

Exemple (pseudo-code)

Algorithme
pas 1 / 2
séparées par des virgules, décimales au point
Début
Lire prénom
Écrire "Bonjour ", prénom, " !"
Fin

programme principal

prénomsaisi"Camille"

Ici, l'algorithme lit la valeur saisie et la range dans la variable prénom. Ensuite, il écrit un message qui dépend de cette valeur.

Ce que fait la virgule dans un Écrire
La ligne Écrire "Bonjour ", prénom, " !" comporte trois morceaux séparés par des virgules. Chacun est affiché à la suite du précédent, sans rien ajouter entre eux.
Les morceaux entre guillemets sont affichés tels quels : « Bonjour » et « ! ». Le morceau sans guillemets est un nom de variable, et c'est son contenu qui est affiché, pas le mot « prénom ».
D'où l'espace à la fin de "Bonjour " : sans lui, l'affichage donnerait « BonjourCamille ». Ce que l'on écrit entre les guillemets est affiché au caractère près, espaces compris.
Astuce

Lorsqu'on lit plusieurs valeurs, on peut les séparer par des virgules : Lire a, b Cela évite de répéter plusieurs fois la même instruction. On peut ensuite utiliser ces variables directement dans les calculs ou les affichages :

Algorithme
pas 1 / 2
séparées par des virgules, décimales au point
Début
Lire a, b
Écrire "Somme = ", a + b
Fin

programme principal

a7bsaisi5
Erreur fréquente

Oublier de lire une variable avant de l'utiliser provoque une erreur logique : l'algorithme manipule alors une valeur inexistante. Par exemple, dans le code suivant :

Algorithme
Début
c a + b
Écrire c
Fin

si a et b n'ont jamais été lus ou initialisés, le résultat sera indéfini.
Il faut donc toujours s'assurer que les variables ont une valeur avant de les utiliser.

En résumé, Lire permet de recevoir une information extérieure (entrée), et Écrire permet d'en produire une (sortie). Ces deux actions transforment l'algorithme d'un simple calculateur en un programme capable de dialoguer avec l'utilisateur.

Avant de continuer

  • Quelle est la différence entre Lire et Écrire ?
  • Pourquoi faut-il initialiser une variable avant de s'en servir ?
  • Dans quel ordre logique doit-on placer les lectures et les affichages dans un algorithme ?

La flèche écrase, elle ne compare pas

Le signe n'énonce pas une égalité : il range une valeur dans une variable, et ce qui s'y trouvait disparaît. Trois lignes suffisent à s'en convaincre, à condition de les dérouler au lieu de les lire.

Algorithme
pas 1 / 6
Début
a 3
b 8
a b
b a + 2
a a - 1
Écrire "a = ", a, " et b = ", b
Fin

programme principal

a3
La valeur 3 n'existe plus dès la troisième ligne
Après a ← b, les deux variables valent 8. Le 3 initial n'est stocké nulle part, et aucune ligne suivante ne peut le retrouver.
C'est la raison pour laquelle échanger le contenu de deux variables demande une troisième variable : sans elle, la première affectation détruit ce que la seconde aurait dû recopier.

Exercices type

Exercice 1 : Écrire un algorithme qui lit un entier et affiche son triple.

Afficher la solution
Algorithme
pas 1 / 2
séparées par des virgules, décimales au point
Début
Lire n
Écrire "Le triple de ", n, " est ", 3 * n
Fin

programme principal

nsaisi7

Explication : L'algorithme lit un nombre (par exemple n = 4) et calcule 3 * n, soit 12. Il affiche ensuite le résultat sous forme de phrase. C'est un premier exemple d'utilisation d'une variable pour réaliser un calcul et restituer le résultat à l'utilisateur.

Résultat attendu :

Entrée : 4  
Sortie : Le triple de 4 est 12

Exercice 2 : Écrire un algorithme qui lit deux entiers, calcule leur somme et affiche le résultat.

Afficher la solution
Algorithme
pas 1 / 3
séparées par des virgules, décimales au point
Début
Lire a, b
somme a + b
Écrire "Somme = ", somme
Fin

programme principal

a7bsaisi5

Explication : Ici, deux valeurs sont lues puis additionnées. La variable somme sert à mémoriser le résultat avant l'affichage. Cette étape intermédiaire (affectation) rend l'algorithme plus clair et plus réutilisable.

Résultat attendu :

Entrées : 7 et 5  
Sortie : Somme = 12

Remarquer que l'opération de lecture (Lire a, b) peut saisir les deux valeurs d'un coup. Cela illustre l'économie d'instructions grâce à une écriture plus compacte.

Exercice 3 : Décrire en langage naturel un algorithme qui demande un nom et un âge, puis affiche un message personnalisé en fonction de l'âge (mineur ou majeur).

Afficher la solution

Description possible :

  1. L'algorithme commence.
  2. Il lit le nom et l'âge de l'utilisateur.
  3. Si l'âge est inférieur à 18, il affiche : « Bonjour [nom], on est mineur. »
  4. Sinon, il affiche : « Bonjour [nom], on est majeur. »
  5. L'algorithme se termine.

💬 Explication : Cet exercice prépare à la notion de condition (chapitre suivant). Il montre comment les variables peuvent être utilisées non seulement pour stocker des valeurs, mais aussi pour prendre des décisions selon leur contenu.

Résultat attendu :

Entrées : nom = "Lucas", âge = 16  
Sortie : Bonjour Lucas, tu es mineur.

ou

Entrées : nom = "Emma", âge = 21  
Sortie : Bonjour Emma, tu es majeur.

Vérification

Vérification rapideon peut se reprendre

1.Que se passe-t-il si l'on écrit Écrire total avant toute affectation à total ?

2.age ← 20 puis age ← 25. Que contient age ?

3."12" et 12 sont-ils la même chose ?

4.Quel type convient pour stocker « l'utilisateur est majeur » ?

5.Pourquoi nommer une variable total plutôt que t ?

La méthode

  1. Choisir un nom qui dit ce que la variable contient, pas ce qu'elle est. moyenne vaut mieux que m, et x ne dit rien.
  2. Choisir le type d'après les valeurs attendues : un entier pour un effectif, un réel pour une mesure, une chaîne pour du texte, un booléen pour une réponse par oui ou non.
  3. Initialiser avant d'utiliser. Lire une variable qui n'a jamais reçu de valeur est une erreur, pas un zéro.
  4. Poser l'accumulateur à zéro avant la répétition, jamais à l'intérieur.
  5. Dérouler les affectations dans l'ordre, en se rappelant que la flèche écrase la valeur précédente.
  6. Relire les entrées et les sorties : une donnée lue et jamais employée, ou un résultat calculé et jamais affiché, signalent une étape oubliée.

Synthèse

  • Une variable est un nom associé à une valeur.
  • Les types de base sont : entier, réel, chaîne, booléen.
  • Une instruction Lire sert à obtenir une donnée, Écrire à l'afficher.
  • Un algorithme manipule des variables à travers des affectations.

Pour aller plus loin

Prochain chapitre

Le prochain chapitre montre comment utiliser les conditions pour prendre des décisions dans un algorithme.

Mettre en pratique