Adloun

Les boucles

Cours complet · sciences numériques et technologie (seconde), chapitre 4 · seconde générale, SNT

Travailler ce chapitre sur Adloun Exercices corrigés de ce chapitre

Une boucle répète une séquence d'instructions. On distingue la boucle bornée (for), quand on connaît le nombre de répétitions, et la boucle non bornée (while), quand on répète tant qu'une condition reste vraie.

4.1 La boucle bornée : for

ImportantBoucle bornée avec `range()`

range(n) répète la boucle fois ; le compteur prend les valeurs de à .


for i in range(5):
    print(i)   # Affiche successivement 0, 1, 2, 3, 4

La boucle for i in range(5) exécute le bloc fois : un tour par valeur du compteur, de à ( est exclu).

iRemarqueLes variantes de `range`
  • range(1, 6) parcourt (la borne de fin est exclue) ;
  • range(0, 10, 2) parcourt (pas de ).

Méthode : Cumuler des valeurs avec une boucle `for`

  • créer avant la boucle une variable accumulateur et l'initialiser ( pour une somme, pour un produit) ;
  • dans la boucle, ajouter (ou multiplier par) la valeur courante ;
  • après la boucle, l'accumulateur contient le résultat.

somme = 0
for i in range(1, 101):   # i prend les valeurs de 1 à 100
    somme = somme + i
print(somme)   # Affiche : 5050

4.2 La boucle non bornée : while

ImportantBoucle non bornée

while condition:
    # instructions répétées tant que la condition est vraie

Organigramme du while : après chaque exécution du bloc, on revient tester la condition ; on ne sort de la boucle que lorsqu'elle devient fausse.

Exemple 4.1

Recherche du premier entier tel que :


n = 0
valeur = 1
while valeur < 1000:
    n = n + 1
    valeur = valeur * 2
print("Le premier n est :", n)   # Affiche : 10

Méthode : Construire une boucle « tant que »

  • initialiser, avant la boucle, les variables de la condition ;
  • écrire while suivi de la condition et de deux-points ;
  • s'assurer que le bloc indenté fait progresser la condition vers False.
iRemarqueAttention aux boucles infinies

Si la condition d'un while reste toujours vraie, le programme tourne indéfiniment. Une variable doit être modifiée à chaque tour pour finir par rendre la condition fausse : oublier n = n + 1 dans l'exemple précédent créerait une boucle infinie.

4.3 Décrire un algorithme : du langage naturel à Python

Un algorithme peut se décrire en langage naturel (des phrases précises, compréhensibles sans ordinateur) ou dans un langage de programmation. Savoir passer de l'un à l'autre, dans les deux sens, est une compétence essentielle : on dispose maintenant de tout le vocabulaire nécessaire.

ImportantCorrespondance langage naturel Python
Langage naturelPython
  (affecter à )`x = 5`
Si … alors … sinon …`if …: … else: …`
Pour allant de à `for i in range(n):`
Tant que …`while …:`
Afficher …`print(…)`
Exemple 4.2Le même algorithme dans les deux langages

Calcul de la somme des premiers entiers non nuls :

Langage naturel :

Pour allant de à :

Afficher

Python :


S = 0
for i in range(1, 11):
    S = S + i
print(S)   # Affiche : 55

Noter le décalage d'écriture : « de à » se traduit par range(1, 11), car la borne de fin est exclue.

Méthode : Traduire dans les deux sens

  • Du naturel vers Python : repérer les affectations (), les tests (si/sinon) et les répétitions (pour/tant que), puis les transcrire ligne à ligne avec la bonne indentation.
  • De Python vers le naturel : exécuter mentalement le programme et décrire chaque étape par une phrase ; vérifier sur un exemple que les deux descriptions font la même chose.

Continuer sur Adloun : animation, QCM, fiches, exercices