MPSI - Lyc´ee Chrestien de Troyes
Info 4
Introduction `a la programmation structur´ee
commande Python Interpr´etation
x == y xest ´egal `a y
x != y xest diff´erent de y
x>y xest strictement sup´erieur `a y
x<y xest strictement inf´erieur `a y
x >= y xest sup´erieur ou ´egal `a y
x <= y xest inf´erieur ou ´egal `a y
x in y xapparient `a y
x and y xet y(logique)
x or y xou y(logique)
not x non x(logique)
Par exemple, si on souhaite d´efinir la fonction vabsolue qui renvoie la valeur absolue d’un nombre r´eel, on entrera :
def vabsolue(x):
"""vabsolue renvoie la valeur absolue d’un r´eel. C’est aussi la fonction abs du module math."""
if x>=0:
return x
else:
return -x
2. les instructions r´ep´etitives
Il s’agit des structures it´eratives qui permettent d’effectuer une s´erie d’instructions un nombre de fois donn´e ou tant qu’une
condition est r´ealis´ee. Dans le langage Python, on pourra distinguer :
•la boucle while (boucle ”tant que”) d´ependant d’une condition bool´eenne :
while condition :
indentation Instruction 1
(...)
Instruction p
•la boucle for (boucle ”pour”) associ´ee `a une liste donn´ee, qu’elle soit constitu´ee d’entiers obtenus par la commande range,
ou constitu´ee de valeurs quelconques :
for k in range(1,n+1):
indentation Instruction 1
(...)
Instruction p
ou encore
for x in L:
indentation Instruction 1
(...)
Instruction p
Bien entendu, quand le nombre d’it´erations n’est pas d´etermin´e `a l’avance, on pr´ef`erera choisir la boucle while mais on veillera
`a ce qu’on puisse sortir de la boucle, c’est `a dire qu’`a un moment la condition ´enonc´ee ne devra plus ˆetre r´ealis´ee...
Il s’agit l`a d’une erreur tr`es courante et ainsi, si la condition d’arrˆet n’est jamais atteinte, et que votre programme tourne sur
lui-mˆeme, il vous faudra interrompre l’ex´ecution de celui-ci en fermant par exemple la console interactive.
Application 1 - Calcul des termes successifs d’une somme
On rappelle qu’on d´efinit la fonction ζsur ]1,+∞[ par :
ζ(x) =
+∞
X
k=1
1
kx= lim
n→+∞
n
X
k=1
1
kx
Soit x∈]1,+∞[. On pose alors pour tout n∈N∗,Sn=
n
X
k=1
1
kx.
1. D´ecrire S1, S2et S3puis d´eterminer la relation de r´ecurrence permettant d’obtenir Sn+1 `a partir de Sn.
2. Dans le langage Python, construire la fonction zeta qui, pour tout couple (x, n) donn´e, renvoie la valeur de Sn. On pr´esentera
deux programmes semblables, l’un reposant sur une boucle for, l’autre reposant sur une boucle while.
3. Renseigner votre programme afin que celui-ci soit plus clair.
Application 2 - Calcul des termes successifs d’un produit
On d´efinit le produit Pnpour tout n∈N, n ≥2 par :
Pn=
n
Y
k=2
k2−1
k2
1. Dans le langage Python, construire la fonction produit qui, pour tout entier ndonn´e, renvoie la valeur du produit Pn. On pourra
ajouter un test sur l’argument donn´e afin de renvoyer un message `a l’utilisateur si n < 2.
2. Modifier votre programme afin que celui-ci soit interactif, c’est `a dire que l’utilisateur devra rentrer la valeur de nau cours du
programme.
3. Calculer P10, P20,...,P100. Quelle hypoth`ese pouvez-vous faire ?
4. D´emontrer alors le r´esultat annonc´e.
2