Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Décomposer un problème en étapes

Après cette leçon: Je peux décomposer un problème en étapes et suivre ce que fait un programme.

Leçon de 50 min2 commandesLab Linux du quotidien : la trentaine de commandes que les ingénieurs tapent de tête

Rendre la monnaie à la boulangerie

Décomposer un problème en étapes, c’est le couper en petites actions simples qu’on peut faire une à une. C’est la première compétence d’un programmeur, avant même de connaître un langage.

À la boulangerie, la caissière rend la monnaie sans y penser. Elle suit pourtant plusieurs petites opérations dans un ordre précis. Un ordinateur ne devine rien : il faut tout lui dire.

À la fin de cette leçon

Remarque

Je peux décomposer un problème en étapes et suivre ce que fait un programme.

Mots-clés

MotCe que ça veut direExemple
Algorithmeune liste d’étapes précises qui résout un problème
Décompositioncouper un gros problème en petits problèmes
Pseudo-codedes étapes écrites en français, sans règles strictes
Variableune case nommée qui garde une valeurtotal
Table de traceun tableau qui note la valeur des variables à chaque étape

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Un algorithme est une liste d’étapes précises

Un algorithme est une liste d’étapes précises qui mène d’un problème à sa solution. Chaque étape est simple et ne laisse aucun choix flou. L’ordre compte : changer deux étapes change souvent le résultat.

On écrit d’abord l’algorithme en pseudo-code, c’est-à-dire en français ordinaire. On le traduit en Python ensuite.

Exemple travaillé : rendre la monnaie en pseudo-code

ÉtapeInstructionAvec un pain à 1,20 € payé avec 5 €
1Lire le prix du painprix = 1,20
2Lire la somme donnéedonne = 5,00
3Calculer la monnaiemonnaie = 5,00 − 1,20 = 3,80
4Annoncer la monnaie« Je vous rends 3,80 € »

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Erreur fréquente

Attention

Beaucoup de gens pensent que l’ordinateur comprend l’intention. Il ne fait que ce qui est écrit, dans l’ordre. Une étape comme « calculer le bon prix » est trop floue : écrivez quel calcul, avec quelles valeurs.

Décomposer, c’est couper en petits problèmes

Un problème réel est souvent trop gros pour être écrit d’un coup. La décomposition le coupe en sous-problèmes plus petits. Chacun se résout seul.

Prenons un relevé de notes. Calculer la moyenne de trois notes demande trois sous-problèmes : lire les notes, les additionner, puis diviser par leur nombre.

Une table de trace suit les variables

Une variable est une case nommée qui garde une valeur. Pour comprendre un programme, on joue l’ordinateur à la main. On note dans une table de trace la valeur de chaque variable après chaque ligne.

Si la table donne le résultat attendu, l’algorithme est bon. Sinon, on voit quelle ligne se trompe.

La trace pour 12, 15 et 9

Ligne exécutéenote_1note_2note_3totalAffiché
note_1 = 1212····
note_2 = 151215···
note_3 = 912159··
total = note_1 + note_2 + note_31215936·
print(total / 3)121593612.0

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Le programme de la table de trace

Code: python
# Une moyenne de trois notes, comme dans la table de trace.
note_1 = 12
note_2 = 15
note_3 = 9
total = note_1 + note_2 + note_3
print(total / 3)
# Changez note_3 en 18, prévoyez le résultat, puis relancez.

Écrire puis lancer le programme dans le labo

Le labo est une machine Linux qui a Python. La première commande écrit le programme dans un fichier nommé moyenne.py. La seconde le lance.

Le terminal affiche 12.0, car 36 divisé par 3 donne 12. Python écrit un nombre à virgule avec un point.

Écrire le fichier moyenne.py

Commande
printf 'note_1 = 12\nnote_2 = 15\nnote_3 = 9\ntotal = note_1 + note_2 + note_3\nprint(total / 3)\n' > moyenne.py

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Lancer le programme

Commande
python3 moyenne.py

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Pour aller plus loin

Faites la table de trace de ce programme sur papier, sans le lancer :

prix = 2 puis quantite = 4 puis total = prix * quantite puis total = total - 1 puis print(total).

Écrivez la valeur de chaque variable après chaque ligne. Dites ce que le programme affichera, puis vérifiez dans le labo avec python3 -c.

À propos de ce labo et de sa source: Lab Linux du quotidien : la trentaine de commandes que les ingénieurs tapent de tête

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.