Lyc´ee Benjamin Franklin PTSI−2013-2014
L. Grillet, D. Blotti`ere Informatique
TP n˚1 L’IDE Spyder
1 Lancement et configuration de Spyder
Pour programmer en Python, nous allons utiliser l’environnement de d´eveloppement int´egr´e (IDE pour Integra- ted Development Environment en anglais) Spyder.
1 Lancer Spyder, configurer-le pour que trois fenˆetres apparaissent :
• un ´editeur (Editor) ;
• une console (Console) ;
• un explorateur de variables (Variable Explorer) ; et commenter avec l’enseignant.
Mots cl´es : ex´ecution, d´ebugger, ex´ecution pas-`a-pas,. . .
2 Echange du contenu de deux variables ´
Voyons dans un premier temps une variable comme une case m´emoire poss´edant un nom et dans laquelle est contenue une valeur (num´erique par exemple).
2 Saisir le programme suivant dans l’´editeur, le commenter avec l’enseignant, l’´ex´ecuter et observer ce qui s’est pass´e dans l’explorateur de variables et dans la console.
Mots cl´es : variable, nom, valeur, affectation.
Programme 1 1. a=2
2. b=7
Objectif :On se propose de compl´eter le programme 1 pour que le contenu des variablesaetbsoient ´echang´e sous l’hypoth`ese que l’on ne connaˆıt pas les valeurs stock´ees dansaet b, i.e. sans supposer que l’on sait que a contient 2 etb contient 7.
3 Saisir le programme suivant dans l’´editeur, puis l’ex´ecuterpas-`a-paset observer comment sont modifi´ees les valeurs des variables au fur et `a mesure de l’ex´ecution.
Mot cl´e : Pdb (Python Debugger).
Programme 2 1. a=2
2. b=7 3. a=b 4. b=a
4 Il s’agit l`a d’une solution qui est en fait assez na¨ıve et qui ne r´epond pas au probl`eme pos´e. Pourquoi ? R´eponse :
1
5 Modifier le programme 2 en ajoutant une variable auxiliaire, nomm´ee aux, afin que le nouveau programme r´eponde bien `a l’objectif fix´e.
6 Compl´eter le programme 1 en un programme r´epondant `a l’objectif impos´e, mais n’utilisant que les seules va- riablesaet b(et donc n’utilisant pas de variable auxiliaire).
7 Modifier le programme construit en 5 en affectant, au d´ebut, la chaˆıne de caract`eres ”bonjour” dans la variable aet la chaˆıne de caract`ere ”au revoir” dans la variableb. Ex´ecuter ce programme modifi´e et commenter.
8 Modifier le programme construit en 6 en affectant, au d´ebut, la chaˆıne de caract`eres ”bonjour” dans la variable aet la chaˆıne de caract`ere ”au revoir” dans la variableb. Ex´ecuter ce programme modifi´e et commenter.
3 Calculs de sommes
Le programme suivant calcule et affiche la somme des entiers de 1 `a 4 (i.e. 1+2+3+4). En modifiant la valeur affect´ee dans la variablen, il permet en fait de calculer la valeur de la somme
SN :=
N
X
k=1
k= 1 + 2 + 3 +. . .+ (N−1) +N
o`uN est un entier naturel non nul. Notons qu’on a la relation de r´eccurence suivante :
∀N ∈N≥2 SN =SN−1+N.
C’est elle qui est `a la base de la construction du programme ci-dessous.
Programme 3 1. n=4
2. k=1 3. s=0
4. condition=(k<=n) 5. while condition :
6. s=s+k
7. k=k+1
8. condition=(k<=n) 9. print s
9 Saisir le programme pr´ec´edent dans l’´editeur, le commenter, puis l’ex´ecuter pas-`a-pas et observer comment sont modifi´ees les valeurs des variables au fur et `a mesure de l’ex´ecution.
Mots cl´es : indice, bool´een, boucle while, incr´ementation, affichage. . .
10 Construire un programme qui calcule la sommeSN (N ∈N∗), sans utiliser de boucle.
Indication : on dispose d’une ≪formule≫ pour la somme SN (N ∈N∗).
11 Pour toutN ∈N∗, on pose
TN :=
N
X
k=1
k2= 12+ 22+ 32+. . .+ (N−1)2+N2. 1. Donner une relation de r´ecurrence v´erifi´ee par les sommesTN (N ∈N∗).
R´eponse :
2
2. S’inspirer du programme 3 pour construire un programme calculant la somme TN (N ∈N∗) et utilisant une boucle while.
12 Construire un programme qui calcule la sommeTN (N ∈N∗), sans utiliser de boucle.
Indication : on dispose d’une ≪formule≫ pour la somme TN (N ∈N∗).
13 Pour toutN ∈N∗, on noteUN la somme desN premiers entiers impairs (le premier entier impair ´etant 1).
1. SoitN ∈N∗. ´Ecrire la sommeUN `a l’aide du symboleP . R´eponse :
2. Donner une relation de r´ecurrence v´erifi´ee par les sommesUN (N ∈N∗).
R´eponse :
3. S’inspirer du programme 3 pour construire un programme calculant la somme UN (N ∈N∗) et utilisant une boucle while.
14 Construire un programme qui calcule la sommeUN (N ∈N∗), sans utiliser de boucle.
Indication : on dispose d’une ≪formule≫ pour la somme UN (N ∈N∗).
4 Factorielle d’un entier
15 Pour tout entierN ∈N∗, on appelle factorielle deN et on noteN! le nombre entier d´efini par : N! :=
N
Y
k=1
k= 1×2×3×. . .×(N−1)×N.
1. Donner une relation de r´ecurrence v´erifi´ee les nombresN! (N∈N∗).
R´eponse :
2. S’inspirer du programme 3 pour construire un programme calculantN! (N ∈N∗) et utilisant une boucle while.
5 Somme de coefficients binomiaux
16 On rappelle que pour toutN ∈N∗, pour toutK∈J0, NK, le coefficient binomial NK
est d´efini par : N
K
= N!
(N−K)!×K!. 1. ´Ecrire un programme qui calculeVN :=
N
X
K=0
N K
o`u N est un entier naturel non nul donn´e.
2. ´Enoncer une conjecture sur la valeur deVN (N∈N∗) apr`es avoir calcul´e quelques valeurs.
3. D´emontrer la conjecture pr´ec´edente.
3