À la récréation, vous croisez un groupe d'enfants qui vous proposent de participer à leur jeu. Vous acceptez de bon cœur et voilà votre robot engagé dans une partie de cache-cache !
Ce que doit faire votre programme :
Le robot devra compter jusqu'à 100, c'est à dire afficher les entiers de 1 à 100, un par ligne, et ensuite afficher « J'arrive ! ». Ainsi, s'il ne devait compter que jusqu'à 3 au lieu de 100, votre robot devrait afficher :
1 2 3 J'arrive !
Important : votre programme ne doit pas faire plus d'une quinzaine de lignes.
Répéter pour un ensemble
Précédemment, nous avons vu comment répéter un bloc d'instructions un nombre de fois donné. Quand on souhaite répéter un traitement de cette manière, on définit un ensemble d'éléments auquel on l'applique ; par exemple, les douze semaines de reproduction des Bufo Algo, ou chaque grand cube de la pyramide de cubes. Ainsi, pour effectuer des répétitions, il faut énumérer quelque chose.
Appuyons-nous sur le programme suivant. Il emploie une boucle et deux variables pour afficher la quantité de produits en stock dans un entrepôt, qui possède au départ 200 produits, puis reçoit 4 livraisons de 60 produits :
quantité = 200 print("Initialement —", quantité, "produits") numLivraison = 0 for loop in range(4): numLivraison = numLivraison + 1 quantité = quantité + 60 print("Livraison", numLivraison, "—", quantité, "produits")
Initialement — 200 produits Livraison 1 — 260 produits Livraison 2 — 320 produits Livraison 3 — 380 produits Livraison 4 — 440 produits
Ci-dessus, on remarque que pour chaque livraison, numérotée entre 1 et 4, on effectue l'ajout de 60 produits, puis un affichage. On énumère donc des livraisons. Ce genre de schéma se retrouve très fréquemment algorithmique.
D'autre part, pour effectuer des répétitions, l'ordinateur est dans tous les cas obligé d'énumérer quelque chose pour savoir quand il a terminé. Afin de se rapprocher de son fonctionnement, les langages de programmation ne proposent pas de boucle « répéter » : ils ont à la place une boucle « pour ».
Intervalle d'entiers
Pour dénombrer, le plus simple est toujours d'utiliser des nombres entiers. C'est ce que nous étudierons ici.
Commençons en pseudo-code. Avec une boucle « pour », on peut écrire le programme précédent de cette façon :
quantité <- 200 Afficher "Initialement — ", quantité, " produits" Pour numLivraison : [1 .. 4] quantité <- quantité + 60 Afficher "Livraison ", numLivraison, " — ", quantité, " produits"
La notation [1 .. 4] représente tous les entiers entre 1 et 4, extrémités incluses. Avec la structure suivante :
Pour numLivraison : [1 .. 4] // Instructions
on indique que les instructions du bloc indenté en dessous vont être exécutées avec la variable numLivraison prenant les valeurs de 1 à 4. On dit qu'on itère sur les livraisons, représentées par les nombres 1, 2, 3 et 4.
En Python, cette boucle s'écrit :
for numLivraison in range(1, 5): # Instructions
Cela ressemble à ce que nous écrivions auparavant pour effectuer des répétitions.
Le deuxième mot, ici numLivraison, est en fait une variable. Cette variable prend successivement les valeurs
fournies par ce qui suit le in
. Le mot anglais range signifie « intervalle » ;
range(1, 5)
génère ainsi les entiers de 1 à 4.
Au final, la ligne se lit : « pour numLivraison dans [1 .. 5[ ». Notez que le début est inclus, la fin exclue :
en pseudo-code, nous changeons le sens du crochet pour exclure une borne.
Quand on ne met qu'un seul entier dans les parenthèses de range()
comme on le faisait auparavant,
le compte commence à partir de 0. Donc avec la boucle suivante :
for loop in range(4): pass # Ce mot-clé permet d'écrire un bloc sans rien à l'intérieur
c'est comme [0 .. 4[ : la variable loop (traduction en anglais du mot « boucle ») reçoit les entiers de 0 jusqu'à 3.
Connaissant cette nouvelle boucle, on peut écrire le programme précédent de la manière suivante :
quantité = 200 print("Initialement —", quantité, "produits") for numLivraison in range(1, 5): quantité = quantité + 60 print("Livraison", numLivraison, "—", quantité, "produits")
Initialement — 200 produits Livraison 1 — 260 produits Livraison 2 — 320 produits Livraison 3 — 380 produits Livraison 4 — 440 produits
Dans un prochain chapitre, nous verrons comment énumérer autre chose que des nombres entiers, avec des tableaux.
Vous devez être connecté(e) pour résoudre ce problème.
L'inscription ne prendra qu'une minute et vous pourrez alors résoudre les exercices puis faire valider automatiquement vos solutions.
Une fois identifié(e), vous pourrez demander sur cette page des conseils pour résoudre le sujet ou demander de l'aide sur le forum d'entraide.
Lorsque vous serez connecté(e), vous pourrez voir vos actions ici.
Une correction détaillée sera disponible lorsque vous aurez résolu le sujet.