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) ?

Énoncé: Exercice 1 · Bac Numérique et Sciences Informatiques Centres étrangers (Afrique) 2022 (jour 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)

Plus d’exercices de Récursivité