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]

Introduction

Ce cours est une première ébauche d'un futur chapitre sur la boucle for. Il n'est pas (encore) accompagné d'exercices d'application mais un certain nombre d'exemples sont fournis.

Son but est de vous présenter le fonctionnement de la "boucle for" qui va désormais remplacer la "boucle de répétition" que vous utilisiez jusqu'à présent.

La "vraie" boucle

Pour afficher les nombres de 0 à 9, c'est-à-dire de 0 (inclus) à 10 (non inclus) vous utilisez actuellement le code suivant :

nombre = 0
for loop in range(10):
   print(nombre)
   nombre = nombre + 1

Eh bien, sachez qu'il est également possible de faire ainsi :

for loop in range(10):
   print(loop)

Ce que nous ne vous avions donc pas encore dit c'est que loop est en fait une variable ! On peut donc l'utiliser comme n'importe quelle variable, en particulier pour l'afficher. On peut également utiliser un autre nom de variable (loop n'étant pas très clair). Ainsi on écrira plutôt :

for nombre in range(10):
   print(nombre)

En pratique range(10) se comporte comme la suite de valeurs 0, 1, ..., 9 et ce code revient à dire :

Pour chaque valeur dans [0, 1, ..., 9] affecter cette valeur à la variable "nombre" et
   Afficher la variable "nombre"

Dans la suite de ce cours nous allons voir la puissance de cette écriture qui permet d'avoir des programmes plus courts et compacts.

Cas général

Le fonctionnement de range() est en réalité un peu plus complexe que cela et sous sa forme générale, il s'utilise ainsi :

for nombre in range(<debut>, <fin>, <saut>):
   ...

ce qui va faire prendre à la variable nombre toutes les valeurs entre <debut> (inclus) et <fin> (non inclus) en faisant des sauts de <saut> à chaque fois. Pour bien comprendre, le mieux est de regarder quelques exemples :

Afficher les nombres de 0 à 9

for nombre in range(0, 10, 1):
   print(nombre, end = " ")
0 1 2 3 4 5 6 7 8 9

On va donc de 0 (inclus) à 10 (non inclus, c'est-à-dire 9 inclus) en faisant "+1" entre chaque valeur.

Afficher les nombres de 10 à 20

for nombre in range(10, 21, 1):
   print(nombre)
10 11 12 13 14 15 16 17 18 19 20

On va donc de 10 (inclus) à 21 (non inclus, c'est-à-dire 20 inclus) en faisant "+1" entre chaque valeur.

Afficher les nombres pairs de 100 à 120

for nombre in range(100, 121, 2):
   print(nombre)
100 102 104 106 108 110 112 114 116 118 120

On va donc de 100 (inclus) à 121 (non inclus, c'est-à-dire 120 inclus) en faisant "+2" entre chaque valeur.

Afficher les multiples de 5 de 20 à -20

On veut donc afficher des nombres de manière décroissante, donc le "saut" est négatif

for nombre in range(20, -21, -5):
   print(nombre)
20 15 10 5 0 -5 -10 -15 -20

On va donc de 20 (inclus) à -21 (non inclus, c'est-à-dire -20 inclus) en faisant "-5" entre chaque valeur.

Interprétation

On commence donc par la valeur de début et tant qu'on est strictement plus petit (si le saut est positif) / grand (si le saut est négatif) que la valeur de fin, on passe d'une valeur à la valeur suivante en faisant le "saut" indiqué.

Notez que toutes les variations suivantes sont donc équivalentes !

range(10, 101, 5)
range(10, 102, 5)
range(10, 103, 5)
range(10, 104, 5)
range(10, 105, 5)

Elle vont toutes afficher les multiples de 5 entre 10 et 100.

Formes réduites

Saut non précisé

S'il n'est pas précisé, le "saut" vaut 1, on peut donc écrire

for nombre in range(100, 201):
   ...

à la place de

for nombre in range(100, 201, 1):
   ...

Ces deux codes sont équivalents.

Début et saut non précisé

Si on à un "début" égal à 0 et un "saut" égal à 1, alors il existe une écriture plus courte. Ainsi :

for nombre in range(0, 10, 1):
   ...

peut être remplacé par

for nombre in range(10):
   ...

C'est la forme que vous connaissiez et que vous utilisiez jusqu'à présent. Elle permettait bien de répéter 10 fois une suite d'instruction puisque range(10) contient les valeurs 0, 1, ..., 9 soit 10 valeurs au total.

Pensez à vous inscrire pour valider les cours et résoudre les exercices.