Menu
Coddy logo textTech

Exemples de pseudocode

15 exemples détaillés en pseudocode Cambridge IGCSE et A-Level, du premier OUTPUT jusqu'au tri à bulles. Chacun montre sa sortie, et vous pouvez l'exécuter dans l'éditeur ci-dessous.

Comment lire ces exemples

Le pseudocode décrit les étapes d'un programme dans un anglais structuré, sans les règles strictes d'un vrai langage de programmation. Tous les exemples ci-dessous utilisent le style Cambridge des examens IGCSE et A-Level : DECLARE pour les variables, ← pour l'affectation, OUTPUT pour afficher, et des blocs fermés par ENDIF, NEXT ou ENDWHILE.

Chaque exemple pose un problème, donne le pseudocode, montre la sortie qu'il produit et explique son fonctionnement. Cliquez sur Exécutez-le dans l'éditeur pour charger un exemple dans l'éditeur en haut de la page : vous pourrez l'exécuter pas à pas, ligne par ligne, et voir les variables changer. Vous découvrez la syntaxe ? L'éditeur de pseudocode propose une bibliothèque cliquable de toutes les instructions.

1. Hello, World

Afficher un message à l'écran.

Pseudocode
OUTPUT "Hello, World!"
Sortie
Hello, World!

OUTPUT affiche ce qui le suit, et le texte se place entre guillemets doubles. Cette seule ligne est un programme complet : le pseudocode n'a besoin ni de fonction principale ni d'imports.

2. Additionner deux nombres

Stocker deux nombres entiers, les additionner et afficher le total.

Pseudocode
DECLARE a : INTEGER
DECLARE b : INTEGER
DECLARE total : INTEGER
a ← 12
b ← 30
total ← a + b
OUTPUT "The total is ", total
Sortie
The total is 42

Chaque variable est déclarée avec un nom et un type avant d'être utilisée. La flèche ← stocke une valeur : lisez total ← a + b comme « total prend la valeur a plus b ». Une virgule dans OUTPUT réunit le texte et la valeur sur une même ligne.

3. Pair ou impair

Déterminer si un nombre est pair ou impair.

Pseudocode
DECLARE n : INTEGER
n ← 17
IF n MOD 2 = 0 THEN
    OUTPUT n, " is even"
ELSE
    OUTPUT n, " is odd"
ENDIF
Sortie
17 is odd

MOD donne le reste d'une division. Un nombre pair divisé par 2 ne laisse aucun reste, donc le test est n MOD 2 = 0. IF choisit l'une des deux branches et ENDIF ferme le bloc. En pseudocode, un = seul compare deux valeurs ; il n'affecte jamais.

4. Attribuer une note à un score

Transformer un score sur 100 en note : A à partir de 80, B de 60 à 79, C en dessous de 60.

Pseudocode
DECLARE score : INTEGER
DECLARE grade : CHAR
score ← 74
IF score >= 80 THEN
    grade ← 'A'
ELSE
    IF score >= 60 THEN
        grade ← 'B'
    ELSE
        grade ← 'C'
    ENDIF
ENDIF
OUTPUT "Score ", score, " gets grade ", grade
Sortie
Score 74 gets grade B

Les tests vont du seuil le plus haut vers le plus bas, donc un score de 74 échoue au premier test et réussit le second. Placer un IF dans le ELSE d'un autre, c'est ainsi que le pseudocode Cambridge écrit une chaîne de conditions else-if. Un CHAR contient un seul caractère entre guillemets simples.

5. Additionner les nombres de 1 à 10

Faire la somme de tous les nombres entiers de 1 à 10.

Pseudocode
DECLARE total : INTEGER
DECLARE i : INTEGER
total ← 0
FOR i ← 1 TO 10
    total ← total + i
NEXT i
OUTPUT "Sum of 1 to 10 is ", total
Sortie
Sum of 1 to 10 is 55

Une boucle FOR s'exécute un nombre fixe de fois : i prend les valeurs 1, 2, 3 et ainsi de suite jusqu'à 10, et NEXT i marque la fin du corps de la boucle. Le total commence à 0 et augmente à chaque tour. Le résultat, 55, correspond à la formule n(n + 1) / 2.

6. Afficher une table de multiplication

Afficher les cinq premières lignes de la table de 7.

Pseudocode
DECLARE i : INTEGER
FOR i ← 1 TO 5
    OUTPUT "7 x ", i, " = ", 7 * i
NEXT i
Sortie
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35

Le compteur de boucle i sert dans le calcul, donc chaque tour affiche une ligne différente. OUTPUT peut réunir plusieurs morceaux de texte et plusieurs valeurs avec des virgules.

7. Compte à rebours avec une boucle WHILE

Compter à rebours de 5 à 1, puis afficher un message final.

Pseudocode
DECLARE count : INTEGER
count ← 5
WHILE count > 0 DO
    OUTPUT count
    count ← count - 1
