Pour communiquer avec un ordinateur, vous avez d’abord besoin d’un langage. Entre humains, il existe beaucoup de langues différentes qui ont chacune leur usage. Nous avons d’ailleurs plusieurs familles de langues organisées souvent autour d’un alphabet : les langues indo-européennes (dont le français, l’espagnol ou l’anglais), les langues sino-tibétaines (dont le mandarin), les langues sémitiques (dont l’arabe), etc.
Ces langues partagent très souvent bien plus qu’un alphabet. Vous voyez où je veux en venir : par exemple, en français nous utilisons des verbes quand nous voulons exprimer une action. On utilise aussi des noms pour désigner les objets ou les personnes : une chaise, un tableau, une fille.
Les langages de programmation utilisent une logique très semblable. Dans ce cours, nous nous intéresserons à la programmation structurée qui est un des paradigmes de programmation les plus connus.
En programmation structurée, nous découpons un problème en micro tâches indépendantes les unes des autres, et modulaires. C’est exactement ce que nous sommes en train de faire !
Une variable est une manière de faire référence à un objet. Dans le langage courant, c’est exactement ce que nous appelons "nom". Qu’est-ce qu’un mot, sinon une étiquette que nous avons collée sur un objet pour pouvoir y faire référence plus tard ? Une variable a donc une valeur, et un mot qui permet d'accéder à cette valeur. Vous pouvez donc soit lire la valeur soit la modifier.
Nous pouvons par exemple créer deux variables dans notre algorithme pour compter le nombre de déplacements et le score du joueur, qu’on aura initialisés à 0 au début du programme.
Vous pouvez déclarer l’ensemble des variables dans le pseudo-code dans une section dédiée aux variables ; cela permet de donner une indication des différentes variables de l'algorithme. Vous placerez cette section juste avant le mot-clé Début , comme ceci :
Algorithme DéclarerVariable
Variable
déplacement ← 0
score ← 0
Début
FinMettons-nous d’accord sur la manière de mettre à jour les variables, à travers ce tableau qui résume les différentes possibilités :
Action | Variable | Valeur ajoutée |
un déplacement | déplacement | +1 |
un déplacement à droite | score | +10 |
un déplacement à gauche | score | +20 |
un déplacement en haut | score | +10 |
un déplacement en bas | score | +20 |
Prenons le labyrinthe ci-dessous, et essayons de construire l’algorithme qui permet de rejoindre la case d’arrivée. Il faudra prendre en compte la mise à jour de chaque variable.

Voici le pseudo-code :
Algorithme variable
Variable
déplacement ← 0
score ← 0
Début
Déplacement à droite
déplacement ← déplacement + 1
score ← score + 10
Déplacement en haut
déplacement ← déplacement + 1
score ← score + 10
Déplacement en haut
déplacement ← déplacement + 1
score ← score + 10
Déplacement à gauche
déplacement ← déplacement + 1
score ← score + 20
FinAinsi, à la fin du jeu, la variable déplacement contient la valeur 4, et la variable score contient la valeur 50.
À présent, voyons comment simplifier la mise à jour des deux variables en regroupant les instructions dans un seul même bloc. Vous avez sûrement pu le remarquer, nous avons dû écrire plusieurs fois les instructions qui permettent de changer les valeurs des deux variables.
Nous allons utiliser ce qu’on appelle, en programmation, une fonction. Il s’agit d’un bloc qui regroupe plusieurs actions. Vous pouvez réutiliser ce bloc autant de fois que vous le voulez en invoquant son nom. Une fonction peut aussi être vue comme une moulinette qui va prendre des informations en entrée, les traiter et en renvoyer d’autres en sortie. C’est en quelque sorte un mini-algorithme.
Lorsqu'une fonction est "appelée", le programme "quitte" la section de code en cours et commence à exécuter la première ligne à l'intérieur de la fonction.
Nous allons maintenant créer notre fonction à partir des critères suivants :
Nom | |
Paramètres d’entrée |
|
Instructions |
|
Paramètres de sortie | Pas de paramètre de sortie |
Nous pouvons décrire cette fonction à l’aide du pseudo-code :
Fonction maj_déplacement_score(déplacement, score, point_de_déplacement)
Début
déplacement ← déplacement + 1
score ← score + point_de_déplacement
FinVous remarquerez qu’il n’y a pas de différence avec la description d’un algorithme en pseudo-code, sauf que nous avons ajouté entre parenthèses les paramètres d’entrée. Vous pouvez ajouter avant la fin de la fonction, avec le mot-clé Retourner , les valeurs de sortie, s’il y en a.
Nous utiliserons la fonction maj_déplacement_score pour modifier notre algorithme précédent ainsi :
Algorithme variable
Variable
déplacement ← 0
score ← 0
Début
Déplacement à droite
maj_déplacement_score(déplacement, score, 10)
Déplacement en haut
maj_déplacement_score(déplacement, score, 10)
Déplacement en haut
maj_déplacement_score(déplacement, score, 10)
Déplacement à gauche
maj_déplacement_score(déplacement, score, 20)
Fin
Reprenons notre périple dans le labyrinthe.
Considérons le pseudo-code suivant qui dirige les déplacements du joueur dans le labyrinthe :
Algorithme déplacement
Variable
déplacement ← 0
score ← 0
Début
Déplacement en haut
Déplacement en haut
Déplacement à droite
Déplacement à gauche
Déplacement en bas
Déplacement en bas
FinVous allez mettre en place dans cet exercice une fonction permettant de calculer votre score selon le nombre de déplacements effectués.

