Aller au contenu
Lus Boucle, vers la page d'accueil
Algorithmes

Répéter et choisir : boucles et conditions

Avec une boucle, tu fais répéter quelque chose à un ordinateur, avec une condition, tu le fais choisir. Ainsi, de longs programmes deviennent courts et malins.

5e-6e primaire10 à 13 ansBrouillon: Pas encore relu par un enseignant d'informatique.

Pourquoi

Tu veux faire avancer un robot de dix cases. Dois-tu vraiment écrire dix fois « avance » ?

C'est possible, mais c'est ennuyeux et tu fais vite une erreur. Les programmeurs préfèrent écrire une seule fois : répète 10 fois, avance.

Et s'il y a un mur ? Alors le robot doit pouvoir choisir : s'il y a un mur devant toi, tourne, sinon avance. En répétant et en choisissant, un programme court peut faire énormément.

Vois-le

Choisis un programme et fais-le défiler étape par étape. À gauche, tu vois les blocs dans ta propre langue, à droite les mêmes lignes en code. La ligne en cours s'allume.

ABCDE12345
Blocs
  1. répète 4 fois
  2. avance d'une case
  3. avance d'une case
  4. tourne à droite
Code
for i in range(4):
    move()
    move()
    turn_right()

Les blocs et le code sont le même programme, ligne par ligne. Le code ressemble à Python et utilise des mots anglais, comme du vrai code.

étape 0 sur 16
Le programme est prêt. Le robot est sur B4 et regarde vers le haut.
Description de l'image

Une grille avec les colonnes A à F et les lignes 1 à 6, un robot avec un nez qui montre où il regarde, parfois des murs et un drapeau. À côté de la grille, le programme apparaît deux fois : en blocs, comme répète 4 fois et tourne à droite, et en code, comme for i in range(4) et turn_right(). À chaque étape, le robot bouge et la ligne qu'il exécute s'allume.

Comprends-le

Un programme est une suite d'instructions que l'ordinateur exécute une par une, de haut en bas. On appelle cela une séquence.

Une boucle répète les instructions qui se trouvent dedans. Dans les blocs, on lit répète 4 fois, dans le code for i in range(4):. Ce qui en fait partie est décalé un peu vers la droite. range(4) compte 0, 1, 2, 3 : cela fait quatre tours.

Une condition permet à l'ordinateur de choisir. if wall_ahead(): veut dire : s'il y a un mur devant toi. Alors il fait ce qui est écrit en dessous, et sinon (else:) autre chose.

Une boucle avec une condition dedans est très puissante. while path_ahead(): veut dire : tant que le chemin est libre, continue à répéter. Le robot s'arrête tout seul devant le mur, quelle que soit la distance.

Dans Lus, tu vois toujours deux formes du même programme : des blocs dans ta propre langue et du code avec des mots anglais, comme dans les vrais langages de programmation. Ce sont les mêmes lignes, avec le même numéro.

La règle

Séquence : de haut en bas. Boucle : répète ce qui est décalé. Condition : si c'est vrai, fais ceci, sinon autre chose.

Exemple résolu

Le robot est en A5 et regarde vers le haut. Où se trouve-t-il après ce programme ?

  1. Le programme :

    for i in range(3):
        move()
    turn_right()
    move()
    move()
  2. La boucle tourne 3 fois : le robot va de A5 à A4, A3 et A2.

  3. Ensuite, il tourne à droite et avance de deux cases : B2, C2.

  4. Réponse

    Le robot est en C2 et regarde vers la droite.

Fais-le

Choisis un niveau. Tu reçois chaque fois un nouvel exercice, corrigé tout de suite.

S'exercer

Le robot part de B3 et regarde vers la droite. Sur quelle case est-il après ce programme ?

Le robot part de B3 et regarde vers la droite. Sur quelle case est-il après ce programme ?
ABCDE12345
Blocs
  1. répète 2 fois
  2. avance d'une case
  3. tourne à gauche
  4. avance d'une case
  5. avance d'une case
Code
for i in range(2):
    move()
    turn_left()
move()
move()
Choisis la bonne réponse

Pièges

  • Faux: range(4) compte 1, 2, 3, 4.

    Python commence à compter à 0. Il y a bien quatre tours, mais le compteur vaut 0, 1, 2 et 3.

    Juste: range(n) donne n tours, avec le compteur de 0 à n − 1.

  • Faux: Tout ce qui est sous une boucle est répété.

    Seules les lignes décalées font partie de la boucle. Une ligne qui recommence à gauche ne vient qu'après la boucle.

    Juste: Regarde le décalage : il montre ce qui fait partie de la boucle ou de la condition.

  • Faux: Une boucle while s'arrête après un nombre fixe de fois.

    Une boucle while répète tant que la condition est vraie. Si elle ne devient jamais fausse, la boucle ne s'arrête jamais.

    Juste: Fais en sorte que quelque chose change dans la boucle, pour que la condition devienne fausse un jour.

Dans la vie

  • Un feu de signalisation répète sa boucle toute la journée : vert, orange, rouge, et on recommence.
  • Un robot aspirateur roule tout droit tant que le chemin est libre, et tourne quand il sent un mur ou un pied de chaise.
  • Dans un jeu, l'ordinateur vérifie sans cesse : si tu touches la pièce, tu gagnes un point.
  • Un thermostat vérifie tout le temps : s'il fait plus froid que la température réglée, le chauffage s'allume.

Histoire

En 1843, Ada Lovelace a écrit des notes sur la machine analytique de Charles Babbage, une machine à calculer qui n'a jamais été entièrement construite. Elle y décrivait étape par étape comment la machine pouvait calculer une suite de nombres, avec des étapes répétées. C'est pourquoi on l'appelle souvent la première programmeuse.

À table

Jouez ensemble au robot sur le carrelage de la cuisine. Une personne écrit un programme avec répète et si, l'autre l'exécute au pied de la lettre. Arrivez-vous jusqu'au frigo ?

Une question pour en parler ensemble, parents et enfants. Il n'y a pas de mauvaise réponse.

Tu as vu une erreur ?

Quelques mots suffisent. Nous vérifions et corrigeons.

Recherche

Chargement…

Confort de lecture

Choisis ce qui t'aide. Ton choix est gardé sur cet appareil.

Taille du texte

Tu préfères les réglages de ton appareil (zoom, lecteur d'écran, mode sombre) ? Ils fonctionnent ici aussi.