ENDWHILE
OUTPUT "Liftoff!"
Sortie
5
4
3
2
1
Liftoff!

Une boucle WHILE vérifie sa condition avant chaque tour et s'arrête dès que la condition est fausse. Ici, la condition est count > 0, et le corps diminue count de un à chaque fois. Sans la ligne qui le diminue, la boucle ne s'arrête jamais. Utilisez WHILE quand vous ne savez pas à l'avance combien de tours il faudra.

8. Trouver le plus grand nombre d'un tableau

Trouver la plus grande valeur dans une liste de six nombres.

Pseudocode
DECLARE nums : ARRAY[1:6] OF INTEGER
DECLARE i : INTEGER
DECLARE largest : INTEGER
nums[1] ← 14
nums[2] ← 3
nums[3] ← 27
nums[4] ← 9
nums[5] ← 21
nums[6] ← 6
largest ← nums[1]
FOR i ← 2 TO 6
    IF nums[i] > largest THEN
        largest ← nums[i]
    ENDIF
NEXT i
OUTPUT "The largest number is ", largest
Sortie
The largest number is 27

ARRAY[1:6] déclare six cases numérotées de 1 à 6, car les tableaux Cambridge commencent en général à 1. Le programme suppose que le premier élément est le plus grand, puis le compare à chacun des autres et garde le plus grand. Après un seul parcours du tableau, largest contient la réponse.

9. Calculer une moyenne

Trouver la moyenne de quatre notes d'examen.

Pseudocode
DECLARE marks : ARRAY[1:4] OF INTEGER
DECLARE i : INTEGER
DECLARE total : INTEGER
marks[1] ← 70
marks[2] ← 85
marks[3] ← 64
marks[4] ← 91
total ← 0
FOR i ← 1 TO 4
    total ← total + marks[i]
NEXT i
OUTPUT "Average mark: ", total / 4
Sortie
Average mark: 77.5

La boucle ajoute chaque élément du tableau à total, puis le programme divise par le nombre de notes. L'opérateur / donne un résultat décimal, c'est pourquoi la sortie vaut 77.5. Utilisez plutôt DIV si vous voulez une division entière.

11. Tri à bulles

Trier cinq nombres dans l'ordre croissant.

Pseudocode
DECLARE nums : ARRAY[1:5] OF INTEGER
DECLARE i : INTEGER
DECLARE j : INTEGER
DECLARE temp : INTEGER
nums[1] ← 5
nums[2] ← 1
nums[3] ← 4
nums[4] ← 2
nums[5] ← 8
FOR i ← 1 TO 4
    FOR j ← 1 TO 5 - i
        IF nums[j] > nums[j + 1] THEN
            temp ← nums[j]
            nums[j] ← nums[j + 1]
            nums[j + 1] ← temp
        ENDIF
    NEXT j
NEXT i
FOR i ← 1 TO 5
    OUTPUT nums[i]
NEXT i
Sortie
1
2
4
5
8

Le tri à bulles compare chaque paire de voisins et les échange quand ils sont dans le mauvais ordre. Après chaque tour de la boucle externe, la plus grande valeur restante est arrivée à la fin, donc la boucle interne peut s'arrêter un élément plus tôt à chaque fois. L'échange a besoin d'une troisième variable, temp, pour garder une valeur pendant que l'autre est copiée.

Voir cet algorithme animé

12. Factorielle avec une fonction

Écrire une fonction qui renvoie la factorielle de n (n!), puis l'utiliser pour calculer 5!.

Pseudocode
FUNCTION Factorial(n : INTEGER) RETURNS INTEGER
    DECLARE result : INTEGER
    DECLARE i : INTEGER
    result ← 1
    FOR i ← 2 TO n
        result ← result * i
    NEXT i
    RETURN result
ENDFUNCTION

OUTPUT "5! = ", Factorial(5)
Sortie
5! = 120

Une FUNCTION reçoit des paramètres, fait son travail et renvoie une valeur avec RETURN ; son en-tête indique le type renvoyé. Les variables déclarées à l'intérieur n'existent que pendant son exécution. 5! vaut 5 × 4 × 3 × 2 × 1, soit 120.

13. Compter les voyelles d'un mot

Compter combien de voyelles contient le mot PSEUDOCODE.

Pseudocode
DECLARE word : STRING
DECLARE letter : CHAR
DECLARE vowels : INTEGER
DECLARE i : INTEGER
word ← "PSEUDOCODE"
vowels ← 0
FOR i ← 1 TO LENGTH(word)
    letter ← SUBSTRING(word, i, 1)
    IF letter = 'A' OR letter = 'E' OR letter = 'I' OR letter = 'O' OR letter = 'U' THEN
        vowels ← vowels + 1
    ENDIF
NEXT i
OUTPUT word, " has ", vowels, " vowels"
Sortie
PSEUDOCODE has 5 vowels

