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 7
Exclusivité numérique

Boucles non bornées

9 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
Doublement limité

k = 1 # Initialisation de la variable k prenant pour valeur 1

while k < 31 : # Tant que la valeur de la variable k est inférieure à 31, on lance les instructions suivantes
	print(k) # Affichage de k
	k = 2*k # Opération consistant à doubler la valeur de la variable k

print(k) # Affichage final de la valeur de la variable k

Si l'on s'intéresse au détail du programme, il commence par initialiser la variable k qui prend pour valeur 1. La condition k<31 est évaluée une première fois. La réponse est True. Les deux instructions indentées sont exécutées :
  • on affiche la valeur de k ;
  • la valeur de la variable k double.

Cette opération s'effectue plusieurs fois, k prenant successivement les valeurs 4, 8, 16. À la quatrième répétition, k prend pour valeur 32. La condition k<31 est de nouveau évaluée et la réponse est False. La boucle se termine et le programme affiche la valeur de k une dernière fois.
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

2
Code à saisir

Placeholder pour Code à saisirCode à saisir
Le zoom est accessible dans la version Premium.

Télécharger le fichier python en .

Dans ce programme impliquant une boucle non bornée, la condition d'arrêt de la boucle consiste à vérifier que la valeur de la variable code est différente du mot de passe attendu, c'est-à-dire "SNT". Tant que la valeur de code ne correspond pas au mot de passe, le programme demande à l'utilisateur de saisir un nouveau code permettant de modifier la valeur de la variable code.

Si le test code != "SNT" donne finalement False, la boucle s'interrompt et le programme affiche "Ok ! C'est le bon code !".
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 ne connaît pas le nombre de répétitions, on peut utiliser une boucle non bornée. Le nombre de répétitions dépend d'une condition qui est soit vraie (True) soit fausse (False).

AlgorithmeExplicationProgramme Python
Tant que condition
 instruction1
 instruction2
Tant que condition est vraie, les instructions instruction1 et instruction2 sont exécutées.
Si condition est fausse, on sort de la boucle.
while condition :
 instruction1
 instruction2

Programmation - while
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
Amélioration d'un code

Améliorer le code présenté dans l'exemple 2 pour qu'il affiche, en plus d'un message de félicitations final, le nombre de tentatives qui ont été saisies avant que l'utilisateur ne renseigne le bon mot de passe.
code = ""
compteur = 0
while code != "SNT" :
	code = input("Donner le code pour terminer cette satanée boucle !")
print("Ok ! C'est le bon code !")
Afficher la correction
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

2
Seuil

On étudie le programme suivant qui introduit une fonction nommée seuil().

def seuil() :
	u = 100
	n = 0
	while u < 2000 :
		u = 2*u + 10
		n = n + 1
	return u, n

Prévoir le résultat de l'instruction seuil(). Faire le test pour le vérifier.
Afficher la correction
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

3
Compte

Un compte d'épargne est un dépôt d'argent versé auprès d'une banque et qui rapporte une certaine somme pour le détenteur des comptes. Cette somme, versée annuellement, s'appelle des intérêts.

def compte(montant, ajout, taux) :
	u = montant
	n = 0
	while u <= 2*montant :
		u = (1+taux/100)*u + ajout
		n = n+1
	return n

1. Expliquer ce que renvoie l'instruction compte(1000,50,2).

2. Donner une interprétation concrète du résultat obtenu.

3. Modifier cette fonction pour que le seuil à atteindre soit saisi par l'utilisateur en quatrième argument.
Afficher la correction
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

4
Niveau d'eau

Le principe des vases communicants consiste à dire qu'un liquide homogène remplissant plusieurs réservoirs reliés entre eux s'équilibre à la même hauteur dans chacun d'eux. On considère deux réservoirs, A et B, liés l'un à l'autre à leur base par un tuyau initialement fermé. On remplit le réservoir A d'une hauteur de 20 m d'eau et le réservoir B d'une hauteur de 25 m d'eau. À partir du moment où le raccord est ouvert, les niveaux des deux réservoirs s'équilibrent.

def equilibre() :
	a = 20
	b = 25
	n = 0
	while a < b :
		print(a,b,a+b)
		tmp = a
		a = 0.9*tmp + 0.2*b
		b = 0.1*tmp + 0.8*b
		n = n + 1
	return n

1. Que renvoie l'instruction equilibre() ? Donner une interprétation du résultat obtenu.

2. Modifier cette fonction pour que les valeurs de a et b puissent être modifiables sans avoir à rentrer dans le code.

3. Comment modifier cette fonction pour que la vitesse de l'écoulement du réservoir B vers le réservoir A puisse être paramétrée par l'utilisateur lors de l'appel de la fonction ?
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.