Une série de billets thématiques explore les fondements de l’informatique. Cet article inaugure la série.
Objectif d’apprentissage : Comprendre ce qu’est véritablement une variable au niveau matériel en dissociant son étiquette (identifiant), la nature de son contenu (type), son emplacement physique (adresse) et la donnée brute qu’elle conserve (valeur).
Les 4 attributs d’une variable
- L’identifiant : Le nom lisible que l’humain choisit (total, age, compteur). La machine n’utilise plus ce nom après compilation : elle le remplace par une adresse.
- Le type : La notice d’interprétation. Il dicte combien de casiers (octets) il faut réserver et comment traduire la suite de 0 et de 1 (un entier, un nombre à virgule, un caractère). Un nombre réel qui requiert plus de précision après la décimale occupera plus de place en mémoire qu’un nombre réel avec seulement deux chiffres après la décimale.
- L’adresse : L’indice du premier casier que le système réserve en mémoire.
- La valeur : Le motif binaire réellement présent dans le casier à cet instant précis.
L’assignation : Écraser, pas empiler
L’instruction d’affectation (souvent symbolisée par =) n’est pas une égalité mathématique. Elle représente plutôt une commande de copie :
- Prendre le résultat calculé à droite
- Ouvrir le casier désigné par le nom à gauche
- Remplacer l’ancien contenu par le nouveau. L’ancienne valeur est détruite.
Exemple de séquence :
Les principaux types de variables
Le type d’une variable ne constitue pas un simple détail administratif : il indique à la machine comment interpréter la suite de 0 et de 1 stockée en mémoire et quelles opérations elle peut autoriser sur cette valeur. On ne peut pas, par exemple, diviser une chaîne de caractères ou appliquer une majuscule à un nombre entier. Voici les types les plus courants :
- Entier : représente les nombres sans partie décimale (ex. : 0, 42, −7). Il permet les opérations arithmétiques entières comme l’addition, la soustraction, la multiplication et la division entière.
- Réel : représente les nombres avec une partie décimale (ex. : 3,14 ; −0,5 ; 2,0). Il occupe généralement plus de place en mémoire qu’un entier et permet des calculs à virgule flottante.
- Chaîne de caractères : représente du texte, c’est-à-dire une suite de caractères (ex. : « Bonjour », « abc123 »). Elle permet des opérations comme la concaténation ou la recherche d’un mot.
- Booléen : ne peut prendre que deux valeurs : vrai (
true) ou faux (false). Il est indispensable pour exprimer des conditions et contrôler le déroulement d’un programme. - Objet : regroupe plusieurs données liées sous un même identifiant, chacune accessible via ses propriétés (ex. : un objet
personnepeut avoir les propriétésnom,ageetcourriel).
Exemple complet : suivre une variable en mémoire
Examinons le code suivant :
entier compteur = 10
compteur = compteur + 5
À la première ligne, le programme crée la variable compteur. Elle porte l’identifiant compteur, possède le type entier et reçoit la valeur initiale 10. Le système réserve également une adresse en mémoire pour stocker cette valeur.
À la deuxième ligne, le programme lit la valeur actuelle, lui ajoute 5, puis remplace l’ancienne valeur par le résultat. La même variable conserve donc son identifiant, son type et son adresse, mais sa valeur devient 15.
Définir, initialiser, modifier et l’état final d’une variable
On peut résumer les étapes ainsi :
- Déclaration :
compteurest créé comme un entier. - Initialisation : sa valeur est fixée à
10. - Modification :
10 + 5produit15. - État final :
compteurcontient15à la même adresse mémoire.
La portée d’une variable
La portée d’une variable désigne la zone du programme dans laquelle le programmeur peut l’utiliser. Une variable locale n’existe que dans la fonction ou le bloc où il la déclare : dès que l’exécution sort de ce bloc, la variable cesse d’exister. Une variable globale, en revanche, peut parcourir plusieurs parties du programme, voire l’ensemble de celui-ci.
Limiter la portée d’une variable offre deux avantages majeurs : cela réduit les risques de conflits de noms entre différentes parties du programme, et cela protège les données contre des modifications involontaires provenant de code externe au bloc concerné.
Exemple
fonction calculerTotal()
entier prix = 20
retourner prix + 5
fin fonction
Dans cet exemple, prix constitue une variable locale à la fonction calculerTotal. Le programme la crée au moment où la fonction commence à s’exécuter, et elle n’est plus accessible dès que la fonction se termine : aucune autre partie du programme ne peut lire ou modifier sa valeur.
À retenir : une portée bien définie rend le programme plus clair et plus facile à maintenir, en garantissant que chaque variable n’existe et que seul du code pertinent peut la modifier.
À retenir : une variable associe un identifiant, un type, une adresse mémoire et une valeur. Lorsque le programmeur la modifie, c’est généralement sa valeur qui change, tandis que son identifiant et son type demeurent les mêmes.
Les constantes
Une constante est une valeur nommée dont le contenu est fixé une fois pour toutes au moment de sa déclaration et ne peut plus être modifié pendant toute l’exécution du programme. Contrairement à une variable, elle ne possède pas de casier que le programme peut réécrire : toute tentative de modification est rejetée par le compilateur ou l’interpréteur.
L’intérêt des constantes est double. Sur le plan de la lisibilité, remplacer un nombre brut comme 0.15 par un identifiant explicite comme TAUX_TVA rend le code immédiatement compréhensible : le lecteur sait d’emblée ce que représente la valeur sans avoir à en déduire le sens depuis le contexte. Sur le plan de la sécurité, le fait qu’aucune partie du programme ne puisse altérer la valeur protège contre les erreurs accidentelles, en particulier dans les projets de grande taille où de nombreuses fonctions partagent les mêmes données.
Voici un exemple simple :
constante réel TAUX_TVA = 0.15
réel prixAvantTaxe = 40.00
réel prixFinal = prixAvantTaxe + prixAvantTaxe * TAUX_TVA
Dans cet exemple, TAUX_TVA est déclarée une seule fois avec la valeur 0.15. Si la loi fiscale change, le programmeur n’a qu’un seul endroit à modifier dans tout le code, ce qui réduit le risque d’oubli et garantit la cohérence de l’ensemble du programme. La convention d’écrire les constantes en majuscules est largement répandue : elle permet de les distinguer visuellement des variables ordinaires au premier coup d’œil.

Laisser un commentaire