Trouver et corriger ses erreurs
Un programme qui marche du premier coup, c'est rare, même pour les professionnels. Trouver et corriger une erreur s'appelle déboguer. Ce n'est pas un échec : c'est une partie normale du travail, et ça s'apprend.
Deux sortes d'erreurs
- L'erreur qui arrête le programme : CoddyRun affiche un message avec le numéro de la ligne. C'est la plus facile, car on sait où regarder.
- L'erreur de logique : le programme s'exécute jusqu'au bout, mais le résultat est faux. Aucun message : il faut enquêter.
Voici un programme avec une erreur de logique. Il doit calculer la moyenne de trois notes :
notes est un tableau vaut [12, 15, 9]
total est un nombre vaut 0
pour i de 0 à longueur(notes) - 1
total vaut notes[i]
fin pour
affiche 'Moyenne : ' + total / longueur(notes)
Il affiche 3, alors que la moyenne de 12, 15 et 9 est 12. Où est l'erreur ?
Faire parler le programme avec déboguer
L'instruction déboguer affiche la valeur d'une variable, à part du résultat normal : les messages sont regroupés dans une carte séparée de la console.
notes est un tableau vaut [12, 15, 9]
total est un nombre vaut 0
pour i de 0 à longueur(notes) - 1
total vaut notes[i]
déboguer total
fin pour
affiche 'Moyenne : ' + total / longueur(notes)
La carte de débogage montre 12, puis 15, puis 9. Le total devrait grossir à chaque tour (12, 27, 36), mais il est remplacé à chaque fois ! L'erreur est trouvée : il fallait écrire total ajoute notes[i] au lieu de total vaut notes[i].
Une fois le problème résolu, on retire les déboguer. On peut aussi les garder et désactiver la carte de débogage dans les options de l'éditeur.
Question : Pourquoi utiliser déboguer plutôt que affiche pour chercher une erreur ? — Parce que ses messages ne se mélangent pas au résultat du programme. Les messages de déboguer sont regroupés dans une carte à part : le résultat normal reste lisible.
L'exécution pas à pas
Encore plus puissant : demander à CoddyRun d'exécuter le programme une ligne à la fois. Clique sur le bouton Exécution pas à pas, à côté du bouton Exécuter, ou appuie sur la touche F7.
- La ligne qui va s'exécuter est surlignée dans l'éditeur.
- Une carte « Pas à pas » affiche toutes les variables, avec leur type et leur valeur.
- Les valeurs qui viennent de changer s'allument en vert.
À chaque appui sur F7, le programme avance d'une ligne. Tu vois exactement ce que fait chaque instruction : c'est la meilleure façon de comprendre une boucle.
Les autres commandes utiles :
- F8 : exécute la ligne sans entrer dans les fonctions qu'elle appelle ;
- F9 : continue normalement jusqu'au prochain point d'arrêt, ou jusqu'à la fin ;
- Espace : lecture automatique, le programme avance tout seul.
Les points d'arrêt
Dans un long programme, on ne veut pas tout dérouler depuis le début. Un double-clic sur un numéro de ligne pose un point d'arrêt : l'exécution s'arrêtera juste avant cette ligne.
Lance le pas à pas, appuie sur F9, et le programme file jusqu'au point d'arrêt. Tu peux alors continuer ligne par ligne à partir de l'endroit qui t'intéresse.
Un clic simple sur un numéro de ligne fait autre chose : la ligne est ignorée à l'exécution. Pratique pour désactiver une instruction sans l'effacer.
Une méthode en quatre étapes
- Reproduire : trouve un cas précis où le programme se trompe (ici, les notes 12, 15 et 9).
- Prévoir : calcule à la main ce que le programme devrait afficher.
- Localiser : avec
déboguer ou le pas à pas, cherche la première ligne où une variable n'a pas la valeur attendue. - Corriger, puis retester, y compris avec d'autres valeurs.
Ne modifie jamais ton code au hasard en espérant que ça marche : cherche d'abord à comprendre.
En résumé
- Une erreur de logique ne donne aucun message : il faut observer les variables.
déboguer variable affiche une valeur dans une carte à part.- Le pas à pas (F7) exécute une ligne à la fois et montre toutes les variables.
- Un double-clic sur un numéro de ligne pose un point d'arrêt ; F9 y conduit directement.
- Reproduire, prévoir, localiser, corriger.