Qu'est-ce qu'un programme ?
Un algorithme est un plan, étape par étape, pour résoudre un problème. Un programme est ce plan écrit dans un langage que l'ordinateur comprend, comme Python, Scratch, Java ou C. L'ordinateur fait exactement ce que dit le programme, ni plus, ni moins.
La plupart des programmes suivent le schéma entrée → traitement → sortie : on reçoit des données, on les travaille, on donne un résultat. Avant de coder, on prépare un plan avec du pseudo-code (des étapes en langage simple) ou un organigramme.
La séquence signifie que les instructions s'exécutent dans l'ordre, de haut en bas. Changer l'ordre peut changer le résultat.
Variables et types de données
Une variable est un espace de stockage nommé pour une valeur. score = 0 est une affectation : elle met 0 dans la boîte appelée score. score = score + 5 lit l'ancienne valeur, ajoute 5, puis range la nouvelle valeur.
Les types de données courants :
- Entier (integer) : nombres sans virgule, par ex. 42
- Réel / flottant (float) : nombres décimaux, par ex. 3.5
- Chaîne de caractères (string) : du texte, par ex. "Asha"
- Booléen : True ou False (vrai ou faux)
Une constante est une valeur qui ne change pas pendant l'exécution du programme, comme le nombre de jours dans une semaine. De bons noms (total_marks plutôt que x) rendent le code facile à lire.
Sélection et itération
Sélection (if / else)
Le programme vérifie une condition qui est soit vraie, soit fausse, et exécute une seule branche.
if marks >= 33:
print("Pass")
else:
print("Try again")Les conditions utilisent des opérateurs de comparaison (==, !=, <, >, <=, >=) et des opérateurs logiques (and, or, not).
Itération (boucles)
- Boucle avec compteur (for) : répète un nombre de fois fixé.
for i in range(1, 5):s'exécute avec i = 1, 2, 3, 4. - Boucle avec condition (while) : répète tant qu'une condition est vraie. Il faut que quelque chose change à l'intérieur, sinon elle tourne pour toujours.
Fonctions et conception modulaire
Une fonction (on dit aussi sous-programme, procédure ou méthode) est un bloc de code qui porte un nom. Tu la définis une seule fois et tu l'appelles quand tu en as besoin.
def area(length, width):
return length * width
print(area(4, 3)) # 12- Les paramètres (length, width) sont les entrées de la fonction ; les valeurs qu'on lui envoie (4, 3) sont les arguments.
- return renvoie un résultat.
- Une variable créée dans une fonction est locale : on ne la voit pas à l'extérieur.
La conception modulaire consiste à découper un gros problème en petites parties (décomposition), chacune écrite et testée comme une fonction à part. Avantages : moins de code répété, tests plus simples, travail en équipe, et une seule correction met à jour tous les usages.
Tests, débogage et maintenance du code
Trois sortes d'erreurs :
- Erreur de syntaxe : elle viole les règles du langage (deux-points ou parenthèse oubliés). Le programme ne démarre pas.
- Erreur d'exécution : elle arrive pendant que le programme tourne, par ex. une division par zéro.
- Erreur de logique : le programme tourne mais donne une mauvaise réponse, par ex. une boucle qui s'exécute une fois de trop ou de moins (erreur de décalage d'un, « off-by-one »).
Les tests utilisent des données normales, des données limites (au bord, comme exactement 33 points) et des données invalides (comme -5 points). Une table de trace note la valeur de chaque variable ligne après ligne, pour trouver où ça se passe mal.
Un code maintenable a des noms qui ont du sens, des commentaires qui expliquent pourquoi, une indentation régulière, de petites fonctions et aucun bloc copié-collé. Les programmeurs utilisent aussi la gestion de versions pour garder l'historique des changements.
À essayer : le robot sans ordinateur
Demande à un ami de jouer le robot. Écris des instructions sur papier en utilisant seulement : step, turn left, turn right, repeat n et if wall: turn. Guide-le de la porte jusqu'à une chaise. Le robot a-t-il fait exactement ce que tu as écrit ? Corrige les bugs et recommence. Ensuite, ouvre le jeu libre en 3D et devine où le robot s'arrête avant d'appuyer sur quoi que ce soit.
Formules et définitions clés
- Trois briques de base : Séquence, Sélection (if/else), Itération (for/while)
- Affectation : variable = expression (le côté droit est calculé en premier)
- for i in range(a, b) s'exécute b − a fois (a, a+1, …, b−1)
- Fonction : def nom(paramètres): … return résultat
Exemples résolus
1. x = 4, puis x = x * 2, puis x = x - 3. Que vaut x ?
Ligne par ligne : x = 4 → x = 8 → x = 5. Donc x = 5.
2. Qu'affiche ce programme ? for i in range(1, 4): print(i * 10)
i prend les valeurs 1, 2, 3, donc il affiche 10, 20, 30.
3. age = 15. Que s'affiche-t-il ? if age >= 18: print("Adult") else: print("Minor")
15 >= 18 est faux (False), donc la branche else s'exécute : Minor.
4. Écris une fonction qui renvoie le plus grand de deux nombres.
def bigger(a, b): if a > b: return a else: return b
5. Trace : total = 0; for n in range(1, 4): total = total + n. Que vaut total à la fin ?
n = 1 → total 1 ; n = 2 → total 3 ; n = 3 → total 6. Au final, total = 6.
6. Un programme doit afficher les nombres de 1 à 5 mais utilise for i in range(1, 5). Quelle est cette erreur et comment la corriger ?
C'est une erreur de logique (décalage d'un) : il n'affiche que 1 à 4. Correction : range(1, 6).
Erreurs fréquentes
- Lire = comme « égal » en maths. En code, = veut dire « range le côté droit dans le côté gauche ». Pour comparer, utilise ==.
- Oublier que range(1, 5) s'arrête avant 5.
- Écrire une boucle while dont la condition ne devient jamais fausse : elle tourne pour toujours.
- Copier plusieurs fois le même bloc de code au lieu d'écrire une seule fonction.