0% ont trouvé ce document utile (0 vote)
1K vues4 pages

TD3 Python PDF

Transféré par

el ima
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
1K vues4 pages

TD3 Python PDF

Transféré par

el ima
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Algorithmique et programmation Langage Python

TD 3 Corrigé : Python
ESSADDOUKI Mostafa ([email protected]), 11 mai 2018

Exercice 1
On se propose de calculer une valeur approchée de la constante K de Catalan en utilisant la formule
suivante :
1 1 1
K =1− 2
+ 2 − 2 + ...
3 5 7
Ecrire une fonction val_app(epsilon) qui permet de retourner une valeur approchée de la constante K en
utilisant la formule ci-dessus et en s’arrêtant dès que la valeur absolue de la différence entre deux somme
successives devienne inférieure ou égale à une erreur epsilon donnée en paramètre.
1 def val_app ( epsilon ):
2 elm1 =1
3 elm2 = elm1 -1/(3**2)
4 signe =1
5 val =5
6 while abs ( elm2 - elm1 )> epsilon :
7 elm1 = elm2
8 elm2 = elm1 + signe *(1/( val **2))
9 val +=2
10 signe *=( -1)
11 return elm2

Exercice 2
Soit la formule suivante qui permet de déterminer une valeur approchée de Cos(x) :

x2 x4 x6
cos(x) = 1 − + − + ...
2! 4! 6!
Ecrire une fonction Calcul_Cos(x) qui permet de :
— Saisir un réel x appartenant à l’intervalle [-1, 1],
— Calculer et afficher une valeur approchée de Cos(x) en utilisant la formule donnée ci-dessus. Le
calcul s’arrête lorsque la différence entre deux termes consécutifs devient inférieure à 10-4.
1 def Calcul_Cos (x ):
2 elm1 =1
3 elm2 = elm1 -( x **2/2)
4 signe =1
5 puis =2
6 f =2
7 while abs ( elm2 - elm1 ) >0.0001:
8 f = f *( puis +1)*( puis +2)
9 puis +=2

Mr. ESSADDOUKI Mostafa 1 http://www.developpement-informatique.com


Algorithmique et programmation Langage Python

10 elm1 = elm2
11 elm2 = elm1 + signe *( x ** puis /f)
12 signe *=( -1)
13 return elm2

Exercice 3
Soit la suite U définie par :

U0 = est un entier positif pris au hasard (avec 3 < U0 < 40)

Un = Un−1
2
si Un−1 est pair

Un = 3 ∗ Un−1 + 1 sinon (n > 0)

Cette suite aboutit au cycle redondant formé par les trois termes 4,2,1 à partir d’un certain rang. -
Exemple :
Pour U0 = 3
U1 = 10 ; U2 = 5 ; U3 = 16 ; U4 = 8 ; U5 = 4 ; U6 = 2 ; U7 = 1 ; U8 = 4 ; U9 = 2 ; U10 = 1,
Donc la suite U entre dans le cycle redondant 4,2,1 à partir du 6ème terme(rang=6)
Ecrire un programme permettant de déterminer le rang à partir duquel la suite U aboutit au cycle redondant
4, 2 et 1
1 import random
2 def rang ():
3 u0 = random . randrange (3 ,40)
4 pos =1
5 while u0 !=4:
6 if u0 %2==0:
7 Un = u0 //2
8 else :
9 Un =3* u0 +1
10 u0 = Un
11 pos +=1
12 return pos

Exercice 4
Ecrivez un programme Python permettant de calculer la limite à  près de la suite définie par la relation
de récurrence : (
U0 = 2
Un+1 = Un + U2n , (n > 0)
On arrête d’itérer quand l’intervalle entre 2 termes consécutifs devient strictement inférieur à 
1 def limite ( epsilon ):
2 U0 =2
3 Un = U0 +2/ U0
4 while abs (Un - U0 )> epsilon :
5 U0 = Un

Mr. ESSADDOUKI Mostafa 2 http://www.developpement-informatique.com


Algorithmique et programmation Langage Python

6 Un = U0 +2/ U0
7 return Un

Exercice 5
Ecrivez un programme Python permettant de calculer la nième terme de la suite définie par :

F 0 = 1

F1 = 2

Fn = 4Fn−1 + 3Fn−2 , (n > 1)

1 def suite ( n ):
2 F0 , F1 =1 ,2
3 for i in range (2 , n)
4 Fn =4* F1 +3* F0
5 F0 = F1
6 F1 = Fn
7 return F1

Exercice 6
La suite de Fibonacci est définie comme suit :
(
2 si n < 2
Un
Un−1 + Un−2 sinon
Ecrire une fonction récursive calculant Fib(n)
1 def Fib ( n ):
2 if n <2:
3 return 1
4 else :
5 return Fib (n -1)+ Fib (n -2)

Exercice 7
Soit la suite définie par :
(
2 si n < 2
Un
3Un−1 + Un−2 sinon
1 def suite ( n ):
2 if n <2:
3 return 1
4 else :
5 return 3* suite (n -1)+ suite (n -2)

Mr. ESSADDOUKI Mostafa 3 http://www.developpement-informatique.com


Algorithmique et programmation Langage Python

Exercice 8
Soient u et v les deux suites définies par :
 
u0 = a un = u2n−1 + 2vn−1
∀n > 0
v0 = b v0 = vn−1 + 3un−1

Ecrire deux fonctions CalculerU(a,b,n) et CalculerV(a,b,n) pour calculer respectivement les deux
termes Un et Vn des deux suites.
1 def CalculerU (a ,b ,n ):
2 if n ==0:
3 return a
4 else :
5 return CalculerU (a ,b ,n -1)**2 + 2* CalculerV (a ,b ,n -1)

1 def CalculerV (a ,b ,n ):
2 if n ==0:
3 return b
4 else :
5 return CalculerV (a ,b ,n -1)+ 3* CalculerU (a ,b ,n -1)

Exercice 9
Considérons la méthode suivante pour calculer X n
 n n
X 2 ∗ X 2 si n est pair

n n
X n X 2 ∗ X 2 ∗ X si n est impair

n
2
. représente la division entière de n par 2.

Ecrire une fonction récursive permettant de calculer le nième terme de la suite.


1 def puissance (x ,n ):
2 if n ==1:
3 return x
4 if n %2==0:
5 return puissance (x ,n //2)* puissance (x ,n //2)
6 else :
7 return puissance (x ,n //2)* puissance (x ,n //2)* puissance (x ,1)

Mr. ESSADDOUKI Mostafa 4 http://www.developpement-informatique.com

Vous aimerez peut-être aussi