06-while-cor.pdf corro

Telechargé par Kalifa.konate19
PCSI – Lycée Dupuy de Lôme – 2019/2020
BOUCLES FOR ET WHILE - CORRIGÉ
Exercice 1
Quelle est la valeur de la variable sà la suite de ces instructions? On complètera le tableau.
s =0
q =21
i =4
while q !=0 and i>0 :
s =s +( q % 2) *2 **( 4 - i )
q =q //2
i=i -1
print(s)
s q i
0 21 4
1 10 3
1 5 2
5 2 1
5 1 0
arrêt
s=5
Exercice 2
1. Écrire un programme qui demande de saisir un entier naturel non nul net qui affiche le produit
Pn=1×2×3× · · · × n.
n = int(i nput ( ’ Sa isi r un en ti er n ’))
P =1
for kin range(1 , n +1) :
P=P*k
print( ’P = ’ ,P )
2. Écrire un programme qui calcule la plus petite valeur de npour laquelle le produit Pnest supérieur
ou égal à 1000?
# initialisation
n =1
P =1
# bou cle while
while P<1000:
n =n +1
P=P*n
print( ’n = ’ ,n )
Exercice 3
Soit (Qn) la suite définie par Q0=1 et Qn+1=(n+2)
2Qnpour tout nN.
1. Écrire un programme qui demande de saisir un entier net affiche la valeur de Qn.
n = int(i nput ( ’ Sa isi r un en ti er n ’))
Q =1
for kin range( n ):
Q =Q *( n + 2) /2
print( ’Q = ’ ,Q )
1
PCSI – Lycée Dupuy de Lôme – 2019/2020
2. Écrire un programme qui calcule la plus petite valeur de npour laquelle Qnest supérieur ou égal
à 1000.
# initialisation
n =0
Q =1
# bou cle while
while Q<1000:
Q =Q *( n + 2) /2
n =n +1
print( ’n = ’ ,n )
Exercice 4
1. Écrire un programme qui demande un entier naturel et affiche toutes les puissances de 2 qui sont
inférieures ou égales à ce nombre.
n = int(i nput ( ’n = ’ ))
# initialisation
p =1 # 2**0
# bou cle while
while p <= n :
print(n , ’ est inf é rie ur ou é gal à ’ ,p )
p =2* p
2. Modifier le programme précédent pour qu’il affiche uniquement la valeur de la plus grande puis-
sance de 2 qui soit inférieure ou égale à ce nombre.
n = int(i nput ( ’n = ’ ))
# initialisation
p =1 # 2**0
# bou cle while
while p <= n :
p =2* p
print(p //2)
Exercice 5
Le but de cet exercice est de (re)programmer la commande element in liste permettant de savoir
si un élément appartient à une liste donnée. On n’utilisera donc pas x in L.
1. Écrire un programme qui demande de saisir un réel xpuis affiche si celui-ci appartient à la liste
L=[1,2,5,6,-2,0,5,4,8,-1] ou non.
L = [1 ,2 ,5 ,6 , -2 ,0 ,5 ,4 ,8 , -1]
x = float (input ( ’x = ’ ))
test = 0 # va ria ble é gale à 1 si x est dans L et é gale à
0 sinon .
for kin range(len( L )):
if L [k] == x :
test = 1
# Pour te rm in er on reg ar de si test vaut 0 ou 1
2
PCSI – Lycée Dupuy de Lôme – 2019/2020
if test == 1 :
print("x app arti ent à L" )
else:
print("x n app arti ent pas à L")
2. Modifier ce programme pour qu’il affiche, si xappartient à la liste, le numéro d’une place occupée
par x(la première rencontrée).
L = [1 ,2 ,5 ,6 , -2 ,0 ,5 ,4 ,8 , -1]
x = float (input ( ’x = ’ ))
# On va f ai re un bo uc le w hi le pou r s ’ arr ê t er au 1 er x
k=0
while k < len(L) and L [k ] != x :
k = k +1
# Si k = len ( L) à la fin , c est qu on a par cou ru toute la liste sans succ ès .
if k == len(L) :
print(x , " n ’ ap pa rt ie nt pas à la lis te " )
else:
print(x , " est pr é s en t en po si ti on " , k )
3. Écrire un programme qui demande de saisir un réel xpuis affiche le nombre d’occurence de x
dans la liste Lprécédente.
x= float (input ( ’ x= ’ ))
compteur=0
for ain L :
if a == x :
compteur=compteur+1
print(x , ’ est pr é s en t ’ , co mp te ur , ’ fo is )
Exercice 6
Bonus - Jeu de Nim
Le but de cet exercice est de programmer le jeu de Nim (ou jeu des bâtons). Au début, on dispose de 20
bâtons alignés. Les deux joueurs vont, à tour de rôle, enlever 1, 2 ou 3 bâtons. Le joueur qui laisse 1
bâtons à la fin a gagné.
1. On définit une variable joueur égale à 1 ou 2 (numéro du joueur dont c’est le tour). Écrire une
commande d’une ligne permettant de passer d’un joueur à l’autre :
si joueur=1, alors joueur prend la valeur 2;
si joueur=2, alors joueur prend la valeur 1.
jou eur = joueur %2+1
3
PCSI – Lycée Dupuy de Lôme – 2019/2020
2. Programmer le jeu. À chaque tour, on affichera ’Joueur 1’ ou ’Joueur 2’ puis on lui demandera
de saisir le nombre de bâtons qu’il souhaite enlever et enfin le nombre de bâtons restant. Le jeu
s’arrête quand il reste un seul bâton. On affichera le numéro du perdant et le numéro du gagnant.
# prog ram me f on ct io nn ant si les p ro po si ti ons des joueurs sont coh é rent es .
jou eur =1
bat ons =20
print( ’ Il y a ’ , batons , ’b â t ons )
while batons>1:
print( ’ Jo ue ur ’ , jo ue ur )
N = int(i nput (Combien enlevez - vous de batons (1 ,2 ou 3)? ))
bat on s = bat ons -N
print( ’ Il re st e ’ , bat ons , ’b â ton s ’ )
jou eur = joueur %2+1
print( ’ Jo ueu r ’ , jo ueur , ’a p er du )
print( ’ Jo ueu r ’ , jo ue ur %2+1 , a g ag n é ’)
4
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!