📘 CodingMarble Learn

Bases de la programmation : séquence, sélection, boucles et fonctions

Un programme est une liste d'instructions précises qu'un ordinateur suit à la lettre. Tout programme est construit avec trois structures : la séquence (des étapes dans l'ordre), la sélection (les choix if/else) et l'itération (les boucles). Les variables stockent des valeurs. Les fonctions regroupent du code dans des blocs nommés et réutilisables, ce qui rend le programme modulaire et plus facile à tester, à déboguer et à maintenir.

🎬 L'histoire pas à pas

  1. Un programme est une liste d'étapes exactes. Regarde chaque ligne move() s'allumer quand le robot fait un pas.
  2. Une variable est une boîte avec un nom. score commence à 0, puis on ajoute 5, puis encore 5.
  3. Un if permet au programme de choisir. À chaque case, il demande : mur devant ? Il ne s'arrête que si la réponse est oui.
  4. Une boucle répète des lignes. Deux lignes de code font quatre déplacements, pendant qu'un compteur passe de 1 à 2, 3, 4.
  5. Une fonction est du code que l'on nomme une fois et que l'on réutilise. Puis un bug : le robot s'arrête une case trop tôt. Corrige le nombre et teste à nouveau.
  6. À toi de jouer. Choisis le nombre de tours de la boucle et le test du mur. Devine d'abord, puis lance.

Astuce : fais glisser la scène 3D pour la tourner. Utilise deux doigts pour zoomer.

🤔 Les doutes courants, éclaircis

Pourquoi l'ordinateur ne peut-il pas deviner ce que je veux dire ?

Un ordinateur suit les instructions exactement, dans l'ordre. Si une étape manque ou n'est pas au bon endroit, le robot fait autre chose.

Comment score = score + 5 peut-il être vrai ? Un nombre ne peut pas être égal à lui-même plus 5.

En code, = veut dire « ranger ». Le côté droit est calculé d'abord avec l'ancienne valeur, puis le résultat est rangé dans la boîte.

Un if exécute-t-il les deux branches ?

Non. La condition est vraie ou fausse, et une seule branche s'exécute. Regarde le robot : il avance jusqu'à ce que la condition devienne vraie, et alors seul stop s'exécute.

À quoi sert le compteur i dans une boucle ?

Il retient combien de fois la boucle a tourné, pour que la boucle sache quand s'arrêter. Sur le robot, il apparaît sous la forme i = 1, 2, 3, 4.

Pourquoi utiliser une fonction si je peux simplement copier le code ?

Une seule définition peut servir plusieurs fois. Si tu trouves un bug, tu le corriges une seule fois et tous les appels sont corrigés.

Le programme s'est exécuté sans message d'erreur, alors pourquoi est-il faux ?

C'est une erreur de logique : le code est valide mais le plan est faux, comme une boucle qui tourne 4 fois au lieu de 5.

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 :

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)

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

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 :

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

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

Quiz d'entraînement

1. Exécuter des instructions l'une après l'autre, dans l'ordre, s'appelle :
2. Quelle structure permet de faire un choix ?
3. Après x = 3 puis x = x + 4, x vaut :
4. Un programme tourne mais donne une mauvaise réponse. C'est une :
5. Un bloc de code nommé et réutilisable est une :

Entraînement : réponds toi-même

Écris ou choisis ta réponse, puis appuie sur Vérifier. Prends un indice si tu bloques ; la solution complète s'affiche après ta réponse.

Questions fréquentes

Quelles sont les bases de la programmation ?

Les variables pour stocker des données, et trois structures pour contrôler les étapes : la séquence, la sélection (if/else) et l'itération (les boucles). Les fonctions t'aident ensuite à organiser et à réutiliser ton code.

Quel langage faut-il apprendre en premier ?

Les idées sont les mêmes dans tous les langages. Scratch convient très bien aux plus jeunes ; Python est très populaire parce que son code est court et facile à lire.

Qu'est-ce que le débogage ?

C'est chercher et corriger les erreurs (les bugs) d'un programme, souvent en testant avec différentes entrées et en suivant les valeurs des variables ligne par ligne.

Où c'est enseigné

Canada (Ontario)Grade 8C. Algebra
Canada (Ontario)Grade 8A. STEM Skills and Connections
Canada (Ontario)Grade 9C. Algebra
Canada (Ontario)Grade 10C. Programming
Canada (Ontario)Grade 11C. Exploration of Opportunities
Canada (Ontario)Grade 11A. Programming Concepts and Skills
Canada (Ontario)Grade 11B. Software Development
Canada (Ontario)Grade 11A. Programming Concepts and Skills
Canada (Ontario)Grade 11B. Software Development
Canada (Ontario)Grade 11B. Computer Technology Skills
Canada (Ontario)Grade 12D. Interacting with School-Age Children and Adolescents
Canada (Ontario)Grade 12A. Programming Concepts and Skills
Canada (Ontario)Grade 12B. Software Development
Canada (Ontario)Grade 12A. Programming Concepts and Skills
Canada (Ontario)Grade 12B. Computer Technology Skills
NetherlandsVWO 2 (onderbouw)Using digital technology
NetherlandsHAVO 4 (bovenbouw, 2e fase)Programming
NetherlandsVWO 5Programming
PolandSzkoła podstawowa, klasa VIIProgramming and solving problems with computers
PolandSzkoła podstawowa, klasa VIIIProgramming and solving problems with computers
PolandLiceum ogólnokształcące, klasa IIProgramming and solving problems with computers
RomaniaClasa a VIII-aAlgorithms
RomaniaClasa a X-aProgramming language basics
Spain2º ESOComputational thinking, programming and robotics
Spain3º ESOComputational thinking, programming and robotics
Spain1º BachilleratoComputer systems and programming
England (GCSE, A level)Year 9Computer science
England (GCSE, A level)Year 103.2 Programming
England (GCSE, A level)Year 134.1 Fundamentals of programming (A-level)
USA (Common Core, NGSS, AP)Grade 8Algorithms and Programming
USA (Common Core, NGSS, AP)Grade 9Algorithms and Programming
USA (Common Core, NGSS, AP)Grade 10Big Idea 3: Algorithms and Programming
USA (Common Core, NGSS, AP)Grade 11Using Objects and Methods
USA (Common Core, NGSS, AP)Grade 11Data Collections
USA (Common Core, NGSS, AP)Grade 11Algorithms and Programming
Japan中学3年Technology: information technology
Japan高校(専門学科)1〜3年Programming for Information Systems
South Korea중학교 2학년Algorithms and programming
South Korea중학교 3학년Programming
South Korea고등학교 2학년Algorithms and programming
South Korea고등학교 2학년Symbols and logic
South Korea고등학교 2학년Software for creation
South Korea고등학교 3학년Programming
Russia8 классAlgorithms and programming
Russia8 классAlgorithms and programming
Russia9 классAlgorithms and programming

À voir d'abord

À voir ensuite