Tous les TP seront notés (barème indicatif).
- Tout TP non rendu avant la fin de la séance sera noté zéro.
- Veuillez mettre clairement vos noms sur votre code source ou noms de fichiers.
- Utilisez un éditeur de texte (Word...) lorsqu'on vous demande des explications ou des schémas.
Exercice 1 (3 points)¶
Compléter la fonction suivante pour qu’elle calcule le nième terme de la série :
def somme_bale(n):
if type(n) != int:
raise TypeError(COMPLETER ICI)
elif n <= 0:
raise ValueError(COMPLETER ICI)
else:
# Compléter ici
- Essayez avec n = 50. Vérifiez avec une calculatrice que cette valeur est "assez proche" de \(\frac{\pi^2}{6}\)
- Essayez avec n = 10 000, que se passe t'il ? Donnez une explication.
Exercice 2 (4 points)¶
Procédez de la même manière mais cette fois-ci calculez le nième terme de la série harmonique (c'est le nom de cette série):
\(1 + \frac{1}{2} + \frac{1}{3} + \frac{1}{4} + \frac{1}{5} ...\)
Cette série semble t'elle converger vers une valeur ? Si oui, laquelle ?
Exercice 3 (4 points)¶
Pour rappel le pseudo-code n'est ni un langage de programmation ni du français. Voici un pseudo-code qui décrit un algorithme :
fonction minListe(liste):
si taille(liste) = 1
alors renvoyer liste[0]
sinon
mini = minListe(liste[1 :])
si liste[0] < mini
alors mini = liste[0]
fin_si
fin_si
renvoyer mini
Implémenter la fonction (c'est à dire : coder là en Python) et exécutez là.
Exercice 4 (6 points)¶
1) Ecrire une fonction récursive def descente(n) qui affiche les entiers de 1 à n dans l’ordre décroissant.
2) Ecrire une fonction récursive def montee(n) qui affiche les entiers de 1 à n dans l’ordre croissant cette fois.
- Dans un document Word, ou tout autre éditeur de texte, décrivez l'exécution de l'appel de fonction
descente(n)
. Faites un schéma ou un tableau qui décrit l'exécution de cette fonction en mémoire et expliquez ce qu'il se passe à chaque étape. Vous pouvez vous aidez de https://pythontutor.com/visualize.html#mode=edit
On attend que vous montriez les différents appels de fonctions (en précisant l'ordre dans lequel elles s'exécutent), ainsi que les valeurs retournées à chaque appel.
Attention !!! Ne copiez pas simplement ce qui s'affiche sur pythontutor, refléchissez et écrivez ensuite après avoir bien compris.
Exercice 5 (3 points)¶
def ajouter(s, liste):
res = []
for m in liste:
res#COMPLETER
return res
def produit(s, n):
if n == 0:
return [""]
else:
res = []
for i in range(len(s)):
res = res + ajouter(s[i], produit(s, n-1))
return res
La fonction ajouter("a",["b","c"])
doit retourner ["ab","ac"]
- Compléter le code de la fonction
ajouter
- Dans un document Word, ou tout autre éditeur de texte, décrivez l'exécution de l'appel de fonction
produit("ab", 1)
. Faites un schéma ou un tableau qui décrit l'exécution de cette fonction en mémoire et expliquez ce qu'il se passe à chaque étape. Vous pouvez vous aidez de https://pythontutor.com/visualize.html#mode=edit
On attend que vous montriez les différents appels de fonctions (en précisant l'ordre dans lequel elles s'exécutent), ainsi que les valeurs retournées à chaque appel.
Attention !!! Ne copiez pas simplement ce qui s'affiche sur pythontutor, refléchissez et écrivez ensuite après avoir bien compris.