Voir les cours et résoudre les problèmes en :
Le C est un langage de programmation impératif conçu pour la programmation système. Inventé au début des années 1970 avec UNIX, C est devenu un des langages les plus utilisés. De nombreux langages plus modernes se sont inspirés de sa syntaxe. Il privilégie la performance sur la simplicité de la syntaxe. [En savoir plus]
Le C++ est un langage de programmation impératif. Inventé au début des années 1980, il apporte de nouveaux concepts au langage C (les objets, la généricité), le modernise et lui ajoute de nombreuses bibliothèques. C++ est devenu l'un des langages les plus utilisés. Sa performance et sa richesse en font le langage de prédilection pour les concours. [En savoir plus]
Pascal est un langage de programmation impératif inventé dans les années 1970 dans un but d'enseignement. Quoiqu'encore utilisé à cette fin, l'absence de bibliothèque standard en limite son utilisation malgré une grande efficacité. Sa syntaxe a été reprise par d'autres langages plus modernes avec plus ou moins de succès. [En savoir plus]


Remarque : Les cours pour ce langage ne sont disponibles que jusqu'au chapitre 4, « Lecture de l'entrée ». Les corrections sont toutefois toujours fournies.
OCaml est un langage de programmation fonctionnel inventé au milieu des années 1990. Il permet aussi une programmation impérative ou objet. Il permet d'écrire des programmes courts et faciles à vérifier et est ainsi utilisé pour certains systèmes embarqués très sensibles comme ceux des avions. Il est utilisé dans l'enseignement en classes préparatoires aux grandes écoles. [En savoir plus]


Remarque : Les cours pour ce langage ne sont disponibles que jusqu'au chapitre 4, « Lecture de l'entrée ». Les corrections sont toutefois toujours fournies.
Java est un langage de programmation impératif et orienté objet. Inventé au début des années 1990, il reprend en grande partie la syntaxe du langage C++ tout en la simplifiant, au prix d'une performance un peu moins bonne. S'exécutant dans une machine virtuelle, il assure une grande portabilité et ses très nombreuses bibliothèques en font un langage très utilisé. On lui reproche toutefois la « verbosité » de son code. [En savoir plus]


Remarque : Pour un débutant souhaitant apprendre Java, nous conseillons fortement de commencer par JavaScool, plus facile à apprendre, bien que fortement similaire.
Java's Cool (alias JavaScool) est conçu spécifiquement pour l'apprentissage des bases de la programmation. Il reprend en grande partie la syntaxe de Java sur laquelle il s'appuie, mais la simplifie pour un apprentissage plus aisé. La plateforme JavaScool est accompagnée d'un ensemble d'activités diverses de découverte de la programmation. [En savoir plus]
Python est un langage de programmation impératif inventé à la fin des années 1980. Il permet une programmation orientée objet et admet une syntaxe concise et claire qui en font un langage très bien adapté aux débutants. Étant un langage interprété, il n'est cependant pas aussi performant que d'autres langages. [En savoir plus]

À 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é pour résoudre cet exercice.

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.

Correction en cours de chargement…