SNT 2de

Rejoignez la communauté !
Co-construisez les ressources dont vous avez besoin et partagez votre expertise pédagogique.
Th. 1
Internet
Th. 2
Le Web
Th. 3
Les réseaux sociaux
Th. 4
Données structurées et leur traitement
Th. 5
Localisation, cartographie et mobilité
Th. 6
Informatique embarquée et objets connectés
Th. 7
La photographie numérique
Fiches méthode
Programmation 6

Boucles bornées

14 professeurs ont participé à cette page
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

Cours

Apprendre avec des exemples

Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

1
Bart Simpson

On souhaite créer un programme permettant à Bart Simpson de s'épargner la punition fastidieuse imposée par son institutrice Mme Krapabelle. Celui-ci met en jeu le principe de boucle bornée.

phrase = "Je dois faire mes exercices régulièrement"
for i in range(1, 51) :
	print(str(i) + ". " + phrase)

On remarquera que les différentes valeurs de i vont de 1 (inclus) à 51 (exclu) en augmentant de 1 en 1. Cela conduit donc à afficher 50 lignes, numérotées de 1 à 50.

Placeholder pour Bart Simpson Bart Simpson
Le zoom est accessible dans la version Premium.
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

2
Jeu de rôle

Dans un jeu de rôle, la carte bonus vie permet de multiplier par 1,2 les points de vie à chaque tour de jeu. La fonction augmentation() renvoie le nombre de points de vie après un nombre n de tours. La fonction round() permet de renvoyer l'arrondi à l'unité de la valeur placée en argument.

def augmentation(points_de_vie, n) :
	for i in range(n) :
		points_de_vie = points_de_vie*1.2
	return round(points_de_vie)

print(augmentation(10,3))

En reprenant pas à pas l'exécution du programme, la variable points_de_vie est initialisée et prend pour valeur 10. La variable n est initialisée et prend pour valeur 3.
  • La variable i prend pour valeur 0. L'instruction indentée est exécutée. La variable points_de_vie prend pour valeur le résultat de l'opération 10 × 1,2 = 12.

  • La variable i prend pour valeur 1. L'instruction indentée est exécutée. La variable points_de_vie prend pour valeur le résultat de l'opération 12 × 1,2 = 14,4.

  • La variable i prend pour valeur 2. L'instruction indentée est exécutée. La variable points_de_vie prend pour valeur le résultat de l'opération 14,4 × 1,2 = 17,28.

La valeur de la variable i ayant atteint sa valeur maximale, la boucle se termine et la fonction renvoie la valeur arrondie à l'entier le plus proche de la variable points_de_vie. On remarquera que les différentes valeurs de i vont de 0 (inclus) à 3 (exclu) en augmentant de 1 en 1 : on parle d'incrémentation.

Jeu de cartes
Le zoom est accessible dans la version Premium.
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

3
Décomposition de chaîne

phrase = "Salut"
for caractere in phrase :
	print(caractere)

La variable phrase prend pour valeur la chaîne de caractères "Salut". La boucle permet de parcourir la chaîne de caractères en initialisant la variable caractere avec le premier élément de la valeur de phrase.

La variable caractere prend pour valeur "S". L'instruction indentée est exécutée et permet l'affichage de la valeur de caractere. Puis, la variable caractere prend pour valeur "a". L'instruction indentée est exécutée. Et ainsi de suite pour tous les autres caractères.
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.
Bilan
Dans un programme, il peut être nécessaire de répéter plusieurs fois la même série d'instructions. Lorsque l'on connaît le nombre de répétitions, on peut utiliser une boucle bornée.

AlgorithmeExplication Programme Python
Pour i allant de 1 à n
  instruction1
  instruction2
La variable i est un compteur.
La valeur de i est égale à 1 puis les instructions instruction1 et instruction2 sont exécutées.
La valeur de i augmente de 1.
La valeur de i est égale à 2 puis les instructions instruction1 et instruction2 sont exécutées et ainsi de suite.
Enfin, la valeur de i est égale à n puis les instructions instruction1 et instruction2 sont exécutées.
La valeur n+1 est exclue.
for i in range(1, n+1) :
  instruction1
  instruction2

Il existe d'autres syntaxes pour une boucle bornée.

Programme Python
for i in range(1, 10, 2) :
  instruction
i prend pour valeurs des entiers compris entre 1 et 10 exclu, avec un pas de 2. i prend pour valeur successivement 1, 3, 5, 7, 9.
for i in range(5) :
  instruction
i prend pour valeur successivement 0, 1, 2, 3, 4, c'est‑à‑dire tous les entiers de 0 à 5 exclu.

Programmation - For in
Le zoom est accessible dans la version Premium.
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

Exercices

Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

1
Compteur magique

Placeholder pour MagicienMagicien
Le zoom est accessible dans la version Premium.

1. Compléter la fonction compte_a(motouphrase) pour qu'elle renvoie le nombre de fois où le caractère a apparaît dans un mot ou une phrase placé en argument.
def compte_a(motouphrase) :
	compteur = 0
	for caractere in motouphrase :
		if caractere == ... : # À remplir
			compteur = ... # À remplir
	return compteur

print(compte_a('abracadabra'))

2. Écrire une fonction compte_lettre(motouphrase, lettre) pour qu'elle renvoie le nombre de fois où la lettre placée en second argument apparaît dans un mot ou une phrase placée en premier argument.
Afficher la correction
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

2
Fonctions différentes

1. Lancer les deux algorithmes suivants. Les deux fonctions renvoient-elles le même résultat ?

Algorithme A
def calcul1() :
	u = 0
	for i in range(3):
		u = 2*u+1
	return u

Algorithme B
def calcul2() :
	u = 0
	for i in range(3):
		u = 2*u+1
		return u

2. Identifier la différence entre les deux fonctions. Expliquer les opérations effectuées par l'ordinateur dans les deux calculs.
Afficher la correction
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

3
Lancer de dés

Le programme suivant peut être utilisé pour simuler des lancers de dés successifs.

from random import randint

def FreqDe6(n) :
	compteur = 0
	for i in range(n) :
		de = randint(1,6)
		if de == 6 :
			compteur = compteur + 1
	return compteur/n

print(FreqDe6(10))
print(FreqDe6(10000))

1. Interpréter l'instruction de = randint(1,6).

2. Interpréter le résultat obtenu.
Afficher la correction
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

4
Somme

def somme(n) :
	s = 0
	for k in range(1, n+1) :
		s = s + k**2
	return s

Prévoir, avant de tester le code à l'aide d'un environnement Python, ce que renvoient les instructions suivantes somme(4) et somme(0).
Afficher la correction
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

5
Factorielle

def fact(n) :
	if n == 0 :
		return 1
	else :
		p = 1
		for k in range(2, n+1) :
			p = p*k
	return p

Prévoir, avant de tester le code, ce que renvoient les instructions fact(5), fact(0) et fact(1).
Afficher la correction

Une erreur sur la page ? Une idée à proposer ?

Nos manuels sont collaboratifs, n'hésitez pas à nous en faire part.

Oups, une coquille

j'ai une idée !

Nous préparons votre pageNous vous offrons 5 essais
collaborateur

collaborateurYolène
collaborateurÉmilie
collaborateurJean-Paul
collaborateurFatima
collaborateurSarah
Utilisation des cookies
Lors de votre navigation sur ce site, des cookies nécessaires au bon fonctionnement et exemptés de consentement sont déposés.