Exercice type BAC 1
Sujet NSIJ2G11 - Centres étrangers 2, 2022
Cet exercice porte sur les langages et la programmation (récursivité).
-
Voici une fonction codée en Python :
🐍 Script Pythondef f(n): if n == 0: print("Partez!") else: print(n) f(n-1)
- Qu’affiche la commande
f(5)
? - Pourquoi dit-on de cette fonction qu'elle est récursive ?
- Qu’affiche la commande
-
On rappelle qu’en python l’opérateur
+
a le comportement suivant sur les chaînes de caractères :🐍 Script PythonEt le comportement suivant sur les listes :>>> S = 'a'+'bc' >>> S 'abc'
🐍 Script PythonOn a besoin pour les questions suivantes de pouvoir ajouter une chaîne de caractères>>> L = ['a'] + ['b', 'c'] >>> L ['a', 'b', 'c']
s
en préfixe à chaque chaîne de caractères de la listeliste
. On appellera cette fonctionajouter
. Par exemple,ajouter("a",["b","c"])
doit retourner["ab","ac"]
.- Recopiez le code suivant et complétez
.......
sur votre copie :🐍 Script Pythondef ajouter(s, liste): res = [] for m in liste: res ................. return res
- Que renvoie la commande
ajouter("b", ["a","b","c"])
? - Que renvoie la commande
ajouter("a", [""])
?
- Recopiez le code suivant et complétez
-
On s'intéresse ici à la fonction suivante écrite en Python où
s
est une chaîne de caractères etn
un entier naturel.
🐍 Script Pythondef 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
- Que renvoie la commande
produit("ab", 0)
?
Le résultat est-il une liste vide ? - Que renvoie la commande
produit("ab", 1)
? - Que renvoie la commande
produit("ab", 2)
?
- Que renvoie la commande