Aide-mémoire Organigrammes
Les sept formes, et ce que chacune impose
| Forme | Ce qu'elle fait | Ce qu'elle exige |
|---|---|---|
| Main / End | Pilules de début et de fin. | Une seule paire par programme. Une fonction a les siennes, à son nom. |
| Declare | Crée une variable et fixe son type. | Avant toute utilisation. Types : Integer, Real, String, Boolean. |
| Assign | Range le résultat d'un calcul dans une variable. | La variable doit exister, et le type doit convenir. |
| Input | Lit une saisie. | La variable qui reçoit doit être déclarée. |
| Output | Affiche une expression. | Rien de particulier. |
| If | Un losange, une condition. | Deux branches : False à gauche, True à droite. Elles se rejoignent. |
| While / For / Do | Répéter. | La condition doit pouvoir devenir fausse. |
| Call | Appelle une fonction qui ne rend rien. | La fonction doit être définie. |
Le plus petit programme qui fasse quelque chose
Déclarer, affecter, afficher. Dérouler la figure pas à pas et suivre la valeur de message dans la console.
Lire, calculer, afficher
C'est la charpente de presque tout premier programme : ce qui entre, ce qu'on en fait, ce qui sort.
Trois déclarations, deux saisies, un calcul, une sortie. Dérouler et observer que rien ne s'affiche avant la dernière forme.
Décider
Le losange a deux sorties, et elles se rejoignent toujours avant la suite.
Un test à deux branches. La dernière forme est commune aux deux chemins : c'est ce que veut dire « les branches se rejoignent ».
Répéter
Une boucle qui compte jusqu'à cinq. Dérouler et regarder i et somme changer à chaque tour : c'est la ligne « i ← i + 1 » qui permet à la boucle de s'arrêter.
Les règles qui bloquent l'exécution
| La règle | Ce qui arrive si on l'oublie |
|---|---|
| Déclarer avant d'utiliser | Le programme s'arrête sur la forme fautive. |
& colle du texte, + additionne | "Total : " + n échoue ; "Total : " & n fonctionne. |
/ rend toujours un réel | 7 / 2 vaut 3.5. Rangé dans un Integer, il perd sa partie décimale. |
= compare dans un If, ← affecte dans un Assign | Les deux ne s'échangent pas. |
| Une boucle doit pouvoir s'arrêter | Sinon elle tourne jusqu'à l'interruption. |
| De haut en bas, en suivant les flèches | Il n'y a pas d'autre ordre d'exécution. |
Ce qui se trompe le plus souvent
| Le piège | Ce qu'il faut faire |
|---|---|
Un Integer pour une moyenne | déclarer Real dès qu'une division intervient |
= au lieu de ←, ou l'inverse | = compare dans un If, ← affecte dans un Assign |
+ pour coller du texte | &, le + n'additionne que des nombres |
| Une condition de boucle écrite à l'envers | dérouler la figure d'un pas pour le voir |
| Une variable utilisée avant d'être déclarée | toute variable passe par un Declare |
| Le cas limite oublié | vérifier pour zéro, pour un, et pour un négatif |
Un Integer pour une moyenne. Le calcul est juste, le rangement le tronque. Déclarer Real dès qu'une division intervient.
Le test d'égalité sur un Real. Deux calculs qui devraient donner le même nombre à virgule ne le donnent presque jamais exactement. Comparer un écart à un petit seuil.
La condition de boucle écrite à l'envers. tantque i > 5 avec i valant 1 n'entre jamais dans la boucle, et le programme paraît ne rien faire. Dérouler la figure d'un pas suffit à le voir.
L'oubli du cas limite. Une boucle « de 1 à n » avec n valant 0 ne doit pas tourner. Vérifier le comportement pour zéro, pour un, et pour une valeur négative.
Du dessin au code
Chaque forme a sa traduction, presque mot pour mot. C'est ce qui rend l'exercice utile : le schéma n'est pas une étape scolaire, c'est le brouillon du programme.
| Organigramme | Python |
|---|---|
Declare Integer n | rien à écrire, le type vient de la valeur |
Input n | n = int(input()) |
Assign total ← a * b | total = a * b |
Output "x : " & n | print("x :", n) |
If cond avec deux branches | if cond: … else: |
While cond | while cond: |
For i de 1 à n | for i in range(1, n + 1) |
Pour aller plus loin
Le parcours Flowgorithm déroule tout cela chapitre par chapitre, du premier organigramme jusqu'à concevoir, tester, traduire. Pour les mêmes notions écrites en pseudo-code plutôt que dessinées, voir Algorithmique.
Version imprimable : les tables de syntaxe seules, sur une feuille.
Les autres aide-mémoire sont sur cette page, et les exercices dans Pratiquer.