Consignes
- Cette évaluation se déroule en deux parties:
- Exercice 1 et 2 premières questions de l’exercice 2 sur papier.
- Fin exercice 2, exercice 3 et exercice 4 sur machine.
- La partie papier est à réaliser en premier. Une attention particulière sera portée sur la présentation, la syntaxe et l’orthographe. Pour la seconde partie:
- Créer un dossier eval-03-votrenom
- Écrire chaque fonction dans un fichier différent.
- Documenter les fonctions.
- Compresser le dossier et le déposer dans le casier du professeur.
Exercice 1 sur papier
def operation(x: int, y: int) -> int:
if x == 0:
return 0
elif x % 2 == 0:
return operation(x//2, y+y)
else:
return operation(x//2, y+y) + y
operation(5, 2)
1. Donner, dans l’ordre, les différents appels récursifs effectués lors de l’appel principal:
operation(5, 2)
2. Donner la valeur renvoyée par ce même appel.
3. Que fait cette fonction.
Exercice 2
- En Python, comment vérifier qu’un nombre est multiple de 3 (divisible par 3)?
- Combien vaut la somme de tous les multiples de 3 inférieurs ou égaux à 10?
- Écrire la fonction multiple3(n: int) -> int qui renvoie la somme de tous les multiples de 3 inférieurs ou égaux à n.
- Écrire deux assertions pour tester la fonction.
Exercice 3
On s’intéresse à la suite d’entiers définie par:U1 = 1, U2 = 1 et, pour tout entier naturel n, par Un+2 = Un+1 + Un.
Elle s’appelle la suite de Fibonnaci.
Écrire la fonction récursive fibonacci qui prend un entier n > 0 et qui renvoie l’élément d’indice n de cette suite.
Exercice 4
Soit Un la suite définie par :
- Écrire la fonction récursive suite(n: int) -> int qui renvoie le n-ième terme de la suite.
- Écrire deux assertions pour tester la fonction.