LENGTH donne le nombre de caractères d'une chaîne, et SUBSTRING(word, i, 1) extrait un caractère à partir de la position i. La boucle parcourt chaque caractère et ajoute un au compteur chaque fois qu'il s'agit de A, E, I, O ou U.

14. FizzBuzz

Afficher les nombres de 1 à 15, mais afficher Fizz pour les multiples de 3, Buzz pour les multiples de 5 et FizzBuzz pour les multiples des deux.

Pseudocode
DECLARE i : INTEGER
FOR i ← 1 TO 15
    IF i MOD 15 = 0 THEN
        OUTPUT "FizzBuzz"
    ELSE
        IF i MOD 3 = 0 THEN
            OUTPUT "Fizz"
        ELSE
            IF i MOD 5 = 0 THEN
                OUTPUT "Buzz"
            ELSE
                OUTPUT i
            ENDIF
        ENDIF
    ENDIF
NEXT i
Sortie
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz

L'ordre des tests compte. 15 est un multiple de 3 et de 5, donc le test pour 15 doit venir en premier ; sinon le programme afficherait Fizz et n'atteindrait jamais FizzBuzz. C'est un échauffement classique en entretien, justement parce qu'il teste ce type de raisonnement.

15. Tentatives de mot de passe avec REPEAT UNTIL

Essayer jusqu'à trois mots de passe à tour de rôle et accorder l'accès si l'un d'eux est correct.

Pseudocode
DECLARE attempts : ARRAY[1:3] OF STRING
DECLARE tries : INTEGER
DECLARE guess : STRING
attempts[1] ← "hunter1"
attempts[2] ← "letmein"
attempts[3] ← "open sesame"
tries ← 0
REPEAT
    tries ← tries + 1
    guess ← attempts[tries]
    OUTPUT "Try ", tries, ": ", guess
UNTIL guess = "open sesame" OR tries = 3
IF guess = "open sesame" THEN
    OUTPUT "Access granted"
ELSE
    OUTPUT "Locked out"
ENDIF
Sortie
Try 1: hunter1
Try 2: letmein
Try 3: open sesame
Access granted

Une boucle REPEAT ... UNTIL vérifie sa condition à la fin, donc le corps s'exécute toujours au moins une fois. Elle s'arrête quand le mot de passe correspond ou après le troisième essai. Les essais viennent d'un tableau pour que l'exemple s'exécute sans rien taper ; dans une copie d'examen, vous liriez en général chacun avec INPUT.

FAQ sur les exemples de pseudocode

Quel est un exemple de pseudocode ?

Un exemple court détermine si un examen est réussi : IF score >= 50 THEN OUTPUT "Pass" ELSE OUTPUT "Fail" ENDIF. Il se lit presque comme de l'anglais mais suit des règles fixes, ce qui permet de le traduire ligne par ligne en Python, en Java ou dans n'importe quel autre langage. Les 15 programmes de cette page vont d'une seule ligne jusqu'à la recherche et au tri.

Comment écrire du pseudocode ?

Définissez ce que le programme doit faire, puis écrivez les étapes dans l'ordre avec un petit ensemble de mots-clés : DECLARE pour les variables, ← pour affecter, IF pour les décisions, FOR ou WHILE pour la répétition et OUTPUT pour les résultats. Indentez le corps de chaque bloc, fermez-le avec son mot-clé de fin et gardez une seule action par ligne.

Le pseudocode est-il le même dans tous les examens ?

Non. Cambridge (IGCSE et A-Level) utilise DECLARE et la flèche ←, AQA utilise ← sans déclarations, l'Exam Reference Language d'OCR ressemble à Python, et Edexcel écrit SET ... TO. Les exemples de cette page suivent Cambridge ; l'éditeur de pseudocode passe d'un style à l'autre parmi les quatre.

Peut-on exécuter du pseudocode ?

Oui, sur cette page. Le pseudocode n'est pas un vrai langage de programmation, il n'a donc pas de compilateur officiel, mais l'éditeur de cette page exécute le pseudocode Cambridge dans votre navigateur, affiche la sortie et le parcourt ligne par ligne. Cliquez sur Exécutez-le dans l'éditeur sous n'importe quel exemple.

Quelle est la différence entre le pseudocode et un organigramme ?

Les deux décrivent un algorithme avant qu'il soit codé. Un organigramme dessine les étapes sous forme de cases et de flèches, ce qui convient aux processus courts avec peu de décisions. Le pseudocode les écrit sous forme de texte structuré, ce qui reste lisible pour des programmes plus longs et se traduit plus directement en vrai code.

Faut-il déclarer les variables en pseudocode ?

En pseudocode Cambridge, oui : les barèmes de correction attendent DECLARE name : TYPE avant qu'une variable soit utilisée. D'autres styles, comme celui d'AQA, se passent de déclarations. Déclarer une variable indique aussi au lecteur quel type de valeur elle contient.

Illustration des langages de programmation de Coddy

Passez du pseudocode au vrai code avec Coddy

COMMENCER