Exercice 1 · Bac Numérique et Sciences Informatiques Centres étrangers (Afrique) 2022 (jour 2)
Thème : Récursivité · Tiré du sujet Jour 2 (2022)
Énoncé
EXERCICE 1 (4 points)
Cet exercice porte sur les langages et la programmation (récursivité).
1.
Voici une fonction codée en Python:
def f(n):
if n == 0:
print("Partez!")
else:
print(n)
f(n-1)
a.
Qu'affiche la commande f(5) ?
b.
Pourquoi dit-on de cette fonction qu'elle est récursive ?
2.
On rappelle qu'en python l'opérateur + a le comportement suivant sur les chaînes de caractères:
>>> S = 'a'+'bc'
>>> S
'abc'
Et le comportement suivant sur les listes:
>>> L = ['a'] + ['b', 'c']
>>> L
['a', 'b', 'c']
On a besoin pour les questions suivantes de pouvoir ajouter une chaîne de caractères s en préfixe à chaque chaîne de caractères de la liste liste. On appellera cette fonction ajouter.
Par exemple, ajouter("a", ["b", "c"]) doit retourner ["ab", "ac"].
a.
Recopiez le code suivant et complétez les pointillés:
def ajouter(s, liste):
res = []
for m in liste:
res...............
return res
b.
Que renvoie la commande ajouter("b", ["a", "b", "c"]) ?
c.
Que renvoie la commande ajouter("a", [""]) ?
3.
On s'intéresse ici à la fonction suivante écrite en Python où s est une chaîne de caractères et n un entier naturel:
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
a.
Que renvoie la commande produit("ab", 0) ? Le résultat est-il une liste vide ?
b.
Que renvoie la commande produit("ab", 1) ?
c.
Que renvoie la commande produit("ab", 2) ?

Corrigé
Corrigé proposé par AprenAI (non officiel)
1.a. Qu'affiche la commande f(5) ?
Réponse : 5 4 3 2 1 Partez!
1.b. Pourquoi dit-on de cette fonction qu'elle est récursive ?
Réponse : Elle fait appel à elle-même dans son propre corps (ligne f(n-1)).
2.a. Recopiez le code suivant et complétez les pointillés :
Réponse : ```python .append(s + m) ```
2.b. Que renvoie la commande ajouter("b", ["a", "b", "c"]) ?
Réponse : ```python ['ba', 'bb', 'bc'] ```
2.c. Que renvoie la commande ajouter("a", [""]) ?
Réponse : ```python ['a'] ```
Les réponses des 4 questions restantes et l’explication pas à pas sont réservées aux membres Premium. Premium
Résous-le ici : correction automatique, indices et corrigé détaillé.
‹ Exercice 1 - Partie C · Centres étrangers (Afrique) 2024 (jour 2)