Aller au contenu

Algorithmique · Fiche pratique

Cheatsheet : Choisir et répéter des instructions

Conditions, seuils, boucles, accumulateurs, indices et parcours imbriqués.

Par · Cours gratuit

Une condition choisit un chemin ; une boucle répète un groupe d'instructions. Cette fiche explique les mots-clés et montre les valeurs effectivement parcourues, pas seulement des formes à recopier.

Un bloc est un groupe d'instructions. Python le délimite par l'indentation, les espaces au début des lignes. MATLAB utilise les mots-clés de contrôle et end. Dans le pseudo-code de cette fiche, chaque bloc est fermé explicitement.

1. Un choix exclusif avec plusieurs seuils

IF teste une condition ; THEN introduit la branche correspondante. ELSE IF ajoute un test lorsque les précédents sont faux. ELSE représente le cas restant. Dans une chaîne, seule la première branche vraie est retenue ; deux if indépendants ne possèdent pas cette exclusivité.

Le score est un entier de 0 à 20. La règle est : 16 à 20 → Excellent ; 10 à 15 → Passed ; 0 à 9 → Try again. Les données hors de cet intervalle ne sont pas validées par ce petit script.

Frontières du classement
ScorePremier testSecond testMessage
9FauxFauxTry again
10FauxVraiPassed
15FauxVraiPassed
16VraiNon évaluéExcellent

Classer un score de 16

Les seuils sont testés du plus exigeant au moins exigeant.

// example.pseudo
// classify_score
score <- 16
IF score >= 16 THEN
    message <- "Excellent"
ELSE IF score >= 10 THEN
    message <- "Passed"
ELSE
    message <- "Try again"
END IF
PRINT message

Résultat expliqué. Le premier test est vrai : Excellent est choisi sans évaluer le seuil de 10.

2. WHILE : initialiser, tester, exécuter, mettre à jour

Une itération est un passage dans le corps de boucle. WHILE teste avant chaque itération. Si la condition est fausse dès le départ, le corps n'est jamais exécuté. L'état doit progresser vers la sortie : oublier la mise à jour peut produire une boucle infinie.

Dans le décompte, remaining est un entier non négatif. Il est affiché puis diminué de 1. La suite des tests reçoit 3, 2, 1 puis 0 : trois tours, mais quatre tests.

Les quatre évaluations du test
Valeur avant testremaining > 0Action
3VraiAfficher 3 ; passer à 2
2VraiAfficher 2 ; passer à 1
1VraiAfficher 1 ; passer à 0
0FauxQuitter le corps

Un décompte qui atteint zéro

La sortie normale est 3, 2, 1 puis Done. Une entrée de 0 n’affiche que Done.

// example.pseudo
// countdown
remaining <- 3
WHILE remaining > 0 DO
    PRINT remaining
    remaining <- remaining - 1
END WHILE
PRINT "Done"

Résultat expliqué. Les valeurs affichées sont 3, 2 et 1 ; l’état final est remaining = 0, puis Done est affiché.

3. FOR et accumulateur : additionner un parcours

Un accumulateur garde un résultat partiel. Pour une somme, total commence à zéro avant la boucle. Le pseudo-code parcourt de 1 à n, bornes incluses. Python utilise range(1, n + 1), car sa borne finale est exclue ; MATLAB utilise ici 1:n avec un pas de 1.

Pour n = 4, les valeurs parcourues sont 1, 2, 3 et 4. Les totaux successifs sont 1, 3, 6 et 10. Pour n = 0, le parcours est vide et le total reste zéro.

Additionner les entiers de 1 à 4

Le contrat porte sur un entier n non négatif.

// example.pseudo
// sum_integers
n <- 4
total <- 0
FOR value FROM 1 TO n INCLUSIVE DO
    total <- total + value
END FOR
PRINT total

Résultat expliqué. Le total final vaut 10. Réinitialiser total dans la boucle aurait détruit l’accumulation.

4. Indices, imbrication et arrêts anticipés

Un indice est un numéro de position. Une liste Python de trois éléments utilise les indices 0, 1 et 2 ; un vecteur MATLAB de trois éléments utilise 1, 2 et 3. Une longueur est un nombre d'éléments, pas nécessairement le dernier indice.

Une boucle imbriquée se trouve dans le corps d'une autre. Pour chaque ligne d'une grille, la boucle intérieure reprend toutes les colonnes. Deux lignes de trois colonnes donnent les couples (1,1), (1,2), (1,3), (2,1), (2,2), (2,3) : six visites.

BREAK quitte la boucle courante ; CONTINUE passe au prochain tour sans exécuter le reste du tour courant. Ces instructions ne remplacent pas une règle d'arrêt correctement annoncée.

Erreur à éviter. Une suite vide n'a pas de premier élément. Traitez ce cas avant de lire values[0] en Python ou values(1) en MATLAB.

Pourquoi commencer le classement par score >= 10 ne permet-il plus d’atteindre Excellent pour 18 ?

18 satisfait déjà le premier seuil. La chaîne choisit cette première branche et ignore les suivantes. Testez 16 avant 10, ou annoncez des conditions d’intervalles explicites.

Télécharger cette fiche en PDF · Toutes les fiches par thème