Reprenez le pseudo-code ci-dessus et adaptez-le en fonction des consignes suivantes :
Un déplacement incrémente la variable déplacement de 1.
Incrémentation du score en fonction du sens de déplacement :
à gauche : 50 points / le nombre de déplacements
à droite : 70 points / le nombre de déplacements
en haut : 25 points / le nombre de déplacements
en bas : 90 points / le nombre de déplacements
Si le joueur passe à nouveau sur une même case, il faut décrémenter le score de 25 points.
Si le joueur revient à la case Départ, le score est réinitialisé à 0.
Créez l’algorithme qui prend en compte l’ensemble des consignes ci-dessus. N’hésitez pas à écrire à côté de chaque instruction la valeur courante des variables déplacement et score .
Créez une fonction qui permet de mettre à jour les variables déplacement et score .
Créez une fonction qui permet de réinitialiser la variable score à 0.
Adaptez votre algorithme avec les deux nouvelles fonctions.
Voici les quatre étapes à suivre pour obtenir le résultat final de cet exercice :
Algorithme déplacement
Variable
déplacement ← 0
score ← 0
Début
Déplacement en haut
déplacement ← déplacement + 1
score ← score + 25
Déplacement en haut
déplacement ← déplacement + 1
score ← score + 25
Déplacement à droite
déplacement ← déplacement + 1
score ← score + 70
Déplacement à gauche
déplacement ← déplacement + 1
score ← score + 50 - 25 (Le joueur revient sur une case)
Déplacement en bas
déplacement ← déplacement + 1
score ← score + 90 - 25 (Le joueur revient sur une case)
Déplacement en bas
déplacement ← déplacement + 1
score ← score + 90 - 25 (Le joueur revient sur une case)
score ← 0 (Le joueur est revenu à la case départ donc score = 0)
FinFonction maj_déplacement_score(déplacement, score, point_de_déplacement)
Début
déplacement ← déplacement + 1
score ← score + (point_de_déplacement / déplacement)
FinFonction réintialiser_score(score)
Début -
score ← 0
FinAlgorithme déplacement
Variable
déplacement ← 0
score ← 0
Début
Déplacement en haut
maj_déplacement_score(déplacement, score, 25)
Déplacement en haut
maj_déplacement_score(déplacement, score, 25)
Déplacement à droite
maj_déplacement_score(déplacement, score, 70)
Déplacement à gauche
maj_déplacement_score(déplacement, score, 50 - 25) // Retour en arrière de 25 points
Déplacement en bas
maj_déplacement_score(déplacement, score, 90 - 25) // Retour en arrière de 25 points
Déplacement en bas
maj_déplacement_score(déplacement, score, 90 - 25)
réinitialiser_score(score)
FinLa plupart des langages de programmation ont une structure de base similaire les uns aux autres.
Les variables sont utilisées pour stocker des informations à référencer et à manipuler dans un programme informatique.
Une fonction est simplement un "morceau" de code que vous pouvez réutiliser, plutôt que de le réécrire plusieurs fois.
Les fonctions "prennent" généralement des données en entrée, les traitent et "renvoient" un résultat.
Vous avez découvert le monde des variables et comment simplifier votre algorithme en le découpant en fonctions. Il est maintenant temps de tester vos connaissances à l’aide d’un petit quiz dans le chapitre suivant. Bonne chance !